Josh

Josh

Modern Front-End Development for Rails, Second Edition: can't get code to run

I just bought this book today and am having trouble getting the sample code running on an M1 MacBook.

I cd into chapter_01/02 do git init to save the initial state. Then I install Ruby 3.1.2 and run bundle install.

An error occurred while installing html_tokenizer (0.0.7), and Bundler cannot continue.

In Gemfile:
  erb_lint was resolved to 0.1.1, which depends on
    better_html was resolved to 1.0.16, which depends on
      html_tokenizer
$ ruby -v
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [arm64-darwin24]

Here’s the error log:

current directory: /Users/username/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/html_tokenizer-0.0.7/ext/html_tokenizer_ext
/Users/username/.rbenv/versions/3.1.2/bin/ruby -I /Users/username/.rbenv/versions/3.1.2/lib/ruby/3.1.0 -r ./siteconf20250429-32568-hbwjju.rb extconf.rb
creating Makefile

current directory: /Users/username/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/html_tokenizer-0.0.7/ext/html_tokenizer_ext
make DESTDIR\= clean

current directory: /Users/username/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/html_tokenizer-0.0.7/ext/html_tokenizer_ext
make DESTDIR\=
compiling html_tokenizer.c
compiling parser.c
parser.c:459:45: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
  459 |       INT2NUM(ref.line_number), INT2NUM(ref.column_number));
      |                                 ~~~~~~~ ~~~~^~~~~~~~~~~~~
parser.c:459:19: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
  459 |       INT2NUM(ref.line_number), INT2NUM(ref.column_number));
      |       ~~~~~~~ ~~~~^~~~~~~~~~~
parser.c:458:51: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
  458 |       INT2NUM(ref.mb_start), INT2NUM(ref.mb_start + mb_strlen),
      |                              ~~~~~~~ ~~~~~~~~~~~~~^~~~~~~~~~~
parser.c:458:19: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
  458 |       INT2NUM(ref.mb_start), INT2NUM(ref.mb_start + mb_strlen),
      |       ~~~~~~~ ~~~~^~~~~~~~
parser.c:498:9: warning: unused variable 'old' [-Wunused-variable]
  498 |   void *old = parser->doc.data;
      |         ^~~
parser.c:721:26: warning: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'int' [-Wshorten-64-to-32]
  721 |   return INT2NUM(parser->errors_count);
      |          ~~~~~~~ ~~~~~~~~^~~~~~~~~~~~
parser.c:792:3: error: incompatible function pointer types passing 'VALUE (VALUE, VALUE)' (aka 'unsigned long (unsigned long, unsigned long)') to parameter of type 'VALUE (*)(VALUE)' (aka 'unsigned long (*)(unsigned long)') [-Wincompatible-function-pointer-types]
  792 |   rb_define_method(cParser, "errors", parser_errors_method, 0);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/username/.rbenv/versions/3.1.2/include/ruby-3.1.0/ruby/internal/anyargs.h:287:135: note: expanded from macro 'rb_define_method'
  287 | #define rb_define_method(klass, mid, func, arity)           RBIMPL_ANYARGS_DISPATCH_rb_define_method((arity), (func))((klass), (mid), (func), (arity))
      |                                                                                                                                       ^~~~~~
/Users/username/.rbenv/versions/3.1.2/include/ruby-3.1.0/ruby/internal/anyargs.h:276:1: note: passing argument to parameter here
  276 | RBIMPL_ANYARGS_DECL(rb_define_method, VALUE, const char *)
      | ^
/Users/username/.rbenv/versions/3.1.2/include/ruby-3.1.0/ruby/internal/anyargs.h:254:72: note: expanded from macro 'RBIMPL_ANYARGS_DECL'
  254 | RBIMPL_ANYARGS_ATTRSET(sym) static void sym ## _00(__VA_ARGS__, VALUE(*)(VALUE), int); \
      |                                                                        ^
6 warnings and 1 error generated.
make: *** [parser.o] Error 1

make failed, exit code 2

I spent almost an hour with Copilot trying to debug it, but still couldn’t get it to run. I updated some of the dependencies, but that just created other errors where it couldn’t find the Logger.

Has anyone been able to get the sample code working recently?

Where Next?

Popular Pragmatic Bookshelf topics Top

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
AleksandrKudashkin
On the page xv there is an instruction to run bin/setup from the main folder. I downloaded the source code today (12/03/21) and can’t see...
New
alanq
This isn’t directly about the book contents so maybe not the right forum…but in some of the code apps (e.g. turbo/06) it sends a TURBO_ST...
New
Chrichton
Dear Sophie. I tried to do the “Authorization” exercise and have two questions: When trying to plug in an email-service, I found the ...
New
patoncrispy
I’m new to Rust and am using this book to learn more as well as to feed my interest in game dev. I’ve just finished the flappy dragon exa...
New
brunogirin
When installing Cards as an editable package, I get the following error: ERROR: File “setup.py” not found. Directory cannot be installe...
New
oaklandgit
Hi, I completed chapter 6 but am getting the following error when running: thread 'main' panicked at 'Failed to load texture: IoError(O...
New
dtonhofer
@parrt In the context of Chapter 4.3, the grammar Java.g4, meant to parse Java 6 compilation units, no longer passes ANTLR (currently 4....
New
dachristenson
@mfazio23 Android Studio will not accept anything I do when trying to use the Transformations class, as described on pp. 140-141. Googl...
New
dachristenson
I’ve got to the end of Ch. 11, and the app runs, with all tabs displaying what they should – at first. After switching around between St...
New

Other popular topics Top

PragmaticBookshelf
A PragProg Hero’s Journey with Brian P. Hogan @bphogan Have you ever worried that your only legacy will be in the form of legacy...
New
brentjanderson
Bought the Moonlander mechanical keyboard. Cherry Brown MX switches. Arms and wrists have been hurting enough that it’s time I did someth...
New
DevotionGeo
I know that -t flag is used along with -i flag for getting an interactive shell. But I cannot digest what the man page for docker run com...
New
AstonJ
We have a thread about the keyboards we have, but what about nice keyboards we come across that we want? If you have seen any that look n...
New
New
New
PragmaticBookshelf
Author Spotlight: Peter Ullrich @PJUllrich Data is at the core of every business, but it is useless if nobody can access and analyze ...
New
First poster: bot
zig/http.zig at 7cf2cbb33ef34c1d211135f56d30fe23b6cacd42 · ziglang/zig. General-purpose programming language and toolchain for maintaini...
New
New
AstonJ
This is cool! DEEPSEEK-V3 ON M4 MAC: BLAZING FAST INFERENCE ON APPLE SILICON We just witnessed something incredible: the largest open-s...
New

Sub Categories: