summarily 0.0.1 → 0.0.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: 37e801b452a2d2952786393339d8cfc35fe68f5e
4
- data.tar.gz: 2ad0f1e848c57396d4b64ff8c11f35088096bb7a
3
+ metadata.gz: c0aa188dcb5de88cfce998b016a61c2b52953d77
4
+ data.tar.gz: d58a97a134d2303e745c24912b4438ddf47b36f5
5
5
  SHA512:
6
- metadata.gz: 85a61641ab26a7c6d8a0aa6e0d8374fafd74478fa192882ce15d20dbe3c85c318414348faf5d104c5481042f68101c5bdc81108d5a4581fcf4172064da8fa845
7
- data.tar.gz: dba53b9c9dc9e7d85e6fb0769a15bf5c7839d987749699610eb00661e83a9b62c51690ffaabf82e71e7fc650dbebc6a1a02b27e754e35e6ea2a734d94b802af3
6
+ metadata.gz: cd0e85fb3afcccf53d84b17f3fea8bca066878d3ab45cdc37a818b602cabc6d4f7fb8fab6d5d670be6ecf0d77ee12249fa690390b0a097f36d6e38d3921fdaa7
7
+ data.tar.gz: 81ed0f9718c1e8cce5adb99880e6838a5e2abb7464449d1686624201955d61d65479dd375bd2dfff8529d9365212690c0f172faa11021dfb643c00aad3414662
@@ -5,6 +5,12 @@ module Summarily
5
5
  strategy = MergeStrategy.new
6
6
  yield strategy
7
7
 
8
+ attr_writer :num_samples
9
+
10
+ define_method :num_samples do
11
+ @num_samples ||= 1
12
+ end
13
+
8
14
  define_method :merge do |other|
9
15
  merged = {}
10
16
 
@@ -14,8 +20,10 @@ module Summarily
14
20
  other.send(attr)
15
21
  )
16
22
  end
23
+ merged_instance = self.class.new(merged)
24
+ merged_instance.num_samples = self.num_samples + other.num_samples
17
25
 
18
- self.class.new(merged)
26
+ merged_instance
19
27
  end
20
28
  end
21
29
  end
@@ -1,3 +1,3 @@
1
1
  module Summarily
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -24,8 +24,16 @@ describe Summarily::ClassMethods do
24
24
  let(:a) { Summable.new(total: 1) }
25
25
  let(:b) { Summable.new(total: 2) }
26
26
 
27
+ let(:merged) { a.merge(b) }
28
+
27
29
  it 'defines a merge strategy for an object with attributes' do
28
- expect(a.merge(b)).to eq(Summable.new(total: 3))
30
+ expect(merged).to eq(Summable.new(total: 3))
31
+ end
32
+
33
+ it 'defines a num_samples for an object' do
34
+ expect(a.num_samples).to eq 1
35
+ expect(b.num_samples).to eq 1
36
+ expect(merged.num_samples).to eq 2
29
37
  end
30
38
  end
31
39
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: summarily
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Gillooly
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-07 00:00:00.000000000 Z
11
+ date: 2015-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -105,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
105
  version: '0'
106
106
  requirements: []
107
107
  rubyforge_project:
108
- rubygems_version: 2.2.0
108
+ rubygems_version: 2.2.2
109
109
  signing_key:
110
110
  specification_version: 4
111
111
  summary: DSL for merging stats objects