namelogic 0.0.9 → 0.0.10

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/Gemfile +1 -4
  2. data/Gemfile.lock +6 -2
  3. data/VERSION +1 -1
  4. data/lib/name_logic.rb +33 -37
  5. metadata +19 -19
data/Gemfile CHANGED
@@ -1,7 +1,4 @@
1
1
  source "http://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
5
2
 
6
3
  # Add dependencies to develop your gem here.
7
4
  # Include everything needed to run rake, tests, features, etc.
@@ -13,5 +10,5 @@ group :development do
13
10
  #gem "rcov", ">= 0"
14
11
  end
15
12
 
13
+ gem "activesupport"
16
14
  gem 'htmlentities', '~>4.3.0'
17
- gem 'ruby-configurable', '~>1.0.0'
@@ -1,15 +1,20 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ activesupport (3.2.8)
5
+ i18n (~> 0.6)
6
+ multi_json (~> 1.0)
4
7
  diff-lcs (1.1.3)
5
8
  git (1.2.5)
6
9
  htmlentities (4.3.1)
10
+ i18n (0.6.1)
7
11
  jeweler (1.8.3)
8
12
  bundler (~> 1.0)
9
13
  git (>= 1.2.5)
10
14
  rake
11
15
  rdoc
12
16
  json (1.7.5)
17
+ multi_json (1.3.6)
13
18
  rake (0.9.2.2)
14
19
  rdoc (3.12)
15
20
  json (~> 1.4)
@@ -21,15 +26,14 @@ GEM
21
26
  rspec-expectations (2.8.0)
22
27
  diff-lcs (~> 1.1.2)
23
28
  rspec-mocks (2.8.0)
24
- ruby-configurable (1.0.2)
25
29
 
26
30
  PLATFORMS
27
31
  ruby
28
32
 
29
33
  DEPENDENCIES
34
+ activesupport
30
35
  bundler (~> 1.1.0)
31
36
  htmlentities (~> 4.3.0)
32
37
  jeweler (~> 1.8.3)
33
38
  rdoc (~> 3.12)
34
39
  rspec (~> 2.8.0)
35
- ruby-configurable (~> 1.0.0)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.9
1
+ 0.0.10
@@ -1,6 +1,6 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
- require 'configurable'
3
+ require 'active_support/configurable'
4
4
  require 'active_support/inflector'
5
5
 
6
6
  class Object
@@ -21,25 +21,25 @@ class NameLogic < Object
21
21
  RUBY19 = RUBY_VERSION =~ /^1\.9/
22
22
  WORD_RE = RUBY19 ? '\p{Word}' : '\w'
23
23
 
24
- include Configurable
24
+ include ActiveSupport::Configurable
25
25
 
26
- configurable_options :joint, :formal_joint, :name_attribute, :banned_array,
27
- :banned_re, :var_re, :uninflect, :params, :codes, :lookup,
28
- :joint => JOINT,
29
- :formal_joint => " <span class=\"wiki-joint\">#{JOINT}</span> ",
30
- :name_attribute => :cardname,
31
- :banned_array => BANNED_ARRAY,
32
- :banned_re => BANNED_RE,
33
- #BANNED_RE = /#{ (['['] + BANNED_ARRAY << JOINT )*'\\' }#{ ']' }/,
34
- :var_re => VAR_MATCH,
35
- :uninflect => SINGULAR
26
+ config_accessor :joint, :formal_joint, :name_attribute, :banned_array,
27
+ :banned_re, :var_re, :uninflect, :params, :codes, :lookup
28
+
29
+ NameLogic.joint = JOINT
30
+ NameLogic.formal_joint = " <span class=\"wiki-joint\">#{JOINT}</span> "
31
+ NameLogic.name_attribute = :cardname
32
+ NameLogic.banned_array = BANNED_ARRAY
33
+ NameLogic.banned_re = BANNED_RE
34
+ NameLogic.var_re = VAR_MATCH
35
+ NameLogic.uninflect = SINGULAR
36
36
 
37
37
  @@name2nameobject = {}
38
38
 
39
39
  class << self
40
40
  def new obj
41
41
  return obj if NameLogic===obj
42
- str = Array===obj ? obj*config.joint : obj.to_s
42
+ str = Array===obj ? obj*NameLogic.joint : obj.to_s
43
43
  if known_name = @@name2nameobject[str]
44
44
  known_name
45
45
  else
@@ -53,10 +53,6 @@ class NameLogic < Object
53
53
  # if we could make that not happen, we could avoid this (and handle spaces in urls)
54
54
  uri.gsub(' ','+').gsub '_',' '
55
55
  end
56
-
57
- def joint() config.joint end
58
- def banned_array() config.banned_array end
59
- def banned_re() config.banned_re end
60
56
  end
61
57
 
62
58
 
@@ -69,11 +65,11 @@ class NameLogic < Object
69
65
  def initialize str
70
66
  @s = str.to_s.strip
71
67
  @s = @s.encode('UTF-8') if RUBY19
72
- @key = if @s.index(config.joint)
73
- @parts = @s.split(/\s*#{Regexp.escape(config.joint)}\s*/)
74
- @parts << '' if @s[-1] == config.joint
68
+ @key = if @s.index(NameLogic.joint)
69
+ @parts = @s.split(/\s*#{Regexp.escape(NameLogic.joint)}\s*/)
70
+ @parts << '' if @s[-1] == NameLogic.joint
75
71
  @simple = false
76
- @parts.map { |p| p.to_name.key } * config.joint
72
+ @parts.map { |p| p.to_name.key } * NameLogic.joint
77
73
  else
78
74
  @parts = [str]
79
75
  @simple = true
@@ -83,7 +79,7 @@ class NameLogic < Object
83
79
  end
84
80
 
85
81
  def to_name() self end
86
- def valid?() not parts.find { |pt| pt.match config.banned_re } end
82
+ def valid?() not parts.find { |pt| pt.match NameLogic.banned_re } end
87
83
  def length() parts.length end
88
84
  def size() to_s.size end
89
85
  def blank?() s.blank? end
@@ -106,7 +102,7 @@ class NameLogic < Object
106
102
  #~~~~~~~~~~~~~~~~~~~ VARIANTS ~~~~~~~~~~~~~~~~~~~
107
103
 
108
104
  def simple_key
109
- decoded.underscore.gsub(/[^#{WORD_RE}\*]+/,'_').split(/_+/).reject(&:empty?).map(&(config.uninflect))*'_'
105
+ decoded.underscore.gsub(/[^#{WORD_RE}\*]+/,'_').split(/_+/).reject(&:empty?).map(&(NameLogic.uninflect))*'_'
110
106
  end
111
107
 
112
108
  def url_key
@@ -114,7 +110,7 @@ class NameLogic < Object
114
110
  end
115
111
 
116
112
  def safe_key
117
- @safe_key ||= key.gsub('*','X').gsub config.joint, '-'
113
+ @safe_key ||= key.gsub('*','X').gsub NameLogic.joint, '-'
118
114
  end
119
115
 
120
116
  def decoded
@@ -129,7 +125,7 @@ class NameLogic < Object
129
125
 
130
126
  def post_cgi
131
127
  #hmm. this could resolve to the key of some other card. move to class method?
132
- @post_cgi ||= s.gsub '~plus~', config.joint
128
+ @post_cgi ||= s.gsub '~plus~', NameLogic.joint
133
129
  end
134
130
 
135
131
  #~~~~~~~~~~~~~~~~~~~ PARTS ~~~~~~~~~~~~~~~~~~~
@@ -137,11 +133,11 @@ class NameLogic < Object
137
133
  alias simple? simple
138
134
  def junction?() not simple? end
139
135
 
140
- def left() @left ||= simple? ? nil : parts[0..-2]*config.joint end
136
+ def left() @left ||= simple? ? nil : parts[0..-2]*NameLogic.joint end
141
137
  def right() @right ||= simple? ? nil : parts[-1] end
142
138
 
143
- def left_name() @left_name ||= left && self.class.new( left ) end
144
- def right_name() @right_name ||= right && self.class.new( right ) end
139
+ def left_name() @left_name ||= left && NameLogic.new( left ) end
140
+ def right_name() @right_name ||= right && NameLogic.new( right ) end
145
141
 
146
142
  # Note that all names have a trunk and tag, but only junctions have left and right
147
143
 
@@ -169,15 +165,15 @@ class NameLogic < Object
169
165
  junction? && begin
170
166
  right_key = right_name.key
171
167
  !!traitlist.find do |codename|
172
- codecard = config.codes[ codename ] and codecard = config.lookup[ codecard ] and
173
- codecard.send(config.name_attribute).key == right_key
168
+ codecard = NameLogic.codes[ codename ] and codecard = NameLogic.lookup[ codecard ] and
169
+ codecard.send(NameLogic.name_attribute).key == right_key
174
170
  end
175
171
  end
176
172
  end
177
173
 
178
174
  def trait_name tag_code
179
- codecard = config.codes[ tag_code ] and codecard = config.lookup[ codecard ] and
180
- [ self, codecard.send(config.name_attribute) ].to_name
175
+ codecard = NameLogic.codes[ tag_code ] and codecard = NameLogic.lookup[ codecard ] and
176
+ [ self, codecard.send(NameLogic.name_attribute) ].to_name
181
177
  end
182
178
 
183
179
  def trait tag_code
@@ -201,7 +197,7 @@ class NameLogic < Object
201
197
  initial_blank = show_parts[0].nil?
202
198
  show_name = show_parts.compact.to_name.s
203
199
 
204
- initial_blank ? config.joint + show_name : show_name
200
+ initial_blank ? NameLogic.joint + show_name : show_name
205
201
  end
206
202
 
207
203
 
@@ -210,7 +206,7 @@ class NameLogic < Object
210
206
  parts.map do |part|
211
207
  new_part = case part
212
208
  when /^_user$/i; (user=Session.user_card) ? user.name : part
213
- when /^_main$/i; config.params[:main_name]
209
+ when /^_main$/i; NameLogic.params[:main_name]
214
210
  when /^(_self|_whole|_)$/i; context.s
215
211
  when /^_left$/i; context.trunk #note - inconsistent use of left v. trunk
216
212
  when /^_right$/i; context.tag
@@ -229,11 +225,11 @@ class NameLogic < Object
229
225
  part
230
226
  end.to_s.strip
231
227
  new_part.empty? ? context.to_s : new_part
232
- end * config.joint
228
+ end * NameLogic.joint
233
229
  end
234
230
 
235
231
  def to_absolute_name *args
236
- self.class.new to_absolute(*args)
232
+ NameLogic.new to_absolute(*args)
237
233
  end
238
234
 
239
235
  def nth_left n
@@ -272,7 +268,7 @@ class NameLogic < Object
272
268
 
273
269
  def self.substitute! str, hash
274
270
  hash.keys.each do |var|
275
- str.gsub!(config.var_re) { |x| (v=hash[var.to_sym]).nil? ? x : v }
271
+ str.gsub!(NameLogic.var_re) { |x| (v=hash[var.to_sym]).nil? ? x : v }
276
272
  end
277
273
  str
278
274
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: namelogic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -12,30 +12,30 @@ cert_chain: []
12
12
  date: 2012-10-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: htmlentities
16
- requirement: &9199420 !ruby/object:Gem::Requirement
15
+ name: activesupport
16
+ requirement: &9475460 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ~>
19
+ - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 4.3.0
21
+ version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *9199420
24
+ version_requirements: *9475460
25
25
  - !ruby/object:Gem::Dependency
26
- name: ruby-configurable
27
- requirement: &9198820 !ruby/object:Gem::Requirement
26
+ name: htmlentities
27
+ requirement: &9473680 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
31
31
  - !ruby/object:Gem::Version
32
- version: 1.0.0
32
+ version: 4.3.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *9198820
35
+ version_requirements: *9473680
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &9198020 !ruby/object:Gem::Requirement
38
+ requirement: &9471900 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 2.8.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *9198020
46
+ version_requirements: *9471900
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rdoc
49
- requirement: &9197340 !ruby/object:Gem::Requirement
49
+ requirement: &9470640 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '3.12'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *9197340
57
+ version_requirements: *9470640
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: bundler
60
- requirement: &9196700 !ruby/object:Gem::Requirement
60
+ requirement: &9485520 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.1.0
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *9196700
68
+ version_requirements: *9485520
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: jeweler
71
- requirement: &9196040 !ruby/object:Gem::Requirement
71
+ requirement: &9484240 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: 1.8.3
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *9196040
79
+ version_requirements: *9484240
80
80
  description: Wiki Segmented Name Logic
81
81
  email: gerryg@inbox.com
82
82
  executables: []
@@ -114,7 +114,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
114
114
  version: '0'
115
115
  segments:
116
116
  - 0
117
- hash: -2071270473877385600
117
+ hash: 1700480941420385505
118
118
  required_rubygems_version: !ruby/object:Gem::Requirement
119
119
  none: false
120
120
  requirements: