Zeff

Zeff

Sustainable Web Development with Ruby on Rails:

Title: Sustainable Web Development with Ruby on Rails: Regex incorrect (testing Helpers section)

This code fails:

“# test/helpers/application_helper_test.rb

class ApplicationHelperTest < ActionView::TestCase
test “styled_widget_id” do
rendered_component = styled_widget_id(“1.23”)

→ regexp = %r{
→ <span # match a span tag
→ [^>]* # ignore anything that isn’t >
→ > # match the > to close the opening tag
→ .* # anything at all in here (e.g. other tags)
→ 1.23 # the widget ID we expect, escaping the dot
→ .* # anything after it (e.g. other tags)
→ # closing span tag
→ }x

assert_match regexp, rendered_component
 assert rendered_component.html_safe?
end

end

The line:
→ [^>]* # ignore anything that isn’t >
should be:
→ .* # ignore anything that isn’t >

First Post!

davetron5000

davetron5000

Author of Rails, Angular, Postgres, and Bootstrap

I’m surprised this fails. The book executes this code when it’s run and that regexp should be correct.

Without the %r{..}x formatting, the regular expression in the book is:

regexp = /<span[^>]*>.*1\.23.*<\/span>/

And this does match the two strings in the book:

> regexp.match?('<span style="font-family: monospace">1.23</span>')
=> true
> regexp.match?('<span class="mono">1.23</span>') 
=> true

I did notice that copying and pasting from the PDF doesn’t copy the regular expression properly. Unfortunately, the tools I use to build the book result in weird uncopyable code blocks.

Can you try copying the code straight from the .zip files and see what happens?

Where Next?

Popular Pragmatic Bookshelf topics Top

mikecargal
Title: Hands-On Rust (Chap 8 (Adding a Heads Up Display) It looks like ​.with_simple_console_no_bg​(SCREEN_WIDTH*2, SCREEN_HEIGHT*2...
New
mikecargal
Title: Hands-On Rust (Chapter 11: prefab) Just played a couple of amulet-less games. With a bit of debugging, I believe that your can_p...
New
edruder
I thought that there might be interest in using the book with Rails 6.1 and Ruby 2.7.2. I’ll note what I needed to do differently here. ...
New
lirux
Hi Jamis, I think there’s an issue with a test on chapter 6. I own the ebook, version P1.0 Feb. 2019. This test doesn’t pass for me: ...
New
HarryDeveloper
Hi @venkats, It has been mentioned in the description of ‘Supervisory Job’ title that 2 things as mentioned below result in the same eff...
New
AndyDavis3416
@noelrappin Running the webpack dev server, I receive the following warning: ERROR in tsconfig.json TS18003: No inputs were found in c...
New
curtosis
Running mix deps.get in the sensor_hub directory fails with the following error: ** (Mix) No SSH public keys found in ~/.ssh. An ssh aut...
New
brunogirin
When trying to run tox in parallel as explained on page 151, I got the following error: tox: error: argument -p/–parallel: expected one...
New
adamwoolhether
Is there any place where we can discuss the solutions to some of the exercises? I can figure most of them out, but am having trouble with...
New
rainforest
Hi, I’ve got a question about the implementation of PubSub when using a Phoenix.Socket.Transport behaviour rather than channels. Before ...
New

Other popular topics Top

ohm
Which, if any, games do you play? On what platform? I just bought (and completed) Minecraft Dungeons for my Nintendo Switch. Other than ...
New
Rainer
My first contact with Erlang was about 2 years ago when I used RabbitMQ, which is written in Erlang, for my job. This made me curious and...
New
AstonJ
poll poll Be sure to check out @Dusty’s article posted here: An Introduction to Alternative Keyboard Layouts It’s one of the best write-...
New
New
PragmaticBookshelf
Build highly interactive applications without ever leaving Elixir, the way the experts do. Let LiveView take care of performance, scalabi...
New
AstonJ
Continuing the discussion from Thinking about learning Crystal, let’s discuss - I was wondering which languages don’t GC - maybe we can c...
New
First poster: bot
zig/http.zig at 7cf2cbb33ef34c1d211135f56d30fe23b6cacd42 · ziglang/zig. General-purpose programming language and toolchain for maintaini...
New
First poster: AstonJ
Jan | Rethink the Computer. Jan turns your computer into an AI machine by running LLMs locally on your computer. It’s a privacy-focus, l...
New
sir.laksmana_wenk
I’m able to do the “artistic” part of game-development; character designing/modeling, music, environment modeling, etc. However, I don’t...
New
AstonJ
Curious what kind of results others are getting, I think actually prefer the 7B model to the 32B model, not only is it faster but the qua...
New

Sub Categories: