method_struct 0.1.1 → 0.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.
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