motion-support 0.0.3 → 0.1.0

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.
@@ -0,0 +1,23 @@
1
+ class Array
2
+ def empty?
3
+ self.length < 1
4
+ end
5
+
6
+ # If any item in the array has the key == `key` true, otherwise false.
7
+ # Of good use when writing specs.
8
+ def has_hash_key?(key)
9
+ self.each do |entity|
10
+ return true if entity.has_key? key
11
+ end
12
+ return false
13
+ end
14
+
15
+ # If any item in the array has the value == `key` true, otherwise false
16
+ # Of good use when writing specs.
17
+ def has_hash_value?(key)
18
+ self.each do |entity|
19
+ entity.each_pair{|hash_key, value| return true if value == key}
20
+ end
21
+ return false
22
+ end
23
+ end
@@ -18,4 +18,14 @@ class Hash
18
18
  def symbolize_keys!
19
19
  replace(symbolize_keys)
20
20
  end
21
+
22
+ def empty?
23
+ self.length < 1
24
+ end
25
+
26
+ # Returns the contents of the hash, with the exception
27
+ # of the keys specified in the keys array.
28
+ def except(*keys)
29
+ self.dup.reject{|k, v| keys.include?(k)}
30
+ end
21
31
  end
@@ -0,0 +1,156 @@
1
+ # Inflector is a singleton class that helps
2
+ # singularize, pluralize and other-thing-ize
3
+ # words. It is very much based on the Rails
4
+ # ActiveSupport implementation or Inflector
5
+ class Inflector
6
+ def self.instance #nodoc
7
+ @__instance__ ||= new
8
+ end
9
+
10
+ def initialize #nodoc
11
+ reset
12
+ end
13
+
14
+ def reset
15
+ # Put singular-form to plural form transformations here
16
+ @plurals = [
17
+ [/^person$/, 'people'],
18
+ [/^man$/, 'men'],
19
+ [/^child$/, 'children'],
20
+ [/^sex$/, 'sexes'],
21
+ [/^move$/, 'moves'],
22
+ [/^cow$/, 'kine'],
23
+ [/^zombie$/, 'zombies'],
24
+ [/(quiz)$/i, '\1zes'],
25
+ [/^(oxen)$/i, '\1'],
26
+ [/^(ox)$/i, '\1en'],
27
+ [/^(m|l)ice$/i, '\1ice'],
28
+ [/^(m|l)ouse$/i, '\1ice'],
29
+ [/(matr|vert|ind)(?:ix|ex)$/i, '\1ices'],
30
+ [/(x|ch|ss|sh)$/i, '\1es'],
31
+ [/([^aeiouy]|qu)y$/i, '\1ies'],
32
+ [/(hive)$/i, '\1s'],
33
+ [/(?:([^f])fe|([lr])f)$/i, '\1\2ves'],
34
+ [/sis$/i, 'ses'],
35
+ [/([ti])a$/i, '\1a'],
36
+ [/([ti])um$/i, '\1a'],
37
+ [/(buffal|tomat)o$/i, '\1oes'],
38
+ [/(bu)s$/i, '\1ses'],
39
+ [/(alias|status)$/i, '\1es'],
40
+ [/(octop|vir)i$/i, '\1i'],
41
+ [/(octop|vir|alumn)us$/i, '\1i'],
42
+ [/^(ax|test)is$/i, '\1es'],
43
+ [/s$/i, 's'],
44
+ [/$/, 's']
45
+ ]
46
+
47
+ # Put plural-form to singular form transformations here
48
+ @singulars = [
49
+ [/^people$/, 'person'],
50
+ [/^men$/, 'man'],
51
+ [/^children$/, 'child'],
52
+ [/^sexes$/, 'sex'],
53
+ [/^moves$/, 'move'],
54
+ [/^kine$/, 'cow'],
55
+ [/^zombies$/, 'zombie'],
56
+ [/(database)s$/i, '\1'],
57
+ [/(quiz)zes$/i, '\1'],
58
+ [/(matr)ices$/i, '\1ix'],
59
+ [/(vert|ind)ices$/i, '\1ex'],
60
+ [/^(ox)en/i, '\1'],
61
+ [/(alias|status)(es)?$/i, '\1'],
62
+ [/(octop|vir|alumn)(us|i)$/i, '\1us'],
63
+ [/^(a)x[ie]s$/i, '\1xis'],
64
+ [/(cris|test)(is|es)$/i, '\1is'],
65
+ [/(shoe)s$/i, '\1'],
66
+ [/(o)es$/i, '\1'],
67
+ [/(bus)(es)?$/i, '\1'],
68
+ [/^(m|l)ice$/i, '\1ouse'],
69
+ [/(x|ch|ss|sh)es$/i, '\1'],
70
+ [/(m)ovies$/i, '\1ovie'],
71
+ [/(s)eries$/i, '\1eries'],
72
+ [/([^aeiouy]|qu)ies$/i, '\1y'],
73
+ [/([lr])ves$/i, '\1f'],
74
+ [/(tive)s$/i, '\1'],
75
+ [/(hive)s$/i, '\1'],
76
+ [/([^f])ves$/i, '\1fe'],
77
+ [/(^analy)(sis|ses)$/i, '\1sis'],
78
+ [/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)(sis|ses)$/i, '\1sis'],
79
+ [/([ti])a$/i, '\1um'],
80
+ [/(n)ews$/i, '\1ews'],
81
+ [/(ss)$/i, '\1'],
82
+ [/s$/i, '']
83
+ ]
84
+
85
+ @irregulars = [
86
+ ]
87
+
88
+ @uncountables = [
89
+ 'equipment',
90
+ 'information',
91
+ 'rice',
92
+ 'money',
93
+ 'species',
94
+ 'series',
95
+ 'fish',
96
+ 'sheep',
97
+ 'jeans',
98
+ 'police'
99
+ ]
100
+ end
101
+
102
+ attr_reader :plurals, :singulars, :uncountables, :irregulars
103
+
104
+ def self.inflections
105
+ if block_given?
106
+ yield Inflector.instance
107
+ else
108
+ Inflector.instance
109
+ end
110
+ end
111
+
112
+ def uncountable(word)
113
+ @uncountables << word
114
+ end
115
+
116
+ def singular(rule, replacement)
117
+ @singulars << [rule, replacement]
118
+ end
119
+
120
+ def plural(rule, replacement)
121
+ @plurals << [rule, replacement]
122
+ end
123
+
124
+ def irregular(rule, replacement)
125
+ @irregulars << [rule, replacement]
126
+ end
127
+
128
+ def uncountable?(word)
129
+ return word if @uncountables.include?(word.downcase)
130
+ false
131
+ end
132
+
133
+ def inflect(word, direction) #nodoc
134
+ return word if uncountable?(word)
135
+
136
+ subject = word.dup
137
+
138
+ @irregulars.each do |rule|
139
+ return subject if subject.gsub!(rule.first, rule.last)
140
+ end
141
+
142
+ sense_group = direction == :singularize ? @singulars : @plurals
143
+ sense_group.each do |rule|
144
+ return subject if subject.gsub!(rule.first, rule.last)
145
+ end
146
+ subject
147
+ end
148
+
149
+ def singularize(word)
150
+ inflect word, :singularize
151
+ end
152
+
153
+ def pluralize(word)
154
+ inflect word, :pluralize
155
+ end
156
+ end
@@ -0,0 +1,5 @@
1
+ class NilClass
2
+ def blank?
3
+ true
4
+ end
5
+ end
@@ -15,10 +15,3 @@ class Object
15
15
  !blank?
16
16
  end
17
17
  end
18
-
19
- class NilClass
20
- # nil is always blank. See Object#blank?
21
- def blank?
22
- true
23
- end
24
- end
@@ -1,27 +1,71 @@
1
1
  class String
2
- # Returns a pluralized version of the string, if it is not already pluralized. This implementation
3
- # is rather naive, as it only appends an 's' to the string, unless it already ends with 's'.
2
+ def humanize
3
+ self.gsub(/(_|-)+/, ' ').strip
4
+ end
5
+
6
+ def titleize
7
+ self.humanize.split(' ').map { |word| word.capitalize }.join(' ')
8
+ end
9
+
10
+ def dasherize
11
+ self.underscore.humanize.split(' ').join('-')
12
+ end
13
+
14
+ def empty?
15
+ self.length < 1
16
+ end
17
+
18
+ def blank?
19
+ self.strip.empty?
20
+ end
21
+
4
22
  def pluralize
5
- if self[-1] == 's'
6
- self
7
- else
8
- self + "s"
9
- end
23
+ Inflector.inflections.pluralize self
10
24
  end
11
25
 
12
- # Returns a singularized version of the string, if it is not already pluralized. This implementation
13
- # is rather naive, as it only removes a trailing 's' from the string, unless it does not end in 's'.
14
26
  def singularize
15
- if self[-1] == 's'
16
- self[0..-2]
27
+ Inflector.inflections.singularize self
28
+ end
29
+
30
+ def camelize(uppercase_first_letter = true)
31
+ string = self.dup
32
+ string.gsub!(/(?:_|-|(\/))([a-z\d]*)/i) do
33
+ new_word = $2.downcase
34
+ new_word[0] = new_word[0].upcase
35
+ new_word = "/#{new_word}" if $1 == '/'
36
+ new_word
37
+ end
38
+ if uppercase_first_letter && uppercase_first_letter != :lower
39
+ string[0] = string[0].upcase
17
40
  else
18
- self
41
+ string[0] = string[0].downcase
19
42
  end
43
+ string.gsub!('/', '::')
44
+ string
20
45
  end
21
-
22
- # This method makes a string look like a class name. This means an under_scored string will become
23
- # a CamelizedString, also it will be singularized, if it is plural.
46
+
47
+ def underscore
48
+ word = self.dup
49
+ word.gsub!(/::/, '/')
50
+ word.gsub!(/([A-Z\d]+)([A-Z][a-z])/,'\1_\2')
51
+ word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
52
+ word.tr!("-", "_")
53
+ word.downcase!
54
+ word
55
+ end
56
+
57
+ # Make a string *named* like a class name. This means
58
+ # an under_scored string will become a CamelizedString, also it
59
+ # will be singularized, if it is plural.
24
60
  def classify
25
61
  singularize.camelize
26
62
  end
63
+
64
+ # This method looks up a class name in the ObjectSpace's constants
65
+ # allowing you to do something like this:
66
+ #
67
+ # "under_scored".classify.contantize.new
68
+ def constantize
69
+ Object.const_get(self)
70
+ end
27
71
  end
@@ -1,3 +1,3 @@
1
1
  module MotionSupport
2
- VERSION = "0.0.3"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -0,0 +1,21 @@
1
+ describe 'array' do
2
+ it 'determines when an array is empty' do
3
+ [1, 2, 3].should.not.be.empty
4
+ [].should.be.empty
5
+ end
6
+
7
+ it 'finds hash values' do
8
+ array_of_hashes = [
9
+ {
10
+ line1: 3,
11
+ line2: 5
12
+ },
13
+ {
14
+ line3: 7,
15
+ line4: 9
16
+ }
17
+ ]
18
+ array_of_hashes.has_hash_value?(5).should.be.true
19
+ array_of_hashes.has_hash_value?(4).should.not.be.true
20
+ end
21
+ end
@@ -1,15 +1,31 @@
1
1
  describe "hash" do
2
- it "should return copy with symbolized keys" do
3
- { 'foo' => 'bar', 'bla' => 'blub' }.symbolize_keys.should == { :foo => 'bar', :bla => 'blub' }
2
+ describe "symbolize_keys" do
3
+ it "should return copy with symbolized keys" do
4
+ { 'foo' => 'bar', 'bla' => 'blub' }.symbolize_keys.should == { :foo => 'bar', :bla => 'blub' }
5
+ end
6
+
7
+ it "should not modify keys that can not be symbolized" do
8
+ { :foo => 'bar', 1 => 'blub' }.symbolize_keys.should == { :foo => 'bar', 1 => 'blub' }
9
+ end
10
+
11
+ it "should symbolize keys in place" do
12
+ hash = { 'foo' => 'bar', 'bla' => 'blub' }
13
+ hash.symbolize_keys!
14
+ hash.should == { :foo => 'bar', :bla => 'blub' }
15
+ end
4
16
  end
5
-
6
- it "should not modify keys that can not be symbolized" do
7
- { :foo => 'bar', 1 => 'blub' }.symbolize_keys.should == { :foo => 'bar', 1 => 'blub' }
17
+
18
+ describe "empty?" do
19
+ it "reports an empty hash using empty?" do
20
+ {:key => 'value'}.empty?.should.not.be.true
21
+ {}.empty?.should.be.true
22
+ end
8
23
  end
9
24
 
10
- it "should symbolize keys in place" do
11
- hash = { 'foo' => 'bar', 'bla' => 'blub' }
12
- hash.symbolize_keys!
13
- hash.should == { :foo => 'bar', :bla => 'blub' }
25
+ describe "except" do
26
+ it "creates sub-hashes using except" do
27
+ {:a => 'a', :b => 'b'}.except(:b)[:b].should.be.nil
28
+ {:a => 'a', :b => 'b'}.except(:b).length.should == 1
29
+ end
14
30
  end
15
31
  end
@@ -0,0 +1,65 @@
1
+ describe 'Extensions' do
2
+ describe 'Pluralization' do
3
+ it 'pluralizes a normal word: dog' do
4
+ Inflector.inflections.pluralize('dog').should == 'dogs'
5
+ end
6
+
7
+ it 'pluralizes words that end in "s": pass' do
8
+ Inflector.inflections.pluralize('pass').should == 'passes'
9
+ end
10
+
11
+ it "pluralizes words that end in 'us'" do
12
+ Inflector.inflections.pluralize('alumnus').should == 'alumni'
13
+ end
14
+
15
+ it "pluralizes words that end in 'ee'" do
16
+ Inflector.inflections.pluralize('attendee').should == 'attendees'
17
+ end
18
+
19
+ it "pluralizes words that end in 'e'" do
20
+ Inflector.inflections.pluralize('article').should == 'articles'
21
+ end
22
+ end
23
+
24
+ describe 'Singularization' do
25
+ it 'singularizes a normal word: "dogs"' do
26
+ Inflector.inflections.singularize('dogs').should == 'dog'
27
+ end
28
+
29
+ it "singualarizes a word that ends in 's': passes" do
30
+ Inflector.inflections.singularize('passes').should == 'pass'
31
+ end
32
+
33
+ it "singualarizes a word that ends in 'ee': assignees" do
34
+ Inflector.inflections.singularize('assignees').should == 'assignee'
35
+ end
36
+
37
+ it "singualarizes words that end in 'us'" do
38
+ Inflector.inflections.singularize('alumni').should == 'alumnus'
39
+ end
40
+
41
+ it "singualarizes words that end in 'es'" do
42
+ Inflector.inflections.singularize('articles').should == 'article'
43
+ end
44
+ end
45
+
46
+ describe 'Irregular Patterns' do
47
+ it "handles person to people singularizing" do
48
+ Inflector.inflections.singularize('people').should == 'person'
49
+ end
50
+
51
+ it "handles person to people pluralizing" do
52
+ Inflector.inflections.pluralize('person').should == 'people'
53
+ end
54
+ end
55
+
56
+ describe 'Adding Rules to Inflector' do
57
+ it 'accepts new rules' do
58
+ Inflector.inflections.irregular /^foot$/, 'feet'
59
+ Inflector.inflections.irregular /^feet$/, 'foot'
60
+ Inflector.inflections.pluralize('foot').should == 'feet'
61
+ Inflector.inflections.singularize('feet').should == 'foot'
62
+ end
63
+ end
64
+ end
65
+
@@ -0,0 +1,5 @@
1
+ describe 'nilclass' do
2
+ it 'is blank if nil' do
3
+ nil.should.be.blank
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
- describe "blank" do
2
- describe "Object" do
1
+ describe "Object" do
2
+ describe "blank?" do
3
3
  it "should be blank when responds to empty and is empty" do
4
4
  [].respond_to?(:empty?).should == true
5
5
  [].blank?.should == true
@@ -9,7 +9,9 @@ describe "blank" do
9
9
  "Teststring".respond_to?(:empty?).should == true
10
10
  "Teststring".blank?.should == false
11
11
  end
12
-
12
+ end
13
+
14
+ describe "present?" do
13
15
  it "should be present if not blank" do
14
16
  "Hello".present?.should == true
15
17
  end
@@ -19,7 +21,7 @@ describe "blank" do
19
21
  end
20
22
  end
21
23
 
22
- describe "common objects" do
24
+ describe "common blank objects" do
23
25
  it "should be blank for empty array" do
24
26
  [].blank?.should == true
25
27
  end
@@ -1,43 +1,145 @@
1
1
  describe "string" do
2
+ describe "humanize" do
3
+ it "handles dashes in text" do
4
+ 'text-with-dashes'.humanize.should == 'text with dashes'
5
+ end
6
+
7
+ it "doesn't add junk at end if trailing character is a dash" do
8
+ 'text-with-trailing-dash-'.humanize.should == 'text with trailing dash'
9
+ end
10
+
11
+ it "doesn't prepend junk if starting character is a dash" do
12
+ '-text-with-leading-dash'.humanize.should == 'text with leading dash'
13
+ end
14
+
15
+ it "condenses multiple dashes to one space" do
16
+ 'text--with-multiple--dashes'.humanize.should == 'text with multiple dashes'
17
+ end
18
+ end
19
+
20
+ describe "titleize" do
21
+ it "translates text to title case" do
22
+ 'text-to-translate'.titleize.should == 'Text To Translate'
23
+ end
24
+ end
25
+
26
+ describe "dasherize" do
27
+ it 'handles strings with spaces' do
28
+ 'a normal string'.dasherize.should == 'a-normal-string'
29
+ end
30
+
31
+ it 'handles CamelCase strings' do
32
+ 'MyClass'.dasherize.should == 'my-class'
33
+ end
34
+
35
+ it 'handles snake_case strings' do
36
+ 'my_class'.dasherize.should == 'my-class'
37
+ end
38
+ end
39
+
40
+ describe "empty?" do
41
+ it "an empty string is detected by empty?" do
42
+ ''.empty?.should.be.true
43
+ end
44
+
45
+ it "a non-empty string is false according to empty?" do
46
+ 'something'.empty?.should.not.be.true
47
+ end
48
+
49
+ it "a blank string is false according to empty?" do
50
+ ' '.empty?.should.not.be.true
51
+ end
52
+ end
53
+
54
+ describe "blank?" do
55
+ it "an empty string should be blank" do
56
+ ''.should.be.blank
57
+ end
58
+
59
+ it "a string containing only whitespace should be blank" do
60
+ ' '.should.be.blank
61
+ end
62
+
63
+ it "a string with content is not blank" do
64
+ 'abc'.should.not.be.blank
65
+ end
66
+ end
67
+
68
+ describe "camelize" do
69
+ it 'a dashed string should convert to CamelCase' do
70
+ 'my-class'.camelize.should == 'MyClass'
71
+ end
72
+
73
+ it 'a snake_case string should convert to CamelCase' do
74
+ 'my_class'.camelize.should == 'MyClass'
75
+ end
76
+
77
+ it 'a conversion can be specified with lowercase first letter' do
78
+ 'my_cocoa_var'.camelize(false).should == 'myCocoaVar'
79
+ end
80
+ end
81
+
82
+ describe "underscore" do
83
+ it 'a camel-cased string can be converted to snake-case' do
84
+ 'MyClass'.underscore.should == 'my_class'
85
+ end
86
+
87
+ it 'a module scoped class is properly underscored' do
88
+ 'MyModule::MyClass'.underscore.should == 'my_module/my_class'
89
+ end
90
+
91
+ it 'properly underscores lowercase initial letter' do
92
+ 'aCocoaVariable'.underscore.should == 'a_cocoa_variable'
93
+ end
94
+ end
95
+
2
96
  describe "pluralize" do
3
97
  it "should return self if string is already plural" do
4
98
  "houses".pluralize.should == "houses"
5
99
  "trains".pluralize.should == "trains"
6
100
  end
7
-
101
+
8
102
  it "should return plural version for singular string" do
9
103
  "house".pluralize.should == "houses"
10
104
  "train".pluralize.should == "trains"
11
105
  end
12
106
  end
13
-
107
+
14
108
  describe "singularize" do
15
109
  it "should return self if string is already singular" do
16
110
  "house".singularize.should == "house"
17
111
  "train".singularize.should == "train"
18
112
  end
19
-
113
+
20
114
  it "should return singular version for plural string" do
21
115
  "houses".singularize.should == "house"
22
116
  "trains".singularize.should == "train"
23
117
  end
24
118
  end
25
-
119
+
26
120
  describe "classify" do
27
- it "should return classified string for underscored singular string" do
121
+ it "should return classified version of underscored singular string" do
28
122
  "search_controller".classify.should == "SearchController"
29
123
  end
30
-
31
- it "should return classified string for underscored plural string" do
124
+
125
+ it "should return classified version of underscored plural string" do
32
126
  "search_controllers".classify.should == "SearchController"
33
127
  end
34
-
35
- it "should return classified string for camelized singular string" do
128
+
129
+ it "should return classified version of camelized singular string" do
36
130
  "SearchController".classify.should == "SearchController"
37
131
  end
38
-
39
- it "should return classified string for camelized plural string" do
132
+
133
+ it "should return classified version of camelized plural string" do
40
134
  "SearchControllers".classify.should == "SearchController"
41
135
  end
42
136
  end
137
+
138
+ describe "constantize" do
139
+ class SearchController; end
140
+
141
+ it "makes a constant class name from a suitable string" do
142
+ "SearchControllers".classify.constantize.should == SearchController
143
+ end
144
+ end
43
145
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: motion-support
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.3
5
+ version: 0.1.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Thomas Kadauke
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-12-31 00:00:00 Z
13
+ date: 2013-03-14 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: bubble-wrap
@@ -50,22 +50,28 @@ files:
50
50
  - Rakefile
51
51
  - app/app_delegate.rb
52
52
  - lib/motion-support.rb
53
- - lib/motion-support/blank.rb
53
+ - lib/motion-support/array.rb
54
54
  - lib/motion-support/cattr_accessor.rb
55
55
  - lib/motion-support/class_inheritable_accessor.rb
56
56
  - lib/motion-support/class_inheritable_array.rb
57
57
  - lib/motion-support/hash.rb
58
+ - lib/motion-support/inflector.rb
58
59
  - lib/motion-support/logger.rb
59
60
  - lib/motion-support/metaclass.rb
61
+ - lib/motion-support/nilclass.rb
62
+ - lib/motion-support/object.rb
60
63
  - lib/motion-support/string.rb
61
64
  - lib/motion-support/version.rb
62
65
  - motion-support.gemspec
63
- - spec/motion-support/blank_spec.rb
66
+ - spec/motion-support/array_spec.rb
64
67
  - spec/motion-support/cattr_accessor_spec.rb
65
68
  - spec/motion-support/class_inheritable_accessor_spec.rb
66
69
  - spec/motion-support/class_inheritable_array_spec.rb
67
70
  - spec/motion-support/hash_spec.rb
71
+ - spec/motion-support/inflector_spec.rb
68
72
  - spec/motion-support/metaclass_spec.rb
73
+ - spec/motion-support/nilclass_spec.rb
74
+ - spec/motion-support/object_spec.rb
69
75
  - spec/motion-support/string_spec.rb
70
76
  homepage: https://github.com/tkadauke/motion-support
71
77
  licenses: []
@@ -80,7 +86,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
80
86
  requirements:
81
87
  - - ">="
82
88
  - !ruby/object:Gem::Version
83
- hash: -760150939951472099
89
+ hash: -605165508006699025
84
90
  segments:
85
91
  - 0
86
92
  version: "0"
@@ -89,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
95
  requirements:
90
96
  - - ">="
91
97
  - !ruby/object:Gem::Version
92
- hash: -760150939951472099
98
+ hash: -605165508006699025
93
99
  segments:
94
100
  - 0
95
101
  version: "0"
@@ -101,10 +107,13 @@ signing_key:
101
107
  specification_version: 3
102
108
  summary: Commonly useful extensions to the standard library for RubyMotion
103
109
  test_files:
104
- - spec/motion-support/blank_spec.rb
110
+ - spec/motion-support/array_spec.rb
105
111
  - spec/motion-support/cattr_accessor_spec.rb
106
112
  - spec/motion-support/class_inheritable_accessor_spec.rb
107
113
  - spec/motion-support/class_inheritable_array_spec.rb
108
114
  - spec/motion-support/hash_spec.rb
115
+ - spec/motion-support/inflector_spec.rb
109
116
  - spec/motion-support/metaclass_spec.rb
117
+ - spec/motion-support/nilclass_spec.rb
118
+ - spec/motion-support/object_spec.rb
110
119
  - spec/motion-support/string_spec.rb