method_struct 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: faab59cbf9a78b593cae7f255ae43932fa51d829
4
- data.tar.gz: bb14949700c7b102b51fafbef4f85c403b0cc8a9
3
+ metadata.gz: 8b7d88eb4418b8f3a8e945ed14ccefafe4a23ed9
4
+ data.tar.gz: b24fd08162d52e7757de9c87dce5c2934cf6bb4b
5
5
  SHA512:
6
- metadata.gz: fdf24cfa6f0b92286a1414328853ef3f54c2b991d788a306a0fb3b048ae1052d90e3cef2067eee77cebd97448879ee33137ffb0e4360ec44ed3b43bf1c02713d
7
- data.tar.gz: 4d14e2c96eca0876d166a0e1e16caab4d607c2ef8bd256c3a9feec30facac3d2d9d07f8114aab2ddc545875fce44c316af0597b018d724cd85d7b4dd8e0f3458
6
+ metadata.gz: abeed89c934277a4b031a7358bbb5c7540eb5d87132d41eeaadb97fd28551529a6e70f2e38ace31307e06998ddb5dc7b2135a29f07cd13f6373ec438e219cafe
7
+ data.tar.gz: 77d9249b48bdf297d8f72b79ffbcfa64e76e77a74c6d1511323fc5f97c0ce118119b6f8be1b2175456273e2d930424876fafb95398a7b1087a56a86b4a4ceb64
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ 0.2.2
2
+ ~ A MethodStruct class now implements #to_proc and so can be passed as a block
3
+ argument
4
+
1
5
  0.2.1
2
6
  ~ Fixes in how argument verification deals with hashes
3
7
 
data/README.md CHANGED
@@ -36,7 +36,7 @@ end
36
36
  You can change it into this:
37
37
 
38
38
  ```ruby
39
- Registrator = MethodStruct.new(:email, :name) do
39
+ class Registrator < MethodStruct.new(:email, :name)
40
40
  def call
41
41
  create_user!
42
42
  send_email!
@@ -66,7 +66,7 @@ end
66
66
  You can also specify a different method name like so:
67
67
 
68
68
  ```ruby
69
- Registrator = MethodStruct.new(:email, :name, :method_name => :register) do
69
+ class Registrator < MethodStruct.new(:email, :name, :method_name => :register)
70
70
  def register
71
71
  # ...
72
72
  end
@@ -90,6 +90,19 @@ MethodStruct::Defaults.set(
90
90
  )
91
91
  ```
92
92
 
93
+ Method struct currently also supports a `do` syntax, but it is discouraged (and may get depracated)
94
+ due to odd constant scoping. Example:
95
+
96
+ ```ruby
97
+ Registrator = MethodStruct.new(:email, :name) do
98
+ REGISTRATION_PATH = "/register" # this is now a top-level constant
99
+
100
+ def call
101
+ ...
102
+ end
103
+ end
104
+ ```
105
+
93
106
  ## Contributing
94
107
 
95
108
  1. Fork it
@@ -32,6 +32,10 @@ module MethodStruct
32
32
  define_method(:[]) do |*args|
33
33
  send(method_name, *args)
34
34
  end
35
+
36
+ define_method(:to_proc) do
37
+ Proc.new { |*args| send(method_name, *args) }
38
+ end
35
39
  end
36
40
 
37
41
  define_method(:[]) do |&blk|
@@ -1,3 +1,3 @@
1
1
  module MethodStruct
2
- VERSION = "0.2.1"
2
+ VERSION = "0.2.2"
3
3
  end
@@ -20,5 +20,5 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.3"
22
22
  spec.add_development_dependency "rake"
23
- spec.add_development_dependency "rspec"
23
+ spec.add_development_dependency "rspec", "~> 2.14.1"
24
24
  end
@@ -176,6 +176,18 @@ describe MethodStruct do
176
176
  end
177
177
  end
178
178
 
179
+ describe "#to_proc" do
180
+ it "is possible to pass one as a block argument" do
181
+ struct = MethodStruct.new(:x) do
182
+ def call
183
+ x.odd?
184
+ end
185
+ end
186
+
187
+ expect([1, 2, 3].select(&struct)).to eq([1,3])
188
+ end
189
+ end
190
+
179
191
  context "when arguments are hashes" do
180
192
  let(:argument1) { { :things => true } }
181
193
  let(:argument2) { { :stuff => true } }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: method_struct
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paweł Obrok
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-23 00:00:00.000000000 Z
11
+ date: 2014-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 2.14.1
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 2.14.1
55
55
  description: Facilitates extracting methods into separate objects
56
56
  email:
57
57
  - pawel.obrok@gmail.com