smartname 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (5) hide show
  1. data/VERSION +1 -1
  2. data/cardname.rb +258 -0
  3. data/lib/smart_name.rb +2 -2
  4. data/orig_cardname.rb +258 -0
  5. metadata +18 -46
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.4
1
+ 0.1.5
data/cardname.rb ADDED
@@ -0,0 +1,258 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module Wagn
3
+ class SmartName < Object
4
+ require 'htmlentities'
5
+
6
+ JOINT = '+'
7
+ JOINT_RE = Regexp.escape JOINT
8
+ BANNED_ARRAY = [ '/', '~', '|' ]
9
+ BANNED_RE = /#{ (['['] + BANNED_ARRAY << JOINT )*'\\' }]/
10
+
11
+ RUBY19 = RUBY_VERSION =~ /^1\.9/
12
+ OK4KEY_RE = RUBY19 ? '\p{Word}\*' : '\w\*'
13
+
14
+ @@name2nameobject = {}
15
+
16
+ class << self
17
+ def new obj
18
+ return obj if SmartName===obj
19
+ str = Array===obj ? obj*SmartName.joint : obj.to_s
20
+ if known_name = @@name2nameobject[str]
21
+ known_name
22
+ else
23
+ super str.strip
24
+ end
25
+ end
26
+
27
+ def unescape uri
28
+ # can't instantiate because key doesn't resolve correctly in unescaped form
29
+ # issue is peculiar to plus sign (+), which are interpreted as a space.
30
+ # if we could make that not happen, we could avoid this (and handle spaces in urls)
31
+ uri.gsub(' ','+').gsub '_',' '
32
+ end
33
+ end
34
+
35
+
36
+ #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37
+ #~~~~~~~~~~~~~~~~~~~~~~ INSTANCE ~~~~~~~~~~~~~~~~~~~~~~~~~
38
+
39
+ attr_reader :simple, :parts, :key, :s
40
+ alias to_s s
41
+
42
+ def initialize str
43
+ @s = str.to_s.strip
44
+ @s = @s.encode('UTF-8') if RUBY19
45
+ @key = if @s.index(SmartName.joint)
46
+ @parts = @s.split(/\s*#{SmartName.joint}\s*/)
47
+ @parts << '' if @s.last == SmartName.joint
48
+ @simple = false
49
+ @parts.map { |p| p.to_name.key } * SmartName.joint
50
+ else
51
+ @parts = [str]
52
+ @simple = true
53
+ str.blank? ? '' : simple_key
54
+ end
55
+ @@name2nameobject[str] = self
56
+ end
57
+
58
+ def to_name() self end
59
+ def valid?() not parts.find { |pt| pt.match BANNED_RE } end
60
+ def size() parts.size end # size of name = number of parts?? not intuitive. maybe depth? psize?
61
+ def blank?() s.blank? end
62
+ alias empty? blank?
63
+
64
+ def inspect
65
+ "<SmartName key=#{key}[#{self}]>"
66
+ end
67
+
68
+ def == obj
69
+ object_key = case
70
+ when obj.respond_to?(:key) ; obj.key
71
+ when obj.respond_to?(:to_name) ; obj.to_name.key
72
+ else ; obj.to_s
73
+ end
74
+ object_key == key
75
+ end
76
+
77
+
78
+ #~~~~~~~~~~~~~~~~~~~ VARIANTS ~~~~~~~~~~~~~~~~~~~
79
+
80
+ def simple_key
81
+ decoded.underscore.gsub(/[^#{OK4KEY_RE}]+/,'_').split(/_+/).reject(&:blank?).map(&:singularize)*'_'
82
+ end
83
+
84
+ def url_key
85
+ @url_key ||= decoded.gsub(/[^#{OK4KEY_RE}#{JOINT_RE}]+/,' ').strip.gsub /[\s\_]+/, '_'
86
+ end
87
+
88
+ def safe_key
89
+ @safe_key ||= key.gsub('*','X').gsub SmartName.joint, '-'
90
+ end
91
+
92
+ def decoded
93
+ @decoded ||= (s.index('&') ? HTMLEntities.new.decode(s) : s)
94
+ end
95
+
96
+ def pre_cgi
97
+ #why is this necessary?? doesn't real CGI escaping handle this??
98
+ # hmmm. is this to prevent absolutizing
99
+ @pre_cgi ||= parts.join '~plus~'
100
+ end
101
+
102
+ def post_cgi
103
+ #hmm. this could resolve to the key of some other card. move to class method?
104
+ @post_cgi ||= s.gsub '~plus~', SmartName.joint
105
+ end
106
+
107
+ #~~~~~~~~~~~~~~~~~~~ PARTS ~~~~~~~~~~~~~~~~~~~
108
+
109
+ alias simple? simple
110
+ def junction?() not simple? end
111
+
112
+ def left() @left ||= simple? ? nil : parts[0..-2]*SmartName.joint end
113
+ def right() @right ||= simple? ? nil : parts[-1] end
114
+
115
+ def left_name() @left_name ||= left && self.class.new( left ) end
116
+ def right_name() @right_name ||= right && self.class.new( right ) end
117
+
118
+ # Note that all names have a trunk and tag, but only junctions have left and right
119
+
120
+ def trunk() @trunk ||= simple? ? s : left end
121
+ def tag() @tag ||= simple? ? s : right end
122
+
123
+ def trunk_name() @trunk_name ||= simple? ? self : left_name end
124
+ def tag_name() @tag_name ||= simple? ? self : right_name end
125
+
126
+ def pieces
127
+ @pieces ||= if simple?
128
+ [ self ]
129
+ else
130
+ trunk_name.pieces + [ tag_name ]
131
+ end
132
+ end
133
+
134
+
135
+ #~~~~~~~~~~~~~~~~~~~ TRAITS / STARS ~~~~~~~~~~~~~~~~~~~
136
+
137
+ # note that [0] breaks in ruby 1.8.x but [0,1] doesn't
138
+ def star?() simple? and '*' == s[0,1] end
139
+ def rstar?() right and '*' == right[0,1] end
140
+
141
+ def trait_name? *traitlist
142
+ junction? && begin
143
+ right_key = right_name.key
144
+ !!traitlist.find do |codename|
145
+ Card[ codename ].cardname.key == right_key
146
+ end
147
+ end
148
+ end
149
+
150
+ def trait_name tag_code
151
+ [ self, Card[ tag_code ].name ].to_name
152
+ end
153
+
154
+ def trait tag_code
155
+ trait_name( tag_code ).s
156
+ end
157
+
158
+
159
+
160
+ #~~~~~~~~~~~~~~~~~~~~ SHOW / ABSOLUTE ~~~~~~~~~~~~~~~~~~~~
161
+
162
+ def to_show context, args={}
163
+ # ignore = [ args[:ignore], context.to_name.parts ].flatten.compact.map &:to_name
164
+ ignore = [ args[:ignore] ].flatten.map &:to_name
165
+ fullname = parts.to_name.to_absolute_name context, args
166
+
167
+ show_parts = fullname.parts.map do |part|
168
+ reject = ( part.blank? or part =~ /^_/ or ignore.member? part.to_name )
169
+ reject ? nil : part
170
+ end
171
+
172
+ show_name = show_parts.compact.to_name.s
173
+
174
+ case
175
+ when show_parts.compact.empty?; fullname
176
+ when show_parts[0].nil? ; SmartName.joint + show_name
177
+ else show_name
178
+ end
179
+ end
180
+
181
+
182
+ def to_absolute context, args={}
183
+ context = context.to_name
184
+ parts.map do |part|
185
+ new_part = case part
186
+ when /^_user$/i; (user=Session.user_card) ? user.name : part
187
+ when /^_main$/i; Wagn::Conf[:main_name]
188
+ when /^(_self|_whole|_)$/i; context.s
189
+ when /^_left$/i; context.trunk #note - inconsistent use of left v. trunk
190
+ when /^_right$/i; context.tag
191
+ when /^_(\d+)$/i
192
+ pos = $~[1].to_i
193
+ pos = context.size if pos > context.size
194
+ context.parts[pos-1]
195
+ when /^_(L*)(R?)$/i
196
+ l_s, r_s = $~[1].size, !$~[2].blank?
197
+ l_part = context.nth_left l_s
198
+ r_s ? l_part.tag : l_part.s
199
+ when /^_/
200
+ custom = args[:params] ? args[:params][part] : nil
201
+ custom ? CGI.escapeHTML(custom) : part #why are we escaping HTML here?
202
+ else
203
+ part
204
+ end.to_s.strip
205
+ new_part.blank? ? context.to_s : new_part
206
+ end * SmartName.joint
207
+ end
208
+
209
+ def to_absolute_name *args
210
+ self.class.new to_absolute(*args)
211
+ end
212
+
213
+ def nth_left n
214
+ # 1 = left; 2= left of left; 3 = left of left of left....
215
+ ( n >= size ? parts[0] : parts[0..-n-1] ).to_name
216
+ end
217
+
218
+
219
+ #~~~~~~~~~~~~~~~~~~~~ MISC ~~~~~~~~~~~~~~~~~~~~
220
+
221
+ def replace_part oldpart, newpart
222
+ oldpart = oldpart.to_name
223
+ newpart = newpart.to_name
224
+ if oldpart.simple?
225
+ if simple?
226
+ self == oldpart ? newpart : self
227
+ else
228
+ parts.map do |p|
229
+ oldpart == p ? newpart.to_s : p
230
+ end.to_name
231
+ end
232
+ elsif simple?
233
+ self
234
+ else
235
+ if oldpart == parts[0, oldpart.size]
236
+ if self.size == oldpart.size
237
+ newpart
238
+ else
239
+ (newpart.parts+(parts[oldpart.size,].lines.to_a)).to_name
240
+ end
241
+ else
242
+ self
243
+ end
244
+ end
245
+ end
246
+
247
+ def self.substitute! str, hash
248
+ # HACK. This doesn't belong here.
249
+ # shouldn't thus use inclusions???
250
+ hash.keys.each do |var|
251
+ str.gsub!(/\{(#{var})\}/) {|x| hash[var.to_sym]}
252
+ end
253
+ str
254
+ end
255
+
256
+ end
257
+ end
258
+
data/lib/smart_name.rb CHANGED
@@ -17,7 +17,7 @@ class SmartName < Object
17
17
  include ActiveSupport::Configurable
18
18
 
19
19
  config_accessor :joint, :formal_joint, :name_attribute, :banned_array,
20
- :var_re, :uninflect, :params, :codes, :lookup
20
+ :var_re, :uninflect, :params, :codes, :lookup, :session
21
21
 
22
22
  # Wagny defaults:
23
23
  SmartName.joint = '+'
@@ -217,7 +217,7 @@ class SmartName < Object
217
217
  context = context.to_name
218
218
  parts.map do |part|
219
219
  new_part = case part
220
- when /^_user$/i; (user=Session.user_card) ? user.name : part
220
+ when /^_user$/i; name_proc = SmartName.session and name_proc.call or part
221
221
  when /^_main$/i; SmartName.params[:main_name]
222
222
  when /^(_self|_whole|_)$/i; context.s
223
223
  when /^_left$/i; context.trunk #note - inconsistent use of left v. trunk
data/orig_cardname.rb ADDED
@@ -0,0 +1,258 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module Wagn
3
+ class Cardname < Object
4
+ require 'htmlentities'
5
+
6
+ JOINT = '+'
7
+ JOINT_RE = Regexp.escape JOINT
8
+ BANNED_ARRAY = [ '/', '~', '|' ]
9
+ BANNED_RE = /#{ (['['] + BANNED_ARRAY << JOINT )*'\\' }]/
10
+
11
+ RUBY19 = RUBY_VERSION =~ /^1\.9/
12
+ OK4KEY_RE = RUBY19 ? '\p{Word}\*' : '\w\*'
13
+
14
+ @@name2cardname = {}
15
+
16
+ class << self
17
+ def new obj
18
+ return obj if Cardname===obj
19
+ str = Array===obj ? obj*JOINT : obj.to_s
20
+ if known_name = @@name2cardname[str]
21
+ known_name
22
+ else
23
+ super str.strip
24
+ end
25
+ end
26
+
27
+ def unescape uri
28
+ # can't instantiate because key doesn't resolve correctly in unescaped form
29
+ # issue is peculiar to plus sign (+), which are interpreted as a space.
30
+ # if we could make that not happen, we could avoid this (and handle spaces in urls)
31
+ uri.gsub(' ','+').gsub '_',' '
32
+ end
33
+ end
34
+
35
+
36
+ #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37
+ #~~~~~~~~~~~~~~~~~~~~~~ INSTANCE ~~~~~~~~~~~~~~~~~~~~~~~~~
38
+
39
+ attr_reader :simple, :parts, :key, :s
40
+ alias to_s s
41
+
42
+ def initialize str
43
+ @s = str.to_s.strip
44
+ @s = @s.encode('UTF-8') if RUBY19
45
+ @key = if @s.index(JOINT)
46
+ @parts = @s.split(/\s*#{JOINT_RE}\s*/)
47
+ @parts << '' if @s.last == JOINT
48
+ @simple = false
49
+ @parts.map { |p| p.to_cardname.key } * JOINT
50
+ else
51
+ @parts = [str]
52
+ @simple = true
53
+ str.blank? ? '' : simple_key
54
+ end
55
+ @@name2cardname[str] = self
56
+ end
57
+
58
+ def to_cardname() self end
59
+ def valid?() not parts.find { |pt| pt.match BANNED_RE } end
60
+ def size() parts.size end # size of name = number of parts?? not intuitive. maybe depth? psize?
61
+ def blank?() s.blank? end
62
+ alias empty? blank?
63
+
64
+ def inspect
65
+ "<CardName key=#{key}[#{self}]>"
66
+ end
67
+
68
+ def == obj
69
+ object_key = case
70
+ when obj.respond_to?(:key) ; obj.key
71
+ when obj.respond_to?(:to_cardname) ; obj.to_cardname.key
72
+ else ; obj.to_s
73
+ end
74
+ object_key == key
75
+ end
76
+
77
+
78
+ #~~~~~~~~~~~~~~~~~~~ VARIANTS ~~~~~~~~~~~~~~~~~~~
79
+
80
+ def simple_key
81
+ decoded.underscore.gsub(/[^#{OK4KEY_RE}]+/,'_').split(/_+/).reject(&:blank?).map(&:singularize)*'_'
82
+ end
83
+
84
+ def url_key
85
+ @url_key ||= decoded.gsub(/[^#{OK4KEY_RE}#{JOINT_RE}]+/,' ').strip.gsub /[\s\_]+/, '_'
86
+ end
87
+
88
+ def safe_key
89
+ @safe_key ||= key.gsub('*','X').gsub JOINT, '-'
90
+ end
91
+
92
+ def decoded
93
+ @decoded ||= (s.index('&') ? HTMLEntities.new.decode(s) : s)
94
+ end
95
+
96
+ def pre_cgi
97
+ #why is this necessary?? doesn't real CGI escaping handle this??
98
+ # hmmm. is this to prevent absolutizing
99
+ @pre_cgi ||= parts.join '~plus~'
100
+ end
101
+
102
+ def post_cgi
103
+ #hmm. this could resolve to the key of some other card. move to class method?
104
+ @post_cgi ||= s.gsub '~plus~', JOINT
105
+ end
106
+
107
+ #~~~~~~~~~~~~~~~~~~~ PARTS ~~~~~~~~~~~~~~~~~~~
108
+
109
+ alias simple? simple
110
+ def junction?() not simple? end
111
+
112
+ def left() @left ||= simple? ? nil : parts[0..-2]*JOINT end
113
+ def right() @right ||= simple? ? nil : parts[-1] end
114
+
115
+ def left_name() @left_name ||= left && self.class.new( left ) end
116
+ def right_name() @right_name ||= right && self.class.new( right ) end
117
+
118
+ # Note that all names have a trunk and tag, but only junctions have left and right
119
+
120
+ def trunk() @trunk ||= simple? ? s : left end
121
+ def tag() @tag ||= simple? ? s : right end
122
+
123
+ def trunk_name() @trunk_name ||= simple? ? self : left_name end
124
+ def tag_name() @tag_name ||= simple? ? self : right_name end
125
+
126
+ def pieces
127
+ @pieces ||= if simple?
128
+ [ self ]
129
+ else
130
+ trunk_name.pieces + [ tag_name ]
131
+ end
132
+ end
133
+
134
+
135
+ #~~~~~~~~~~~~~~~~~~~ TRAITS / STARS ~~~~~~~~~~~~~~~~~~~
136
+
137
+ # note that [0] breaks in ruby 1.8.x but [0,1] doesn't
138
+ def star?() simple? and '*' == s[0,1] end
139
+ def rstar?() right and '*' == right[0,1] end
140
+
141
+ def trait_name? *traitlist
142
+ junction? && begin
143
+ right_key = right_name.key
144
+ !!traitlist.find do |codename|
145
+ Card[ codename ].cardname.key == right_key
146
+ end
147
+ end
148
+ end
149
+
150
+ def trait_name tag_code
151
+ [ self, Card[ tag_code ].name ].to_cardname
152
+ end
153
+
154
+ def trait tag_code
155
+ trait_name( tag_code ).s
156
+ end
157
+
158
+
159
+
160
+ #~~~~~~~~~~~~~~~~~~~~ SHOW / ABSOLUTE ~~~~~~~~~~~~~~~~~~~~
161
+
162
+ def to_show context, args={}
163
+ # ignore = [ args[:ignore], context.to_cardname.parts ].flatten.compact.map &:to_cardname
164
+ ignore = [ args[:ignore] ].flatten.map &:to_cardname
165
+ fullname = parts.to_cardname.to_absolute_name context, args
166
+
167
+ show_parts = fullname.parts.map do |part|
168
+ reject = ( part.blank? or part =~ /^_/ or ignore.member? part.to_cardname )
169
+ reject ? nil : part
170
+ end
171
+
172
+ show_name = show_parts.compact.to_cardname.s
173
+
174
+ case
175
+ when show_parts.compact.empty?; fullname
176
+ when show_parts[0].nil? ; JOINT + show_name
177
+ else show_name
178
+ end
179
+ end
180
+
181
+
182
+ def to_absolute context, args={}
183
+ context = context.to_cardname
184
+ parts.map do |part|
185
+ new_part = case part
186
+ when /^_user$/i; (user=Session.user_card) ? user.name : part
187
+ when /^_main$/i; Wagn::Conf[:main_name]
188
+ when /^(_self|_whole|_)$/i; context.s
189
+ when /^_left$/i; context.trunk #note - inconsistent use of left v. trunk
190
+ when /^_right$/i; context.tag
191
+ when /^_(\d+)$/i
192
+ pos = $~[1].to_i
193
+ pos = context.size if pos > context.size
194
+ context.parts[pos-1]
195
+ when /^_(L*)(R?)$/i
196
+ l_s, r_s = $~[1].size, !$~[2].blank?
197
+ l_part = context.nth_left l_s
198
+ r_s ? l_part.tag : l_part.s
199
+ when /^_/
200
+ custom = args[:params] ? args[:params][part] : nil
201
+ custom ? CGI.escapeHTML(custom) : part #why are we escaping HTML here?
202
+ else
203
+ part
204
+ end.to_s.strip
205
+ new_part.blank? ? context.to_s : new_part
206
+ end * JOINT
207
+ end
208
+
209
+ def to_absolute_name *args
210
+ self.class.new to_absolute(*args)
211
+ end
212
+
213
+ def nth_left n
214
+ # 1 = left; 2= left of left; 3 = left of left of left....
215
+ ( n >= size ? parts[0] : parts[0..-n-1] ).to_cardname
216
+ end
217
+
218
+
219
+ #~~~~~~~~~~~~~~~~~~~~ MISC ~~~~~~~~~~~~~~~~~~~~
220
+
221
+ def replace_part oldpart, newpart
222
+ oldpart = oldpart.to_cardname
223
+ newpart = newpart.to_cardname
224
+ if oldpart.simple?
225
+ if simple?
226
+ self == oldpart ? newpart : self
227
+ else
228
+ parts.map do |p|
229
+ oldpart == p ? newpart.to_s : p
230
+ end.to_cardname
231
+ end
232
+ elsif simple?
233
+ self
234
+ else
235
+ if oldpart == parts[0, oldpart.size]
236
+ if self.size == oldpart.size
237
+ newpart
238
+ else
239
+ (newpart.parts+(parts[oldpart.size,].lines.to_a)).to_cardname
240
+ end
241
+ else
242
+ self
243
+ end
244
+ end
245
+ end
246
+
247
+ def self.substitute! str, hash
248
+ # HACK. This doesn't belong here.
249
+ # shouldn't thus use inclusions???
250
+ hash.keys.each do |var|
251
+ str.gsub!(/\{(#{var})\}/) {|x| hash[var.to_sym]}
252
+ end
253
+ str
254
+ end
255
+
256
+ end
257
+ end
258
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smartname
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-11-22 00:00:00.000000000 Z
13
+ date: 2012-12-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
17
- requirement: !ruby/object:Gem::Requirement
17
+ requirement: &10167240 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,15 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
- requirements:
28
- - - ! '>='
29
- - !ruby/object:Gem::Version
30
- version: '0'
25
+ version_requirements: *10167240
31
26
  - !ruby/object:Gem::Dependency
32
27
  name: htmlentities
33
- requirement: !ruby/object:Gem::Requirement
28
+ requirement: &10166260 !ruby/object:Gem::Requirement
34
29
  none: false
35
30
  requirements:
36
31
  - - ~>
@@ -38,15 +33,10 @@ dependencies:
38
33
  version: 4.3.0
39
34
  type: :runtime
40
35
  prerelease: false
41
- version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ~>
45
- - !ruby/object:Gem::Version
46
- version: 4.3.0
36
+ version_requirements: *10166260
47
37
  - !ruby/object:Gem::Dependency
48
38
  name: rspec
49
- requirement: !ruby/object:Gem::Requirement
39
+ requirement: &10165120 !ruby/object:Gem::Requirement
50
40
  none: false
51
41
  requirements:
52
42
  - - ~>
@@ -54,15 +44,10 @@ dependencies:
54
44
  version: 2.8.0
55
45
  type: :development
56
46
  prerelease: false
57
- version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
- requirements:
60
- - - ~>
61
- - !ruby/object:Gem::Version
62
- version: 2.8.0
47
+ version_requirements: *10165120
63
48
  - !ruby/object:Gem::Dependency
64
49
  name: rdoc
65
- requirement: !ruby/object:Gem::Requirement
50
+ requirement: &10164400 !ruby/object:Gem::Requirement
66
51
  none: false
67
52
  requirements:
68
53
  - - ~>
@@ -70,15 +55,10 @@ dependencies:
70
55
  version: '3.12'
71
56
  type: :development
72
57
  prerelease: false
73
- version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
- requirements:
76
- - - ~>
77
- - !ruby/object:Gem::Version
78
- version: '3.12'
58
+ version_requirements: *10164400
79
59
  - !ruby/object:Gem::Dependency
80
60
  name: bundler
81
- requirement: !ruby/object:Gem::Requirement
61
+ requirement: &10163380 !ruby/object:Gem::Requirement
82
62
  none: false
83
63
  requirements:
84
64
  - - ~>
@@ -86,15 +66,10 @@ dependencies:
86
66
  version: '1.1'
87
67
  type: :development
88
68
  prerelease: false
89
- version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
- requirements:
92
- - - ~>
93
- - !ruby/object:Gem::Version
94
- version: '1.1'
69
+ version_requirements: *10163380
95
70
  - !ruby/object:Gem::Dependency
96
71
  name: jeweler
97
- requirement: !ruby/object:Gem::Requirement
72
+ requirement: &10189020 !ruby/object:Gem::Requirement
98
73
  none: false
99
74
  requirements:
100
75
  - - ~>
@@ -102,12 +77,7 @@ dependencies:
102
77
  version: 1.8.3
103
78
  type: :development
104
79
  prerelease: false
105
- version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
- requirements:
108
- - - ~>
109
- - !ruby/object:Gem::Version
110
- version: 1.8.3
80
+ version_requirements: *10189020
111
81
  description: Naming patterns abstracted from the Wagn platform
112
82
  email: gerryg@inbox.com
113
83
  executables: []
@@ -120,7 +90,9 @@ files:
120
90
  - README.rdoc
121
91
  - Rakefile
122
92
  - VERSION
93
+ - cardname.rb
123
94
  - lib/smart_name.rb
95
+ - orig_cardname.rb
124
96
  - spec/inflection_helper.rb
125
97
  - spec/lib/smart_name_spec.rb
126
98
  - spec/spec_helper.rb
@@ -143,7 +115,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
143
115
  version: '0'
144
116
  segments:
145
117
  - 0
146
- hash: -4104289195100780208
118
+ hash: 1118870288458290680
147
119
  required_rubygems_version: !ruby/object:Gem::Requirement
148
120
  none: false
149
121
  requirements:
@@ -152,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
152
124
  version: '0'
153
125
  requirements: []
154
126
  rubyforge_project:
155
- rubygems_version: 1.8.24
127
+ rubygems_version: 1.8.15
156
128
  signing_key:
157
129
  specification_version: 3
158
130
  summary: Wagn names without all the wagn