Manfred / unichars
- Source
- Commits
- Network (1)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
master
-
I've built the gem manually, but tests give 10 errors:
1) Error: test_spec {A Unichars instance} 001 [should know it's size](A Unichars instance): TypeError: wrong argument type String (expected Array) /Users/sava/code/plugins/unichars/lib/unichars.rb:39:in `utf8_size' /Users/sava/code/plugins/unichars/lib/unichars.rb:39:in `size' /Users/sava/code/plugins/unichars/test/unichars_test.rb:27:in `block (2 levels) in ' /opt/local/lib/ruby/gems/1.9.1/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `run' 2) Error: test_spec {A Unichars instance} 002 [should upcase strings](A Unichars instance): TypeError: wrong argument type String (expected Array) /Users/sava/code/plugins/unichars/lib/unichars.rb:46:in `utf8_upcase' /Users/sava/code/plugins/unichars/lib/unichars.rb:46:in `upcase' /Users/sava/code/plugins/unichars/test/unichars_test.rb:32:in `block (2 levels) in ' /opt/local/lib/ruby/gems/1.9.1/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `run' 3) Error: test_spec {A Unichars instance} 003 [should downcase strings](A Unichars instance): TypeError: wrong argument type String (expected Array) /Users/sava/code/plugins/unichars/lib/unichars.rb:53:in `utf8_downcase' /Users/sava/code/plugins/unichars/lib/unichars.rb:53:in `downcase' /Users/sava/code/plugins/unichars/test/unichars_test.rb:37:in `block (2 levels) in ' /opt/local/lib/ruby/gems/1.9.1/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `run' 4) Error: test_spec {A Unichars instance} 004 [should reverse strings](A Unichars instance): TypeError: wrong argument type String (expected Array) /Users/sava/code/plugins/unichars/lib/unichars.rb:46:in `utf8_upcase' /Users/sava/code/plugins/unichars/lib/unichars.rb:46:in `upcase' /Users/sava/code/plugins/unichars/test/unichars_test.rb:42:in `block (2 levels) in ' /opt/local/lib/ruby/gems/1.9.1/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `run' 5) Error: test_spec {A Unichars instance} 005 [should normalize empty strings](A Unichars instance): TypeError: wrong argument type String (expected Array) /Users/sava/code/plugins/unichars/lib/unichars.rb:72:in `utf8_normalize' /Users/sava/code/plugins/unichars/lib/unichars.rb:72:in `normalize' /Users/sava/code/plugins/unichars/test/unichars_test.rb:48:in `block (3 levels) in ' /Users/sava/code/plugins/unichars/test/unichars_test.rb:47:in `each' /Users/sava/code/plugins/unichars/test/unichars_test.rb:47:in `block (2 levels) in ' /opt/local/lib/ruby/gems/1.9.1/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `run' 6) Error: test_spec {A Unichars instance} 006 [should perform simple normalization](A Unichars instance): TypeError: wrong argument type String (expected Array) /Users/sava/code/plugins/unichars/lib/unichars.rb:72:in `utf8_normalize' /Users/sava/code/plugins/unichars/lib/unichars.rb:72:in `normalize' /Users/sava/code/plugins/unichars/test/unichars_test.rb:60:in `block (2 levels) in ' /opt/local/lib/ruby/gems/1.9.1/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `run' 7) Failure: test_spec {A Unichars instance} 007 [should raise an argument error for unknown normalization forms](A Unichars instance) [/Users/sava/code/plugins/unichars/test/unichars_test.rb:67:in `block (2 levels) in ' /opt/local/lib/ruby/gems/1.9.1/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `run']: exception expected but was Class: Message: <"wrong argument type String (expected Array)"> ---Backtrace--- /Users/sava/code/plugins/unichars/lib/unichars.rb:72:in `utf8_normalize' /Users/sava/code/plugins/unichars/lib/unichars.rb:72:in `normalize' /Users/sava/code/plugins/unichars/test/unichars_test.rb:67:in `block (3 levels) in ' /Users/sava/code/plugins/unichars/test/unichars_test.rb:67:in `block (2 levels) in ' /opt/local/lib/ruby/gems/1.9.1/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `run' --------------- 8) Error: test_spec {A Unichars instance} 008 [should explain what the normalization options when supplying a wrong one](A Unichars instance): TypeError: wrong argument type String (expected Array) /Users/sava/code/plugins/unichars/lib/unichars.rb:72:in `utf8_normalize' /Users/sava/code/plugins/unichars/lib/unichars.rb:72:in `normalize' /Users/sava/code/plugins/unichars/test/unichars_test.rb:74:in `block (2 levels) in ' /opt/local/lib/ruby/gems/1.9.1/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `run' 9) Error: test_spec {A Unichars instance} 009 [should use the default normalization form when none was supplied](A Unichars instance): TypeError: can't dup NilClass /Users/sava/code/plugins/unichars/lib/chars.rb:15:in `dup' /Users/sava/code/plugins/unichars/lib/chars.rb:15:in `initialize' /Users/sava/code/plugins/unichars/lib/unichars.rb:72:in `new' /Users/sava/code/plugins/unichars/lib/unichars.rb:72:in `normalize' /Users/sava/code/plugins/unichars/test/unichars_test.rb:83:in `block (2 levels) in ' /opt/local/lib/ruby/gems/1.9.1/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `run' 10) Error: test_spec {A Unichars instance} 010 [should return an instance of itself](A Unichars instance): TypeError: wrong argument type String (expected Array) /Users/sava/code/plugins/unichars/lib/unichars.rb:46:in `utf8_upcase' /Users/sava/code/plugins/unichars/lib/unichars.rb:46:in `upcase' /Users/sava/code/plugins/unichars/test/unichars_test.rb:87:in `block (2 levels) in ' /opt/local/lib/ruby/gems/1.9.1/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `run'Comments
-
Can't compile native extension with ruby 1.9.1-p243 and glib2 (2.16 and 2.20)
2 comments Created 26 days ago by savaTrying to install unichars 0.4 on Leopard (10.5.8) gives:
/usr/bin/gcc-4.0 -I. -I/opt/local/include/ruby-1.9.1/i386-darwin9 -I/opt/local/include/ruby-1.9.1/ruby/backward -I/opt/local/include/ruby-1.9.1 -I. -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -O2 -arch i386 -O2 -g -Wall -Wno-parentheses -fno-common -pipe -fno-common -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include -o glib.o -c glib.c glib.c: In function ‘utf8_size’:
glib.c:17: error: ‘struct RString’ has no member named ‘len’
glib.c: In function ‘utf8_upcase’:
glib.c:36: error: ‘struct RString’ has no member named ‘len’
glib.c: In function ‘utf8_downcase’:
glib.c:57: error: ‘struct RString’ has no member named ‘len’
glib.c: In function ‘utf8_reverse’:
glib.c:78: error: ‘struct RString’ has no member named ‘len’
glib.c: In function ‘utf8_normalize’:
glib.c:117: error: ‘struct RString’ has no member named ‘ptr’
glib.c:120: error: ‘struct RString’ has no member named ‘len’
make: *** [glib.o] Error 1Comments
Right, 0.4 doesn't work on 1.9. The version on GitHub works, but unfortunately I can't push a new gem because the Rubyforge to Gemcutter move. I'm resolving that now, but it could take a few days.
If you need the gem right now you can clone the repository and build your own gem using rake gem:build.





Some test frameworks don't work very well on 1.9 at the moment so with certain Ruby versions the tests don't run.
Can you try the following from irb or a short script?
Can you also post the Ruby version you're running (ruby -v)?
The script works. I'm using ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-darwin9] om Leopard (10.5.8).
However, upcase/downcase doesn't work with non-Latin scripts in Rails. I configured it as per the README and in Rails console I get:
I've managed to duplicate your test failures. It probably means the glib extension compiled in the source directory doesn't load in the ruby you're testing with. Please try rake clean; rake.
I'm afraid .mb_chars isn't going to work like that in Rails on 1.9 because currently it just forwards all the methods straight to String. You can either explicitly instantiate the Chars class or override .mb_chars.
Yes, rake clean fixes it. Thanks for the Rails clarification.