monkey-lib 0.5.2 → 0.5.3
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.
- data/lib/monkey.rb +0 -2
- data/lib/monkey/backend/active_support.rb +14 -6
- data/lib/monkey/ext/array.rb +5 -0
- data/lib/monkey/ext/string.rb +0 -5
- data/lib/monkey/ext/symbol.rb +11 -0
- data/lib/monkey/matcher.rb +11 -0
- data/spec/monkey/ext/array_spec.rb +5 -3
- data/spec/monkey/ext/symbol_spec.rb +20 -0
- data/spec/monkey/matcher_spec.rb +17 -0
- metadata +10 -4
data/lib/monkey.rb
CHANGED
@@ -2,15 +2,23 @@ Monkey::Backend.new :ActiveSupport, :active_support do
|
|
2
2
|
def setup
|
3
3
|
load_lib :version
|
4
4
|
expects_module "::ActiveSupport::CoreExtensions::String::Inflections" if version < "3"
|
5
|
-
load_libs
|
5
|
+
load_libs :core_ext => %w[array/extract_options string/inflections module/introspection]
|
6
6
|
if version < "3"
|
7
|
-
|
7
|
+
begin
|
8
|
+
load_libs "core_ext/object/singleton_class"
|
9
|
+
rescue LoadError
|
10
|
+
load_libs "core_ext/object/metaclass"
|
11
|
+
::Object.send(:alias_method, :singleton_class, :metaclass)
|
12
|
+
end
|
13
|
+
load_libs "core_ext/object/misc"
|
14
|
+
::Array.send :include, ::ActiveSupport::CoreExtensions::Array::ExtractOptions
|
8
15
|
::Module.send :include, ::ActiveSupport::CoreExtensions::Module
|
16
|
+
::String.send :include, ::ActiveSupport::CoreExtensions::String::Inflections
|
17
|
+
else
|
18
|
+
load_libs "core_ext/kernel/singleton_class"
|
9
19
|
end
|
10
|
-
::String.
|
11
|
-
|
12
|
-
alias to_const_path underscore
|
13
|
-
end
|
20
|
+
::String.send(:alias_method, :to_const_string, :camelcase)
|
21
|
+
::String.send(:alias_method, :to_const_path, :underscore)
|
14
22
|
end
|
15
23
|
|
16
24
|
def version(default = "0")
|
data/lib/monkey/ext/array.rb
CHANGED
data/lib/monkey/ext/string.rb
CHANGED
@@ -7,7 +7,6 @@ module Monkey
|
|
7
7
|
expects :constantize, :to_const_string, :to_const_path, :underscore, :camelcase
|
8
8
|
|
9
9
|
feature :version do
|
10
|
-
|
11
10
|
def to_version
|
12
11
|
dup.to_version!
|
13
12
|
end
|
@@ -16,11 +15,9 @@ module Monkey
|
|
16
15
|
extend Monkey::Version
|
17
16
|
self
|
18
17
|
end
|
19
|
-
|
20
18
|
end
|
21
19
|
|
22
20
|
feature :pathname do
|
23
|
-
|
24
21
|
def atime
|
25
22
|
Pathname(self).atime
|
26
23
|
end
|
@@ -176,9 +173,7 @@ module Monkey
|
|
176
173
|
def symlink?
|
177
174
|
Pathname(self).symlink?
|
178
175
|
end
|
179
|
-
|
180
176
|
end
|
181
|
-
|
182
177
|
end
|
183
178
|
end
|
184
179
|
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require __FILE__.sub(%r{monkey/.*$}, "spec_helper")
|
2
2
|
|
3
3
|
describe Monkey::Ext::Array do
|
4
|
-
|
5
4
|
describe "backend expectations" do
|
6
5
|
# expects :extract_options!
|
7
6
|
it "imports extract_options! from backend" do
|
@@ -18,7 +17,6 @@ describe Monkey::Ext::Array do
|
|
18
17
|
end
|
19
18
|
|
20
19
|
describe "select!" do
|
21
|
-
|
22
20
|
it "results in the same arrays as Array#select" do
|
23
21
|
([1, 2, 3, 4, 5, 6].select! { |e| e > 3 }).should == ([1, 2, 3, 4, 5, 6].select { |e| e > 3 })
|
24
22
|
([1, 2, 3, 4, 5, 6].select! { |e| e < 0 }).should == ([1, 2, 3, 4, 5, 6].select { |e| e < 0 })
|
@@ -29,7 +27,11 @@ describe Monkey::Ext::Array do
|
|
29
27
|
x.select! { |e| e > 3 }
|
30
28
|
x.should == [4, 5, 6]
|
31
29
|
end
|
32
|
-
|
33
30
|
end
|
34
31
|
|
32
|
+
describe '+@' do
|
33
|
+
it 'returns a set' do
|
34
|
+
(+[1,2]).should be_a(Set)
|
35
|
+
end
|
36
|
+
end
|
35
37
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require __FILE__.sub(%r{monkey/.*$}, "spec_helper")
|
2
|
+
|
3
|
+
describe Monkey::Ext::Symbol do
|
4
|
+
describe '~@' do
|
5
|
+
it 'should match objects responding to a method' do
|
6
|
+
matcher = ~:foo
|
7
|
+
o = Object.new
|
8
|
+
(matcher === o).should be_false
|
9
|
+
o.stub! :foo
|
10
|
+
(matcher === o).should be_true
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should work for case statements' do
|
14
|
+
case 'foo'
|
15
|
+
when ~:to_s then nil
|
16
|
+
else fail 'did not match'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require __FILE__.sub(%r{monkey/.*$}, "spec_helper")
|
2
|
+
|
3
|
+
describe Monkey::Matcher do
|
4
|
+
it 'should consider block for #===' do
|
5
|
+
matcher = Monkey::Matcher.new { |x| x > 6 }
|
6
|
+
(matcher === 5).should be_false
|
7
|
+
(matcher === 8).should be_true
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should work with switch' do
|
11
|
+
matcher = Monkey::Matcher.new { |x| /foo/ === x }
|
12
|
+
case 'foobar'
|
13
|
+
when matcher then nil
|
14
|
+
else fail 'did not match'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: monkey-lib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 13
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 5
|
9
|
-
-
|
10
|
-
version: 0.5.
|
9
|
+
- 3
|
10
|
+
version: 0.5.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Konstantin Haase
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-07
|
18
|
+
date: 2010-09-07 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -59,8 +59,10 @@ extra_rdoc_files:
|
|
59
59
|
- lib/monkey/ext/object.rb
|
60
60
|
- lib/monkey/ext/pathname.rb
|
61
61
|
- lib/monkey/ext/string.rb
|
62
|
+
- lib/monkey/ext/symbol.rb
|
62
63
|
- lib/monkey/ext.rb
|
63
64
|
- lib/monkey/hash_fix.rb
|
65
|
+
- lib/monkey/matcher.rb
|
64
66
|
- lib/monkey/version.rb
|
65
67
|
- lib/monkey-lib.rb
|
66
68
|
- lib/monkey.rb
|
@@ -86,8 +88,10 @@ files:
|
|
86
88
|
- lib/monkey/ext/object.rb
|
87
89
|
- lib/monkey/ext/pathname.rb
|
88
90
|
- lib/monkey/ext/string.rb
|
91
|
+
- lib/monkey/ext/symbol.rb
|
89
92
|
- lib/monkey/ext.rb
|
90
93
|
- lib/monkey/hash_fix.rb
|
94
|
+
- lib/monkey/matcher.rb
|
91
95
|
- lib/monkey/version.rb
|
92
96
|
- lib/monkey-lib.rb
|
93
97
|
- lib/monkey.rb
|
@@ -99,7 +103,9 @@ files:
|
|
99
103
|
- spec/monkey/ext/object_spec.rb
|
100
104
|
- spec/monkey/ext/pathname_spec.rb
|
101
105
|
- spec/monkey/ext/string_spec.rb
|
106
|
+
- spec/monkey/ext/symbol_spec.rb
|
102
107
|
- spec/monkey/ext_spec.rb
|
108
|
+
- spec/monkey/matcher_spec.rb
|
103
109
|
- spec/monkey_spec.rb
|
104
110
|
- spec/spec_helper.rb
|
105
111
|
has_rdoc: true
|