lambda_driver 1.1.1 → 1.1.2
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/README.md +28 -7
- data/lib/lambda_driver/core_ext/symbol.rb +5 -1
- data/lib/lambda_driver/version.rb +1 -1
- data/spec/symbol_spec.rb +26 -2
- metadata +3 -9
data/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# LambdaDriver
|
|
1
|
+
# LambdaDriver
|
|
2
2
|
|
|
3
3
|
虚弦斥力場生成システム
|
|
4
4
|
|
|
@@ -20,6 +20,10 @@ LambdaDriver drives your code more functional.
|
|
|
20
20
|
- [project page](http://yuroyoro.github.com/lambda_driver/)
|
|
21
21
|
- [rubygems.org](https://rubygems.org/gems/lambda_driver)
|
|
22
22
|
|
|
23
|
+
## Build status
|
|
24
|
+
|
|
25
|
+
[](https://travis-ci.org/yuroyoro/lambda_driver)
|
|
26
|
+
|
|
23
27
|
## Installation
|
|
24
28
|
|
|
25
29
|
Add this line to your application's Gemfile:
|
|
@@ -135,18 +139,35 @@ This method is aliased as `~@`.
|
|
|
135
139
|
|
|
136
140
|
### Symbol extensions
|
|
137
141
|
- to_method
|
|
142
|
+
- to_method_with_args
|
|
138
143
|
|
|
139
144
|
#### Symbol#to_method
|
|
140
145
|
|
|
141
|
-
Symbol#to_method generates a function that extract Method object from given
|
|
146
|
+
Symbol#to_method generates a function that extract Method object from given argument.
|
|
142
147
|
This method is aliased as `-@`.
|
|
143
148
|
|
|
144
149
|
```ruby
|
|
145
150
|
(-:index).call("foobarbaz") # => #<Method: String#index>
|
|
146
|
-
(-:index).call("foobarbaz").call("bar") # => 3 (== "foobarbaz".index(
|
|
151
|
+
(-:index).call("foobarbaz").call("bar") # => 3 (== "foobarbaz".index("bar") )
|
|
147
152
|
|
|
148
153
|
-:index < "foobarbaz" # => #<Method: String#index>
|
|
149
|
-
-:index < "foobarbaz" < "bar" # => 3 (== "foobarbaz".index(
|
|
154
|
+
-:index < "foobarbaz" < "bar" # => 3 (== "foobarbaz".index("bar") )
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
#### Symbol#to_method_with_args
|
|
158
|
+
|
|
159
|
+
Symbol#to_method_with_args generates a function that extract Method object from given object,
|
|
160
|
+
and returns function is partially applied parameters by passed arguments.
|
|
161
|
+
It is same as Symbol#to_method with Proc#with_args.
|
|
162
|
+
|
|
163
|
+
This method is aliased as `&`.
|
|
164
|
+
|
|
165
|
+
```ruby
|
|
166
|
+
:index.to_method_with_args("bar") # => #<Proc:0x007ffef4886ff8
|
|
167
|
+
:index.to_method_with_args("bar").call("foobarbaz") # => 3 (== "foobarbaz".index("bar") )
|
|
168
|
+
|
|
169
|
+
:index & "bar" # => #<Proc:0x007ffef4886ff8
|
|
170
|
+
:index & "bar" < "foobarbaz" # => 3 (== "foobarbaz".index("bar") )
|
|
150
171
|
```
|
|
151
172
|
|
|
152
173
|
### Class extensions
|
|
@@ -162,7 +183,7 @@ This method is aliased as `-@`.
|
|
|
162
183
|
```ruby
|
|
163
184
|
String / :index # => #<UnboundMethod: String#index>
|
|
164
185
|
String / :index < "foobarbaz" # => #<Method: String#index>
|
|
165
|
-
String / :index < "foobarbaz" < 3 # => 3 (== "foobarbaz".index(
|
|
186
|
+
String / :index < "foobarbaz" < 3 # => 3 (== "foobarbaz".index("bar") )
|
|
166
187
|
```
|
|
167
188
|
|
|
168
189
|
### Combinators
|
|
@@ -170,7 +191,7 @@ This method is aliased as `-@`.
|
|
|
170
191
|
- ski combinator
|
|
171
192
|
|
|
172
193
|
### Object extensions
|
|
173
|
-
- obj.
|
|
194
|
+
- obj.revapply(|>)
|
|
174
195
|
- obj._
|
|
175
196
|
- obj.disjunction(f)
|
|
176
197
|
|
|
@@ -190,7 +211,7 @@ Object#_ is shortcut to quickly extract Method object.
|
|
|
190
211
|
|
|
191
212
|
```ruby
|
|
192
213
|
"foobarbaz"._.index # => #<Method: String#index>
|
|
193
|
-
"foobarbaz"._.index < "bar" # => 3 (== "foobarbaz".index(
|
|
214
|
+
"foobarbaz"._.index < "bar" # => 3 (== "foobarbaz".index("bar") )
|
|
194
215
|
|
|
195
216
|
2._(:>=) # => #<Method: Fixnum#>=>
|
|
196
217
|
[1, 2, 3].select(&2._(:>=)) # => [1, 2]( = [1, 2].select{|n| 2 >= n})
|
data/spec/symbol_spec.rb
CHANGED
|
@@ -75,12 +75,36 @@ describe Symbol do
|
|
|
75
75
|
subject.call(obj).call("bar").should == obj.method(:index).call("bar")
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
it('-:symbol.
|
|
78
|
+
it('(-:symbol).call(obj) should returns Method'){
|
|
79
79
|
(-:index).call(obj).should be_a_kind_of Method
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
it('-:symbol.
|
|
82
|
+
it('(-:symbol).call(obj).call(x) should be obj.method(symbol).call(x)'){
|
|
83
83
|
(-:index).call(obj).call("bar").should == obj.method(:index).call("bar")
|
|
84
84
|
}
|
|
85
|
+
|
|
86
|
+
it('-:symbol < obj < x should be obj.method(symbol).call(x)'){
|
|
87
|
+
(-:index < obj <"bar").should == obj.method(:index).call("bar")
|
|
88
|
+
}
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
describe '#to_method_with_args' do
|
|
92
|
+
subject { :index.to_method_with_args("bar") }
|
|
93
|
+
|
|
94
|
+
let(:obj) { "foobarbaz" }
|
|
95
|
+
|
|
96
|
+
it { should be_a_kind_of Proc }
|
|
97
|
+
|
|
98
|
+
it('symbol.to_method_with_args(x).call(obj) should be obj.method(symbol).call(x)'){
|
|
99
|
+
subject.call(obj).should == obj.method(:index).call("bar")
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
it('(:symbol & x).call(obj) should be obj.method(symbol).call(x)'){
|
|
103
|
+
(:index & 'bar').call(obj).should == obj.method(:index).call("bar")
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
it('(:symbol & x <obj) should be obj.method(symbol).call(x)'){
|
|
107
|
+
(:index & 'bar' < obj).should == obj.method(:index).call("bar")
|
|
108
|
+
}
|
|
85
109
|
end
|
|
86
110
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lambda_driver
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.2
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -13,7 +13,7 @@ date: 2013-03-27 00:00:00.000000000Z
|
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rspec
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &70302147613760 !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,7 +21,7 @@ dependencies:
|
|
|
21
21
|
version: '0'
|
|
22
22
|
type: :development
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *70302147613760
|
|
25
25
|
description: Drives your code more functioal!
|
|
26
26
|
email:
|
|
27
27
|
- ozaki@yuroyoro.com
|
|
@@ -74,18 +74,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
74
74
|
- - ! '>='
|
|
75
75
|
- !ruby/object:Gem::Version
|
|
76
76
|
version: '0'
|
|
77
|
-
segments:
|
|
78
|
-
- 0
|
|
79
|
-
hash: 926401567287214801
|
|
80
77
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
81
78
|
none: false
|
|
82
79
|
requirements:
|
|
83
80
|
- - ! '>='
|
|
84
81
|
- !ruby/object:Gem::Version
|
|
85
82
|
version: '0'
|
|
86
|
-
segments:
|
|
87
|
-
- 0
|
|
88
|
-
hash: 926401567287214801
|
|
89
83
|
requirements: []
|
|
90
84
|
rubyforge_project:
|
|
91
85
|
rubygems_version: 1.8.10
|