stringex 1.3.0 → 1.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +35 -22
- data/Rakefile +2 -2
- data/lib/stringex.rb +5 -5
- data/stringex.gemspec +3 -186
- data/test/unidecoder_test.rb +4 -4
- metadata +5 -188
- data/lib/lucky_sneaks/acts_as_url.rb +0 -105
- data/lib/lucky_sneaks/string_extensions.rb +0 -196
- data/lib/lucky_sneaks/unidecoder.rb +0 -62
- data/lib/lucky_sneaks/unidecoder_data/x00.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x01.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x02.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x03.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x04.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x05.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x06.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x07.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x09.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x0a.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x0b.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x0c.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x0d.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x0e.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x0f.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x10.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x11.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x12.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x13.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x14.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x15.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x16.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x17.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x18.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x1e.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x1f.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x20.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x21.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x22.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x23.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x24.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x25.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x26.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x27.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x28.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x2e.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x2f.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x30.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x31.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x32.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x33.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x4d.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/x4e.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x4f.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x50.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x51.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x52.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x53.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x54.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x55.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x56.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x57.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x58.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x59.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x5a.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x5b.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x5c.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x5d.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x5e.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x5f.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x60.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x61.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x62.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x63.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x64.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x65.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x66.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x67.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x68.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x69.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x6a.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x6b.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x6c.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x6d.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x6e.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x6f.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x70.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x71.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x72.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x73.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x74.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x75.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x76.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x77.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x78.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x79.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x7a.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x7b.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x7c.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x7d.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x7e.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x7f.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x80.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x81.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x82.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x83.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x84.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x85.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x86.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x87.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x88.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x89.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x8a.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x8b.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x8c.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x8d.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x8e.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x8f.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x90.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x91.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x92.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x93.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x94.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x95.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x96.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x97.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x98.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x99.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x9a.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x9b.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x9c.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x9d.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x9e.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/x9f.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/xa0.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xa1.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xa2.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xa3.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xa4.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/xac.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xad.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xae.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xaf.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xb0.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xb1.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xb2.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xb3.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xb4.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xb5.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xb6.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xb7.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xb8.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xb9.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xba.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xbb.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xbc.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xbd.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xbe.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xbf.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xc0.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xc1.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xc2.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xc3.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xc4.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xc5.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xc6.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xc7.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xc8.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xc9.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xca.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xcb.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xcc.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xcd.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xce.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xcf.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xd0.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xd1.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xd2.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xd3.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xd4.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xd5.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xd6.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xd7.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/xf9.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xfa.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/xfb.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xfc.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xfd.yml +0 -256
- data/lib/lucky_sneaks/unidecoder_data/xfe.yml +0 -257
- data/lib/lucky_sneaks/unidecoder_data/xff.yml +0 -257
data/README.rdoc
CHANGED
@@ -14,47 +14,50 @@ which will populate the <tt>url</tt> attribute on the object with the converted
|
|
14
14
|
<tt>:url_attribute</tt>:: The name of the attribute to use for storing the generated url string.
|
15
15
|
Default is <tt>:url</tt>
|
16
16
|
<tt>:scope</tt>:: The name of model attribute to scope unique urls to. There is no default here.
|
17
|
-
<tt>:only_when_blank</tt>:: If true, the url generation will only happen when <tt>:url_attribute</tt> is
|
17
|
+
<tt>:only_when_blank</tt>:: If true, the url generation will only happen when <tt>:url_attribute</tt> is
|
18
18
|
blank. Default is false (meaning url generation will happen always)
|
19
19
|
<tt>:sync_url</tt>:: If set to true, the url field will be updated when changes are made to the
|
20
20
|
attribute it is based on. Default is false.
|
21
|
-
|
21
|
+
<tt>:allow_slash</tt>:: If set to true, the url field will not convert slashes. Default is false.
|
22
|
+
|
22
23
|
In order to use the generated url attribute, you will probably want to override <tt>to_param</tt> like so, in your Model:
|
23
24
|
|
24
25
|
# Inside your model
|
25
26
|
def to_param
|
26
27
|
url # or whatever you set :url_attribute to
|
27
28
|
end
|
28
|
-
|
29
|
+
|
29
30
|
Routing called via named routes like <tt>foo_path(@foo)</tt> will automatically use the url. In your controllers you will need to call <tt>Foo.find_by_url(params[:id])</tt> instead of the regular find. Don't look for <tt>params[:url]</tt> unless you set it explicitly in the routing, <tt>to_param</tt> will generate <tt>params[:id]</tt>.
|
30
31
|
|
32
|
+
Note that if you add <tt>acts_as_url</tt> to an old model, the <tt>url</tt> database column will inititally be blank. To set this column for your old instances, you can use the <tt>initialize_urls</tt> method. So if your class is <tt>Post</tt>, just say <tt>Post.all.each{|p| p.initialize_urls}</tt>.
|
33
|
+
|
31
34
|
Unlike other permalink solutions, ActsAsUrl doesn't rely on Iconv (which is inconsistent across platforms and doesn't provide great transliteration as is) but instead uses a transliteration scheme (see the code for Unidecoder) which produces much better results for Unicode characters. It also mixes in some custom helpers to translate common characters into a more URI-friendly format rather than just dump them completely. Examples:
|
32
35
|
|
33
36
|
# A simple prelude
|
34
|
-
"simple English".to_url => "simple-english"
|
35
|
-
"it's nothing at all".to_url => "its-nothing-at-all"
|
36
|
-
"rock & roll".to_url => "rock-and-roll"
|
37
|
+
"simple English".to_url => "simple-english"
|
38
|
+
"it's nothing at all".to_url => "its-nothing-at-all"
|
39
|
+
"rock & roll".to_url => "rock-and-roll"
|
37
40
|
|
38
41
|
# Let's show off
|
39
|
-
"$12 worth of Ruby power".to_url => "12-dollars-worth-of-ruby-power"
|
40
|
-
"10% off if you act now".to_url => "10-percent-off-if-you-act-now"
|
42
|
+
"$12 worth of Ruby power".to_url => "12-dollars-worth-of-ruby-power"
|
43
|
+
"10% off if you act now".to_url => "10-percent-off-if-you-act-now"
|
41
44
|
|
42
45
|
# You don't even wanna trust Iconv for this next part
|
43
|
-
"kick it en Français".to_url => "kick-it-en-francais"
|
44
|
-
"rock it Español style".to_url => "rock-it-espanol-style"
|
46
|
+
"kick it en Français".to_url => "kick-it-en-francais"
|
47
|
+
"rock it Español style".to_url => "rock-it-espanol-style"
|
45
48
|
"tell your readers 你好".to_url => "tell-your-readers-ni-hao"
|
46
|
-
|
49
|
+
|
47
50
|
Compare those results with the ones produced on my Intel Mac by a leading permalink plugin:
|
48
51
|
|
49
|
-
"simple English" # => "simple-english"
|
52
|
+
"simple English" # => "simple-english"
|
50
53
|
"it's nothing at all" # => "it-s-nothing-at-all"
|
51
|
-
"rock & roll" # => "rock-roll"
|
54
|
+
"rock & roll" # => "rock-roll"
|
52
55
|
|
53
|
-
"$12 worth of Ruby power" # => "12-worth-of-ruby-power"
|
54
|
-
"10% off if you act now" # => "10-off-if-you-act-now"
|
56
|
+
"$12 worth of Ruby power" # => "12-worth-of-ruby-power"
|
57
|
+
"10% off if you act now" # => "10-off-if-you-act-now"
|
55
58
|
|
56
|
-
"kick it en Français" # => "kick-it-en-francais"
|
57
|
-
"rock it Español style" # => "rock-it-espan-ol-style"
|
59
|
+
"kick it en Français" # => "kick-it-en-francais"
|
60
|
+
"rock it Español style" # => "rock-it-espan-ol-style"
|
58
61
|
"tell your readers 你好" # => "tell-your-readers"
|
59
62
|
|
60
63
|
Not so great, actually.
|
@@ -63,15 +66,25 @@ Note: No offense is intended to the author[s] of whatever plugins might produce
|
|
63
66
|
|
64
67
|
== Unidecoder
|
65
68
|
|
66
|
-
This library converts Unicode [and accented
|
69
|
+
This library converts Unicode [and accented ASCII] characters to their plain-text ASCII equivalents. This is a port of Perl's Unidecode and provides eminently superior and more reliable results than Iconv. (Seriously, Iconv... A plague on both your houses! [sic])
|
70
|
+
|
71
|
+
You probably won't ever need to run Unidecoder by itself. StringExtensions adds String#to_ascii which wraps all of Unidecoder's functionality. For anyone interested, details of the implementation can be read about in the original implementation of Text::Unidecode[http://interglacial.com/~sburke/tpj/as_html/tpj22.html]. Extensive examples can be found in the tests.
|
72
|
+
|
73
|
+
Unidecoder module also provides localization options for Stringex. You can use this functionality by loading either a YAML file or Hash like the following code snippets:
|
74
|
+
|
75
|
+
# Using a Hash
|
76
|
+
Stringex.localize_from :en => {"é" => "ee"}
|
77
|
+
|
78
|
+
# Loading from a file. NOTE: The path to file should be absolute.
|
79
|
+
Stringex.localize_from "/path/to/yaml_file"
|
67
80
|
|
68
|
-
|
81
|
+
In both the YAML and pure Hash implementation, the end result should be a Hash with keys representing the locale and values being another Hash with those keys being the UTF character and the values the transliterated ASCII values. (I hope that made sense.) You can check the documentation for the Unidecoder module for more information about setting locales.
|
69
82
|
|
70
83
|
== StringExtensions
|
71
84
|
|
72
|
-
A collection of extensions on Ruby's String class. Please see the documentation for
|
85
|
+
A collection of extensions on Ruby's String class. Please see the documentation for StringExtensions module for more information. There's not much to explain about them really.
|
73
86
|
|
74
|
-
== Note to users of
|
87
|
+
== Note to users of CanCan
|
75
88
|
|
76
89
|
You'll need to add a <tt>:find_by => :url</tt> to your <tt>load_and_authorize_resource</tt>. Here's an example:
|
77
90
|
|
@@ -79,6 +92,6 @@ You'll need to add a <tt>:find_by => :url</tt> to your <tt>load_and_authorize_re
|
|
79
92
|
|
80
93
|
== Thanks & Acknowledgements
|
81
94
|
|
82
|
-
If it's not obvious, some of the code for ActsAsUrl is based on Rick Olsen's permalink_fu[http://svn.techno-weenie.net/projects/plugins/permalink_fu/] plugin. Unidecoder is a Ruby port of Sean Burke's Text::Unidecode[http://interglacial.com/~sburke/tpj/as_html/tpj22.html] module for Perl. And, finally, the bulk of strip_html_tags[link:classes/
|
95
|
+
If it's not obvious, some of the code for ActsAsUrl is based on Rick Olsen's permalink_fu[http://svn.techno-weenie.net/projects/plugins/permalink_fu/] plugin. Unidecoder is a Ruby port of Sean Burke's Text::Unidecode[http://interglacial.com/~sburke/tpj/as_html/tpj22.html] module for Perl. And, finally, the bulk of strip_html_tags[link:classes/Stringex/StringExtensions.html#M000005] in StringExtensions was stolen from Tobias Lütke's Regex in Typo[http://typosphere.org/].
|
83
96
|
|
84
97
|
copyright (c) 2008 Lucky Sneaks, released under the MIT license
|
data/Rakefile
CHANGED
@@ -12,7 +12,7 @@ begin
|
|
12
12
|
gem.email = "rsl@luckysneaks.com"
|
13
13
|
gem.homepage = "http://github.com/rsl/stringex"
|
14
14
|
gem.summary = "Some [hopefully] useful extensions to Ruby's String class"
|
15
|
-
gem.description = "Some [hopefully] useful extensions to Ruby's String class. Stringex is made up of three libraries: ActsAsUrl [permalink solution with better character translation], Unidecoder [Unicode to
|
15
|
+
gem.description = "Some [hopefully] useful extensions to Ruby's String class. Stringex is made up of three libraries: ActsAsUrl [permalink solution with better character translation], Unidecoder [Unicode to ASCII transliteration], and StringExtensions [miscellaneous helper methods for the String class]."
|
16
16
|
gem.has_rdoc = true
|
17
17
|
gem.files = %w{
|
18
18
|
init.rb
|
@@ -212,7 +212,7 @@ begin
|
|
212
212
|
}
|
213
213
|
gem.rdoc_options = %w{--main README.rdoc --charset utf-8 --line-numbers}
|
214
214
|
gem.extra_rdoc_files = %w{MIT-LICENSE README.rdoc}
|
215
|
-
gem.version = "1.3.
|
215
|
+
gem.version = "1.3.1"
|
216
216
|
end
|
217
217
|
|
218
218
|
Jeweler::GemcutterTasks.new
|
data/lib/stringex.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
# encoding: UTF-8
|
2
|
-
require '
|
3
|
-
require '
|
2
|
+
require 'stringex/string_extensions'
|
3
|
+
require 'stringex/unidecoder'
|
4
4
|
|
5
|
-
String.send :include,
|
5
|
+
String.send :include, Stringex::StringExtensions
|
6
6
|
|
7
7
|
if defined?(ActiveRecord)
|
8
|
-
require '
|
9
|
-
ActiveRecord::Base.send :include,
|
8
|
+
require 'stringex/acts_as_url'
|
9
|
+
ActiveRecord::Base.send :include, Stringex::ActsAsUrl
|
10
10
|
end
|
data/stringex.gemspec
CHANGED
@@ -5,12 +5,12 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{stringex}
|
8
|
-
s.version = "1.3.
|
8
|
+
s.version = "1.3.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Russell Norris"]
|
12
|
-
s.date = %q{
|
13
|
-
s.description = %q{Some [hopefully] useful extensions to Ruby's String class. Stringex is made up of three libraries: ActsAsUrl [permalink solution with better character translation], Unidecoder [Unicode to
|
12
|
+
s.date = %q{2012-02-16}
|
13
|
+
s.description = %q{Some [hopefully] useful extensions to Ruby's String class. Stringex is made up of three libraries: ActsAsUrl [permalink solution with better character translation], Unidecoder [Unicode to ASCII transliteration], and StringExtensions [miscellaneous helper methods for the String class].}
|
14
14
|
s.email = %q{rsl@luckysneaks.com}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"MIT-LICENSE",
|
@@ -21,189 +21,6 @@ Gem::Specification.new do |s|
|
|
21
21
|
"README.rdoc",
|
22
22
|
"Rakefile",
|
23
23
|
"init.rb",
|
24
|
-
"lib/lucky_sneaks/acts_as_url.rb",
|
25
|
-
"lib/lucky_sneaks/string_extensions.rb",
|
26
|
-
"lib/lucky_sneaks/unidecoder.rb",
|
27
|
-
"lib/lucky_sneaks/unidecoder_data/x00.yml",
|
28
|
-
"lib/lucky_sneaks/unidecoder_data/x01.yml",
|
29
|
-
"lib/lucky_sneaks/unidecoder_data/x02.yml",
|
30
|
-
"lib/lucky_sneaks/unidecoder_data/x03.yml",
|
31
|
-
"lib/lucky_sneaks/unidecoder_data/x04.yml",
|
32
|
-
"lib/lucky_sneaks/unidecoder_data/x05.yml",
|
33
|
-
"lib/lucky_sneaks/unidecoder_data/x06.yml",
|
34
|
-
"lib/lucky_sneaks/unidecoder_data/x07.yml",
|
35
|
-
"lib/lucky_sneaks/unidecoder_data/x09.yml",
|
36
|
-
"lib/lucky_sneaks/unidecoder_data/x0a.yml",
|
37
|
-
"lib/lucky_sneaks/unidecoder_data/x0b.yml",
|
38
|
-
"lib/lucky_sneaks/unidecoder_data/x0c.yml",
|
39
|
-
"lib/lucky_sneaks/unidecoder_data/x0d.yml",
|
40
|
-
"lib/lucky_sneaks/unidecoder_data/x0e.yml",
|
41
|
-
"lib/lucky_sneaks/unidecoder_data/x0f.yml",
|
42
|
-
"lib/lucky_sneaks/unidecoder_data/x10.yml",
|
43
|
-
"lib/lucky_sneaks/unidecoder_data/x11.yml",
|
44
|
-
"lib/lucky_sneaks/unidecoder_data/x12.yml",
|
45
|
-
"lib/lucky_sneaks/unidecoder_data/x13.yml",
|
46
|
-
"lib/lucky_sneaks/unidecoder_data/x14.yml",
|
47
|
-
"lib/lucky_sneaks/unidecoder_data/x15.yml",
|
48
|
-
"lib/lucky_sneaks/unidecoder_data/x16.yml",
|
49
|
-
"lib/lucky_sneaks/unidecoder_data/x17.yml",
|
50
|
-
"lib/lucky_sneaks/unidecoder_data/x18.yml",
|
51
|
-
"lib/lucky_sneaks/unidecoder_data/x1e.yml",
|
52
|
-
"lib/lucky_sneaks/unidecoder_data/x1f.yml",
|
53
|
-
"lib/lucky_sneaks/unidecoder_data/x20.yml",
|
54
|
-
"lib/lucky_sneaks/unidecoder_data/x21.yml",
|
55
|
-
"lib/lucky_sneaks/unidecoder_data/x22.yml",
|
56
|
-
"lib/lucky_sneaks/unidecoder_data/x23.yml",
|
57
|
-
"lib/lucky_sneaks/unidecoder_data/x24.yml",
|
58
|
-
"lib/lucky_sneaks/unidecoder_data/x25.yml",
|
59
|
-
"lib/lucky_sneaks/unidecoder_data/x26.yml",
|
60
|
-
"lib/lucky_sneaks/unidecoder_data/x27.yml",
|
61
|
-
"lib/lucky_sneaks/unidecoder_data/x28.yml",
|
62
|
-
"lib/lucky_sneaks/unidecoder_data/x2e.yml",
|
63
|
-
"lib/lucky_sneaks/unidecoder_data/x2f.yml",
|
64
|
-
"lib/lucky_sneaks/unidecoder_data/x30.yml",
|
65
|
-
"lib/lucky_sneaks/unidecoder_data/x31.yml",
|
66
|
-
"lib/lucky_sneaks/unidecoder_data/x32.yml",
|
67
|
-
"lib/lucky_sneaks/unidecoder_data/x33.yml",
|
68
|
-
"lib/lucky_sneaks/unidecoder_data/x4d.yml",
|
69
|
-
"lib/lucky_sneaks/unidecoder_data/x4e.yml",
|
70
|
-
"lib/lucky_sneaks/unidecoder_data/x4f.yml",
|
71
|
-
"lib/lucky_sneaks/unidecoder_data/x50.yml",
|
72
|
-
"lib/lucky_sneaks/unidecoder_data/x51.yml",
|
73
|
-
"lib/lucky_sneaks/unidecoder_data/x52.yml",
|
74
|
-
"lib/lucky_sneaks/unidecoder_data/x53.yml",
|
75
|
-
"lib/lucky_sneaks/unidecoder_data/x54.yml",
|
76
|
-
"lib/lucky_sneaks/unidecoder_data/x55.yml",
|
77
|
-
"lib/lucky_sneaks/unidecoder_data/x56.yml",
|
78
|
-
"lib/lucky_sneaks/unidecoder_data/x57.yml",
|
79
|
-
"lib/lucky_sneaks/unidecoder_data/x58.yml",
|
80
|
-
"lib/lucky_sneaks/unidecoder_data/x59.yml",
|
81
|
-
"lib/lucky_sneaks/unidecoder_data/x5a.yml",
|
82
|
-
"lib/lucky_sneaks/unidecoder_data/x5b.yml",
|
83
|
-
"lib/lucky_sneaks/unidecoder_data/x5c.yml",
|
84
|
-
"lib/lucky_sneaks/unidecoder_data/x5d.yml",
|
85
|
-
"lib/lucky_sneaks/unidecoder_data/x5e.yml",
|
86
|
-
"lib/lucky_sneaks/unidecoder_data/x5f.yml",
|
87
|
-
"lib/lucky_sneaks/unidecoder_data/x60.yml",
|
88
|
-
"lib/lucky_sneaks/unidecoder_data/x61.yml",
|
89
|
-
"lib/lucky_sneaks/unidecoder_data/x62.yml",
|
90
|
-
"lib/lucky_sneaks/unidecoder_data/x63.yml",
|
91
|
-
"lib/lucky_sneaks/unidecoder_data/x64.yml",
|
92
|
-
"lib/lucky_sneaks/unidecoder_data/x65.yml",
|
93
|
-
"lib/lucky_sneaks/unidecoder_data/x66.yml",
|
94
|
-
"lib/lucky_sneaks/unidecoder_data/x67.yml",
|
95
|
-
"lib/lucky_sneaks/unidecoder_data/x68.yml",
|
96
|
-
"lib/lucky_sneaks/unidecoder_data/x69.yml",
|
97
|
-
"lib/lucky_sneaks/unidecoder_data/x6a.yml",
|
98
|
-
"lib/lucky_sneaks/unidecoder_data/x6b.yml",
|
99
|
-
"lib/lucky_sneaks/unidecoder_data/x6c.yml",
|
100
|
-
"lib/lucky_sneaks/unidecoder_data/x6d.yml",
|
101
|
-
"lib/lucky_sneaks/unidecoder_data/x6e.yml",
|
102
|
-
"lib/lucky_sneaks/unidecoder_data/x6f.yml",
|
103
|
-
"lib/lucky_sneaks/unidecoder_data/x70.yml",
|
104
|
-
"lib/lucky_sneaks/unidecoder_data/x71.yml",
|
105
|
-
"lib/lucky_sneaks/unidecoder_data/x72.yml",
|
106
|
-
"lib/lucky_sneaks/unidecoder_data/x73.yml",
|
107
|
-
"lib/lucky_sneaks/unidecoder_data/x74.yml",
|
108
|
-
"lib/lucky_sneaks/unidecoder_data/x75.yml",
|
109
|
-
"lib/lucky_sneaks/unidecoder_data/x76.yml",
|
110
|
-
"lib/lucky_sneaks/unidecoder_data/x77.yml",
|
111
|
-
"lib/lucky_sneaks/unidecoder_data/x78.yml",
|
112
|
-
"lib/lucky_sneaks/unidecoder_data/x79.yml",
|
113
|
-
"lib/lucky_sneaks/unidecoder_data/x7a.yml",
|
114
|
-
"lib/lucky_sneaks/unidecoder_data/x7b.yml",
|
115
|
-
"lib/lucky_sneaks/unidecoder_data/x7c.yml",
|
116
|
-
"lib/lucky_sneaks/unidecoder_data/x7d.yml",
|
117
|
-
"lib/lucky_sneaks/unidecoder_data/x7e.yml",
|
118
|
-
"lib/lucky_sneaks/unidecoder_data/x7f.yml",
|
119
|
-
"lib/lucky_sneaks/unidecoder_data/x80.yml",
|
120
|
-
"lib/lucky_sneaks/unidecoder_data/x81.yml",
|
121
|
-
"lib/lucky_sneaks/unidecoder_data/x82.yml",
|
122
|
-
"lib/lucky_sneaks/unidecoder_data/x83.yml",
|
123
|
-
"lib/lucky_sneaks/unidecoder_data/x84.yml",
|
124
|
-
"lib/lucky_sneaks/unidecoder_data/x85.yml",
|
125
|
-
"lib/lucky_sneaks/unidecoder_data/x86.yml",
|
126
|
-
"lib/lucky_sneaks/unidecoder_data/x87.yml",
|
127
|
-
"lib/lucky_sneaks/unidecoder_data/x88.yml",
|
128
|
-
"lib/lucky_sneaks/unidecoder_data/x89.yml",
|
129
|
-
"lib/lucky_sneaks/unidecoder_data/x8a.yml",
|
130
|
-
"lib/lucky_sneaks/unidecoder_data/x8b.yml",
|
131
|
-
"lib/lucky_sneaks/unidecoder_data/x8c.yml",
|
132
|
-
"lib/lucky_sneaks/unidecoder_data/x8d.yml",
|
133
|
-
"lib/lucky_sneaks/unidecoder_data/x8e.yml",
|
134
|
-
"lib/lucky_sneaks/unidecoder_data/x8f.yml",
|
135
|
-
"lib/lucky_sneaks/unidecoder_data/x90.yml",
|
136
|
-
"lib/lucky_sneaks/unidecoder_data/x91.yml",
|
137
|
-
"lib/lucky_sneaks/unidecoder_data/x92.yml",
|
138
|
-
"lib/lucky_sneaks/unidecoder_data/x93.yml",
|
139
|
-
"lib/lucky_sneaks/unidecoder_data/x94.yml",
|
140
|
-
"lib/lucky_sneaks/unidecoder_data/x95.yml",
|
141
|
-
"lib/lucky_sneaks/unidecoder_data/x96.yml",
|
142
|
-
"lib/lucky_sneaks/unidecoder_data/x97.yml",
|
143
|
-
"lib/lucky_sneaks/unidecoder_data/x98.yml",
|
144
|
-
"lib/lucky_sneaks/unidecoder_data/x99.yml",
|
145
|
-
"lib/lucky_sneaks/unidecoder_data/x9a.yml",
|
146
|
-
"lib/lucky_sneaks/unidecoder_data/x9b.yml",
|
147
|
-
"lib/lucky_sneaks/unidecoder_data/x9c.yml",
|
148
|
-
"lib/lucky_sneaks/unidecoder_data/x9d.yml",
|
149
|
-
"lib/lucky_sneaks/unidecoder_data/x9e.yml",
|
150
|
-
"lib/lucky_sneaks/unidecoder_data/x9f.yml",
|
151
|
-
"lib/lucky_sneaks/unidecoder_data/xa0.yml",
|
152
|
-
"lib/lucky_sneaks/unidecoder_data/xa1.yml",
|
153
|
-
"lib/lucky_sneaks/unidecoder_data/xa2.yml",
|
154
|
-
"lib/lucky_sneaks/unidecoder_data/xa3.yml",
|
155
|
-
"lib/lucky_sneaks/unidecoder_data/xa4.yml",
|
156
|
-
"lib/lucky_sneaks/unidecoder_data/xac.yml",
|
157
|
-
"lib/lucky_sneaks/unidecoder_data/xad.yml",
|
158
|
-
"lib/lucky_sneaks/unidecoder_data/xae.yml",
|
159
|
-
"lib/lucky_sneaks/unidecoder_data/xaf.yml",
|
160
|
-
"lib/lucky_sneaks/unidecoder_data/xb0.yml",
|
161
|
-
"lib/lucky_sneaks/unidecoder_data/xb1.yml",
|
162
|
-
"lib/lucky_sneaks/unidecoder_data/xb2.yml",
|
163
|
-
"lib/lucky_sneaks/unidecoder_data/xb3.yml",
|
164
|
-
"lib/lucky_sneaks/unidecoder_data/xb4.yml",
|
165
|
-
"lib/lucky_sneaks/unidecoder_data/xb5.yml",
|
166
|
-
"lib/lucky_sneaks/unidecoder_data/xb6.yml",
|
167
|
-
"lib/lucky_sneaks/unidecoder_data/xb7.yml",
|
168
|
-
"lib/lucky_sneaks/unidecoder_data/xb8.yml",
|
169
|
-
"lib/lucky_sneaks/unidecoder_data/xb9.yml",
|
170
|
-
"lib/lucky_sneaks/unidecoder_data/xba.yml",
|
171
|
-
"lib/lucky_sneaks/unidecoder_data/xbb.yml",
|
172
|
-
"lib/lucky_sneaks/unidecoder_data/xbc.yml",
|
173
|
-
"lib/lucky_sneaks/unidecoder_data/xbd.yml",
|
174
|
-
"lib/lucky_sneaks/unidecoder_data/xbe.yml",
|
175
|
-
"lib/lucky_sneaks/unidecoder_data/xbf.yml",
|
176
|
-
"lib/lucky_sneaks/unidecoder_data/xc0.yml",
|
177
|
-
"lib/lucky_sneaks/unidecoder_data/xc1.yml",
|
178
|
-
"lib/lucky_sneaks/unidecoder_data/xc2.yml",
|
179
|
-
"lib/lucky_sneaks/unidecoder_data/xc3.yml",
|
180
|
-
"lib/lucky_sneaks/unidecoder_data/xc4.yml",
|
181
|
-
"lib/lucky_sneaks/unidecoder_data/xc5.yml",
|
182
|
-
"lib/lucky_sneaks/unidecoder_data/xc6.yml",
|
183
|
-
"lib/lucky_sneaks/unidecoder_data/xc7.yml",
|
184
|
-
"lib/lucky_sneaks/unidecoder_data/xc8.yml",
|
185
|
-
"lib/lucky_sneaks/unidecoder_data/xc9.yml",
|
186
|
-
"lib/lucky_sneaks/unidecoder_data/xca.yml",
|
187
|
-
"lib/lucky_sneaks/unidecoder_data/xcb.yml",
|
188
|
-
"lib/lucky_sneaks/unidecoder_data/xcc.yml",
|
189
|
-
"lib/lucky_sneaks/unidecoder_data/xcd.yml",
|
190
|
-
"lib/lucky_sneaks/unidecoder_data/xce.yml",
|
191
|
-
"lib/lucky_sneaks/unidecoder_data/xcf.yml",
|
192
|
-
"lib/lucky_sneaks/unidecoder_data/xd0.yml",
|
193
|
-
"lib/lucky_sneaks/unidecoder_data/xd1.yml",
|
194
|
-
"lib/lucky_sneaks/unidecoder_data/xd2.yml",
|
195
|
-
"lib/lucky_sneaks/unidecoder_data/xd3.yml",
|
196
|
-
"lib/lucky_sneaks/unidecoder_data/xd4.yml",
|
197
|
-
"lib/lucky_sneaks/unidecoder_data/xd5.yml",
|
198
|
-
"lib/lucky_sneaks/unidecoder_data/xd6.yml",
|
199
|
-
"lib/lucky_sneaks/unidecoder_data/xd7.yml",
|
200
|
-
"lib/lucky_sneaks/unidecoder_data/xf9.yml",
|
201
|
-
"lib/lucky_sneaks/unidecoder_data/xfa.yml",
|
202
|
-
"lib/lucky_sneaks/unidecoder_data/xfb.yml",
|
203
|
-
"lib/lucky_sneaks/unidecoder_data/xfc.yml",
|
204
|
-
"lib/lucky_sneaks/unidecoder_data/xfd.yml",
|
205
|
-
"lib/lucky_sneaks/unidecoder_data/xfe.yml",
|
206
|
-
"lib/lucky_sneaks/unidecoder_data/xff.yml",
|
207
24
|
"lib/stringex.rb",
|
208
25
|
"stringex.gemspec"
|
209
26
|
]
|
data/test/unidecoder_test.rb
CHANGED
@@ -53,10 +53,10 @@ class UnidecoderTest < Test::Unit::TestCase
|
|
53
53
|
|
54
54
|
def test_unidecoder_decode
|
55
55
|
DONT_CONVERT.each do |ascii|
|
56
|
-
assert_equal ascii,
|
56
|
+
assert_equal ascii, Stringex::Unidecoder.decode(ascii)
|
57
57
|
end
|
58
58
|
CONVERT_PAIRS.each do |unicode, ascii|
|
59
|
-
assert_equal ascii,
|
59
|
+
assert_equal ascii, Stringex::Unidecoder.decode(unicode)
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
@@ -76,7 +76,7 @@ class UnidecoderTest < Test::Unit::TestCase
|
|
76
76
|
"00e6" => "æ",
|
77
77
|
"042f" => "Я"
|
78
78
|
}.each do |codepoint, unicode|
|
79
|
-
assert_equal unicode,
|
79
|
+
assert_equal unicode, Stringex::Unidecoder.encode(codepoint)
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
@@ -86,7 +86,7 @@ class UnidecoderTest < Test::Unit::TestCase
|
|
86
86
|
"π" => "x03.yml (line 194)",
|
87
87
|
"Я" => "x04.yml (line 49)"
|
88
88
|
}.each do |character, output|
|
89
|
-
assert_equal output,
|
89
|
+
assert_equal output, Stringex::Unidecoder.in_yaml_file(character)
|
90
90
|
end
|
91
91
|
end
|
92
92
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stringex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 1.3.
|
9
|
+
- 1
|
10
|
+
version: 1.3.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Russell Norris
|
@@ -15,11 +15,11 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2012-02-16 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|
22
|
-
description: "Some [hopefully] useful extensions to Ruby's String class. Stringex is made up of three libraries: ActsAsUrl [permalink solution with better character translation], Unidecoder [Unicode to
|
22
|
+
description: "Some [hopefully] useful extensions to Ruby's String class. Stringex is made up of three libraries: ActsAsUrl [permalink solution with better character translation], Unidecoder [Unicode to ASCII transliteration], and StringExtensions [miscellaneous helper methods for the String class]."
|
23
23
|
email: rsl@luckysneaks.com
|
24
24
|
executables: []
|
25
25
|
|
@@ -33,189 +33,6 @@ files:
|
|
33
33
|
- README.rdoc
|
34
34
|
- Rakefile
|
35
35
|
- init.rb
|
36
|
-
- lib/lucky_sneaks/acts_as_url.rb
|
37
|
-
- lib/lucky_sneaks/string_extensions.rb
|
38
|
-
- lib/lucky_sneaks/unidecoder.rb
|
39
|
-
- lib/lucky_sneaks/unidecoder_data/x00.yml
|
40
|
-
- lib/lucky_sneaks/unidecoder_data/x01.yml
|
41
|
-
- lib/lucky_sneaks/unidecoder_data/x02.yml
|
42
|
-
- lib/lucky_sneaks/unidecoder_data/x03.yml
|
43
|
-
- lib/lucky_sneaks/unidecoder_data/x04.yml
|
44
|
-
- lib/lucky_sneaks/unidecoder_data/x05.yml
|
45
|
-
- lib/lucky_sneaks/unidecoder_data/x06.yml
|
46
|
-
- lib/lucky_sneaks/unidecoder_data/x07.yml
|
47
|
-
- lib/lucky_sneaks/unidecoder_data/x09.yml
|
48
|
-
- lib/lucky_sneaks/unidecoder_data/x0a.yml
|
49
|
-
- lib/lucky_sneaks/unidecoder_data/x0b.yml
|
50
|
-
- lib/lucky_sneaks/unidecoder_data/x0c.yml
|
51
|
-
- lib/lucky_sneaks/unidecoder_data/x0d.yml
|
52
|
-
- lib/lucky_sneaks/unidecoder_data/x0e.yml
|
53
|
-
- lib/lucky_sneaks/unidecoder_data/x0f.yml
|
54
|
-
- lib/lucky_sneaks/unidecoder_data/x10.yml
|
55
|
-
- lib/lucky_sneaks/unidecoder_data/x11.yml
|
56
|
-
- lib/lucky_sneaks/unidecoder_data/x12.yml
|
57
|
-
- lib/lucky_sneaks/unidecoder_data/x13.yml
|
58
|
-
- lib/lucky_sneaks/unidecoder_data/x14.yml
|
59
|
-
- lib/lucky_sneaks/unidecoder_data/x15.yml
|
60
|
-
- lib/lucky_sneaks/unidecoder_data/x16.yml
|
61
|
-
- lib/lucky_sneaks/unidecoder_data/x17.yml
|
62
|
-
- lib/lucky_sneaks/unidecoder_data/x18.yml
|
63
|
-
- lib/lucky_sneaks/unidecoder_data/x1e.yml
|
64
|
-
- lib/lucky_sneaks/unidecoder_data/x1f.yml
|
65
|
-
- lib/lucky_sneaks/unidecoder_data/x20.yml
|
66
|
-
- lib/lucky_sneaks/unidecoder_data/x21.yml
|
67
|
-
- lib/lucky_sneaks/unidecoder_data/x22.yml
|
68
|
-
- lib/lucky_sneaks/unidecoder_data/x23.yml
|
69
|
-
- lib/lucky_sneaks/unidecoder_data/x24.yml
|
70
|
-
- lib/lucky_sneaks/unidecoder_data/x25.yml
|
71
|
-
- lib/lucky_sneaks/unidecoder_data/x26.yml
|
72
|
-
- lib/lucky_sneaks/unidecoder_data/x27.yml
|
73
|
-
- lib/lucky_sneaks/unidecoder_data/x28.yml
|
74
|
-
- lib/lucky_sneaks/unidecoder_data/x2e.yml
|
75
|
-
- lib/lucky_sneaks/unidecoder_data/x2f.yml
|
76
|
-
- lib/lucky_sneaks/unidecoder_data/x30.yml
|
77
|
-
- lib/lucky_sneaks/unidecoder_data/x31.yml
|
78
|
-
- lib/lucky_sneaks/unidecoder_data/x32.yml
|
79
|
-
- lib/lucky_sneaks/unidecoder_data/x33.yml
|
80
|
-
- lib/lucky_sneaks/unidecoder_data/x4d.yml
|
81
|
-
- lib/lucky_sneaks/unidecoder_data/x4e.yml
|
82
|
-
- lib/lucky_sneaks/unidecoder_data/x4f.yml
|
83
|
-
- lib/lucky_sneaks/unidecoder_data/x50.yml
|
84
|
-
- lib/lucky_sneaks/unidecoder_data/x51.yml
|
85
|
-
- lib/lucky_sneaks/unidecoder_data/x52.yml
|
86
|
-
- lib/lucky_sneaks/unidecoder_data/x53.yml
|
87
|
-
- lib/lucky_sneaks/unidecoder_data/x54.yml
|
88
|
-
- lib/lucky_sneaks/unidecoder_data/x55.yml
|
89
|
-
- lib/lucky_sneaks/unidecoder_data/x56.yml
|
90
|
-
- lib/lucky_sneaks/unidecoder_data/x57.yml
|
91
|
-
- lib/lucky_sneaks/unidecoder_data/x58.yml
|
92
|
-
- lib/lucky_sneaks/unidecoder_data/x59.yml
|
93
|
-
- lib/lucky_sneaks/unidecoder_data/x5a.yml
|
94
|
-
- lib/lucky_sneaks/unidecoder_data/x5b.yml
|
95
|
-
- lib/lucky_sneaks/unidecoder_data/x5c.yml
|
96
|
-
- lib/lucky_sneaks/unidecoder_data/x5d.yml
|
97
|
-
- lib/lucky_sneaks/unidecoder_data/x5e.yml
|
98
|
-
- lib/lucky_sneaks/unidecoder_data/x5f.yml
|
99
|
-
- lib/lucky_sneaks/unidecoder_data/x60.yml
|
100
|
-
- lib/lucky_sneaks/unidecoder_data/x61.yml
|
101
|
-
- lib/lucky_sneaks/unidecoder_data/x62.yml
|
102
|
-
- lib/lucky_sneaks/unidecoder_data/x63.yml
|
103
|
-
- lib/lucky_sneaks/unidecoder_data/x64.yml
|
104
|
-
- lib/lucky_sneaks/unidecoder_data/x65.yml
|
105
|
-
- lib/lucky_sneaks/unidecoder_data/x66.yml
|
106
|
-
- lib/lucky_sneaks/unidecoder_data/x67.yml
|
107
|
-
- lib/lucky_sneaks/unidecoder_data/x68.yml
|
108
|
-
- lib/lucky_sneaks/unidecoder_data/x69.yml
|
109
|
-
- lib/lucky_sneaks/unidecoder_data/x6a.yml
|
110
|
-
- lib/lucky_sneaks/unidecoder_data/x6b.yml
|
111
|
-
- lib/lucky_sneaks/unidecoder_data/x6c.yml
|
112
|
-
- lib/lucky_sneaks/unidecoder_data/x6d.yml
|
113
|
-
- lib/lucky_sneaks/unidecoder_data/x6e.yml
|
114
|
-
- lib/lucky_sneaks/unidecoder_data/x6f.yml
|
115
|
-
- lib/lucky_sneaks/unidecoder_data/x70.yml
|
116
|
-
- lib/lucky_sneaks/unidecoder_data/x71.yml
|
117
|
-
- lib/lucky_sneaks/unidecoder_data/x72.yml
|
118
|
-
- lib/lucky_sneaks/unidecoder_data/x73.yml
|
119
|
-
- lib/lucky_sneaks/unidecoder_data/x74.yml
|
120
|
-
- lib/lucky_sneaks/unidecoder_data/x75.yml
|
121
|
-
- lib/lucky_sneaks/unidecoder_data/x76.yml
|
122
|
-
- lib/lucky_sneaks/unidecoder_data/x77.yml
|
123
|
-
- lib/lucky_sneaks/unidecoder_data/x78.yml
|
124
|
-
- lib/lucky_sneaks/unidecoder_data/x79.yml
|
125
|
-
- lib/lucky_sneaks/unidecoder_data/x7a.yml
|
126
|
-
- lib/lucky_sneaks/unidecoder_data/x7b.yml
|
127
|
-
- lib/lucky_sneaks/unidecoder_data/x7c.yml
|
128
|
-
- lib/lucky_sneaks/unidecoder_data/x7d.yml
|
129
|
-
- lib/lucky_sneaks/unidecoder_data/x7e.yml
|
130
|
-
- lib/lucky_sneaks/unidecoder_data/x7f.yml
|
131
|
-
- lib/lucky_sneaks/unidecoder_data/x80.yml
|
132
|
-
- lib/lucky_sneaks/unidecoder_data/x81.yml
|
133
|
-
- lib/lucky_sneaks/unidecoder_data/x82.yml
|
134
|
-
- lib/lucky_sneaks/unidecoder_data/x83.yml
|
135
|
-
- lib/lucky_sneaks/unidecoder_data/x84.yml
|
136
|
-
- lib/lucky_sneaks/unidecoder_data/x85.yml
|
137
|
-
- lib/lucky_sneaks/unidecoder_data/x86.yml
|
138
|
-
- lib/lucky_sneaks/unidecoder_data/x87.yml
|
139
|
-
- lib/lucky_sneaks/unidecoder_data/x88.yml
|
140
|
-
- lib/lucky_sneaks/unidecoder_data/x89.yml
|
141
|
-
- lib/lucky_sneaks/unidecoder_data/x8a.yml
|
142
|
-
- lib/lucky_sneaks/unidecoder_data/x8b.yml
|
143
|
-
- lib/lucky_sneaks/unidecoder_data/x8c.yml
|
144
|
-
- lib/lucky_sneaks/unidecoder_data/x8d.yml
|
145
|
-
- lib/lucky_sneaks/unidecoder_data/x8e.yml
|
146
|
-
- lib/lucky_sneaks/unidecoder_data/x8f.yml
|
147
|
-
- lib/lucky_sneaks/unidecoder_data/x90.yml
|
148
|
-
- lib/lucky_sneaks/unidecoder_data/x91.yml
|
149
|
-
- lib/lucky_sneaks/unidecoder_data/x92.yml
|
150
|
-
- lib/lucky_sneaks/unidecoder_data/x93.yml
|
151
|
-
- lib/lucky_sneaks/unidecoder_data/x94.yml
|
152
|
-
- lib/lucky_sneaks/unidecoder_data/x95.yml
|
153
|
-
- lib/lucky_sneaks/unidecoder_data/x96.yml
|
154
|
-
- lib/lucky_sneaks/unidecoder_data/x97.yml
|
155
|
-
- lib/lucky_sneaks/unidecoder_data/x98.yml
|
156
|
-
- lib/lucky_sneaks/unidecoder_data/x99.yml
|
157
|
-
- lib/lucky_sneaks/unidecoder_data/x9a.yml
|
158
|
-
- lib/lucky_sneaks/unidecoder_data/x9b.yml
|
159
|
-
- lib/lucky_sneaks/unidecoder_data/x9c.yml
|
160
|
-
- lib/lucky_sneaks/unidecoder_data/x9d.yml
|
161
|
-
- lib/lucky_sneaks/unidecoder_data/x9e.yml
|
162
|
-
- lib/lucky_sneaks/unidecoder_data/x9f.yml
|
163
|
-
- lib/lucky_sneaks/unidecoder_data/xa0.yml
|
164
|
-
- lib/lucky_sneaks/unidecoder_data/xa1.yml
|
165
|
-
- lib/lucky_sneaks/unidecoder_data/xa2.yml
|
166
|
-
- lib/lucky_sneaks/unidecoder_data/xa3.yml
|
167
|
-
- lib/lucky_sneaks/unidecoder_data/xa4.yml
|
168
|
-
- lib/lucky_sneaks/unidecoder_data/xac.yml
|
169
|
-
- lib/lucky_sneaks/unidecoder_data/xad.yml
|
170
|
-
- lib/lucky_sneaks/unidecoder_data/xae.yml
|
171
|
-
- lib/lucky_sneaks/unidecoder_data/xaf.yml
|
172
|
-
- lib/lucky_sneaks/unidecoder_data/xb0.yml
|
173
|
-
- lib/lucky_sneaks/unidecoder_data/xb1.yml
|
174
|
-
- lib/lucky_sneaks/unidecoder_data/xb2.yml
|
175
|
-
- lib/lucky_sneaks/unidecoder_data/xb3.yml
|
176
|
-
- lib/lucky_sneaks/unidecoder_data/xb4.yml
|
177
|
-
- lib/lucky_sneaks/unidecoder_data/xb5.yml
|
178
|
-
- lib/lucky_sneaks/unidecoder_data/xb6.yml
|
179
|
-
- lib/lucky_sneaks/unidecoder_data/xb7.yml
|
180
|
-
- lib/lucky_sneaks/unidecoder_data/xb8.yml
|
181
|
-
- lib/lucky_sneaks/unidecoder_data/xb9.yml
|
182
|
-
- lib/lucky_sneaks/unidecoder_data/xba.yml
|
183
|
-
- lib/lucky_sneaks/unidecoder_data/xbb.yml
|
184
|
-
- lib/lucky_sneaks/unidecoder_data/xbc.yml
|
185
|
-
- lib/lucky_sneaks/unidecoder_data/xbd.yml
|
186
|
-
- lib/lucky_sneaks/unidecoder_data/xbe.yml
|
187
|
-
- lib/lucky_sneaks/unidecoder_data/xbf.yml
|
188
|
-
- lib/lucky_sneaks/unidecoder_data/xc0.yml
|
189
|
-
- lib/lucky_sneaks/unidecoder_data/xc1.yml
|
190
|
-
- lib/lucky_sneaks/unidecoder_data/xc2.yml
|
191
|
-
- lib/lucky_sneaks/unidecoder_data/xc3.yml
|
192
|
-
- lib/lucky_sneaks/unidecoder_data/xc4.yml
|
193
|
-
- lib/lucky_sneaks/unidecoder_data/xc5.yml
|
194
|
-
- lib/lucky_sneaks/unidecoder_data/xc6.yml
|
195
|
-
- lib/lucky_sneaks/unidecoder_data/xc7.yml
|
196
|
-
- lib/lucky_sneaks/unidecoder_data/xc8.yml
|
197
|
-
- lib/lucky_sneaks/unidecoder_data/xc9.yml
|
198
|
-
- lib/lucky_sneaks/unidecoder_data/xca.yml
|
199
|
-
- lib/lucky_sneaks/unidecoder_data/xcb.yml
|
200
|
-
- lib/lucky_sneaks/unidecoder_data/xcc.yml
|
201
|
-
- lib/lucky_sneaks/unidecoder_data/xcd.yml
|
202
|
-
- lib/lucky_sneaks/unidecoder_data/xce.yml
|
203
|
-
- lib/lucky_sneaks/unidecoder_data/xcf.yml
|
204
|
-
- lib/lucky_sneaks/unidecoder_data/xd0.yml
|
205
|
-
- lib/lucky_sneaks/unidecoder_data/xd1.yml
|
206
|
-
- lib/lucky_sneaks/unidecoder_data/xd2.yml
|
207
|
-
- lib/lucky_sneaks/unidecoder_data/xd3.yml
|
208
|
-
- lib/lucky_sneaks/unidecoder_data/xd4.yml
|
209
|
-
- lib/lucky_sneaks/unidecoder_data/xd5.yml
|
210
|
-
- lib/lucky_sneaks/unidecoder_data/xd6.yml
|
211
|
-
- lib/lucky_sneaks/unidecoder_data/xd7.yml
|
212
|
-
- lib/lucky_sneaks/unidecoder_data/xf9.yml
|
213
|
-
- lib/lucky_sneaks/unidecoder_data/xfa.yml
|
214
|
-
- lib/lucky_sneaks/unidecoder_data/xfb.yml
|
215
|
-
- lib/lucky_sneaks/unidecoder_data/xfc.yml
|
216
|
-
- lib/lucky_sneaks/unidecoder_data/xfd.yml
|
217
|
-
- lib/lucky_sneaks/unidecoder_data/xfe.yml
|
218
|
-
- lib/lucky_sneaks/unidecoder_data/xff.yml
|
219
36
|
- lib/stringex.rb
|
220
37
|
- stringex.gemspec
|
221
38
|
- test/acts_as_url_test.rb
|