method_struct 0.1.1 → 0.1.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: c812de26bc02d8f041a9c15e2ff91538acc2fc18
4
- data.tar.gz: 5104e3c88e016e420b4569d365355624159716b7
3
+ metadata.gz: bf459f6ff17c9357b93c8f2fd12103553754c5a9
4
+ data.tar.gz: 074b41ab7bcb1d0daa48d58d7d221f695d9d306e
5
5
  SHA512:
6
- metadata.gz: 85d17a5dad6436da9f2036fb4382bd998a7a9910d6c37dac5705a710af9bbc251dc0aaffa5f8843dc955ca222383ac1512c8643c2c39962afa93b59a7de3c14b
7
- data.tar.gz: 0fe8d4fa04a9edaf7191b00c42c95ee92c0c100abdfbd0575a3121456b6a0ef94a921bbb82dfb57c1f268afddbaea7a312cac474ec0fdf2628247a819b7a9b76
6
+ metadata.gz: 4bcf42d73fc1c079f13b6ed44e881c6d03d54f4d34ff270da2959c6a9498614e86520dc2a87ea3dd48d283ab9b5061c47d2e4d5a9333ab72393e371a87c49d7f
7
+ data.tar.gz: 3dfc15a76521de4d6417d9c9510edcd369fc77c3e9f59ebe7fe7b18f8de441cc0aa1e60ceefbff5190f735b8360d5d1025457494f0d166331ab2977fdbe740b8
data/lib/method_struct.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require "method_struct/version"
2
2
 
3
3
  module MethodStruct
4
- def self.new(*fields)
4
+ def self.new(*fields, &block)
5
5
  if fields.last.is_a?(Hash)
6
6
  method_name = fields.last[:method_name]
7
7
  fields = fields.take(fields.size - 1)
@@ -41,6 +41,8 @@ module MethodStruct
41
41
  fields.map { |field| send(field).hash }.inject(&:^)
42
42
  end
43
43
 
44
+ class_eval(&block) if block_given?
45
+
44
46
  protected
45
47
  fields.each do |field|
46
48
  attr_reader(field)
@@ -1,3 +1,3 @@
1
1
  module MethodStruct
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -16,8 +16,6 @@ describe MethodStruct do
16
16
  end
17
17
  end
18
18
 
19
- before {}
20
-
21
19
  it "creates a class method which calls the declared instance method with the given context" do
22
20
  verifier.should_receive(:poke).with(argument1, argument2)
23
21
  create_poker(verifier).call(argument1, argument2)
@@ -41,6 +39,16 @@ describe MethodStruct do
41
39
  poker.something(argument1, argument2)
42
40
  end
43
41
 
42
+ it "allows for additional methods defined with a block" do
43
+ klass = MethodStruct.new(:x) do
44
+ def something
45
+ :value
46
+ end
47
+ end
48
+
49
+ expect(klass.new(:y).something).to eq(:value)
50
+ end
51
+
44
52
  describe "equality" do
45
53
  let(:struct) { MethodStruct.new(:a, :b) }
46
54
 
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.1.1
4
+ version: 0.1.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-03-19 00:00:00.000000000 Z
11
+ date: 2014-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler