motion-support 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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