sixarm_ruby_hash_more 1.3.0 → 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7390c6cdb9e522c41313742e04a29c0f31451e31
4
+ data.tar.gz: 054e3d6118f0475e0e114db70842f33cac73a334
5
+ SHA512:
6
+ metadata.gz: 0995d4d970e2615408ee0e96f9202c6319f4cc5a2b6aa6b4e9c63d95b7ea9b76fbc0b7e0586348b30c54a2e3ccf2b0165ab3999aea1f9237380384131cdbfedf
7
+ data.tar.gz: 60f98356d21a6b0ccca49dc7e60aa3ac0afdc7fbc5094dd35b2c41a08c3d4811b2cf937a29ac185eff135d5d80114cbfe7cdfee5b9632e72fc1a046682afbf6b
checksums.yaml.gz.sig ADDED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/Rakefile CHANGED
@@ -1,8 +1,10 @@
1
1
  # -*- coding: utf-8 -*-
2
- require 'rake'
3
- require 'rake/testtask'
2
+ require "rake"
3
+ require "rake/testtask"
4
4
 
5
5
  Rake::TestTask.new(:test) do |t|
6
- t.libs << 'lib' << 'test'
7
- t.pattern = 'test/*.rb'
6
+ t.libs.push("lib", "test")
7
+ t.pattern = "test/**/*.rb"
8
8
  end
9
+
10
+ task :default => [:test]
@@ -3,15 +3,4 @@
3
3
  Please see README
4
4
  =end
5
5
 
6
-
7
- class HashMore < Hash
8
-
9
- def initialize
10
- super{|h,k| h[k] = HashMore.new }
11
- end
12
-
13
- def +(x)
14
- x
15
- end
16
-
17
- end
6
+ require_relative "sixarm_ruby_hash_more/hash_more"
@@ -0,0 +1,16 @@
1
+ # -*- coding: utf-8 -*-
2
+ =begin rdoc
3
+ HashMore is a recursive hash.
4
+ =end
5
+
6
+ class HashMore < Hash
7
+
8
+ def initialize
9
+ super{|h,k| h[k] = HashMore.new }
10
+ end
11
+
12
+ def +(x)
13
+ x
14
+ end
15
+
16
+ end
@@ -1,41 +1,12 @@
1
1
  # -*- coding: utf-8 -*-
2
- require 'minitest/autorun'
3
- require 'simplecov'
2
+ require "minitest/autorun"
3
+ require "coveralls"
4
+ require "simplecov"
5
+ Coveralls.wear!
6
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
7
+ SimpleCov::Formatter::HTMLFormatter,
8
+ Coveralls::SimpleCov::Formatter
9
+ ]
4
10
  SimpleCov.start
5
- require 'sixarm_ruby_hash_more'
11
+ require "sixarm_ruby_hash_more"
6
12
 
7
- describe HashMore do
8
-
9
- before do
10
- @h = HashMore.new
11
- end
12
-
13
- describe ".new" do
14
-
15
- it "is a blank hash" do
16
- @h.must_equal Hash.new
17
- end
18
-
19
- end
20
-
21
- describe "=" do
22
-
23
- it "=" do
24
- @h[:a][:b][:c] = 'hello'
25
- @h[:a][:b][:c].must_equal 'hello'
26
- end
27
-
28
- end
29
-
30
- describe "+" do
31
-
32
- it "+=" do
33
- @h[:a][:b][:c] += 3
34
- @h[:a][:b][:c].must_equal 3
35
- @h[:a][:b][:c] += 3
36
- @h[:a][:b][:c].must_equal 6
37
- end
38
-
39
- end
40
-
41
- end
@@ -0,0 +1,38 @@
1
+ # -*- coding: utf-8 -*-
2
+ require "sixarm_ruby_hash_more_test"
3
+
4
+ describe HashMore do
5
+
6
+ before do
7
+ @h = HashMore.new
8
+ end
9
+
10
+ describe ".new" do
11
+
12
+ it "is a blank hash" do
13
+ @h.must_equal Hash.new
14
+ end
15
+
16
+ end
17
+
18
+ describe "=" do
19
+
20
+ it "=" do
21
+ @h[:a][:b][:c] = 'hello'
22
+ @h[:a][:b][:c].must_equal 'hello'
23
+ end
24
+
25
+ end
26
+
27
+ describe "+" do
28
+
29
+ it "+=" do
30
+ @h[:a][:b][:c] += 3
31
+ @h[:a][:b][:c].must_equal 3
32
+ @h[:a][:b][:c] += 3
33
+ @h[:a][:b][:c].must_equal 6
34
+ end
35
+
36
+ end
37
+
38
+ end
metadata CHANGED
@@ -1,78 +1,171 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sixarm_ruby_hash_more
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
5
- prerelease:
4
+ version: 1.3.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - SixArm
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain:
12
- - !binary |-
13
- LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCRENDQW0yZ0F3SUJB
14
- Z0lKQUtQd0VFVFU1YkhvTUEwR0NTcUdTSWIzRFFFQkJRVUFNR0F4Q3pBSkJn
15
- TlYKQkFZVEFsVlRNUk13RVFZRFZRUUlFd3BEWVd4cFptOXlibWxoTVJZd0ZB
16
- WURWUVFIRXcxVFlXNGdSbkpoYm1OcApjMk52TVE4d0RRWURWUVFLRXdaVGFY
17
- aEJjbTB4RXpBUkJnTlZCQU1UQ25OcGVHRnliUzVqYjIwd0hoY05NVEF4Ck1q
18
- RXpNak15TnpFeldoY05NVE13T1RBNE1qTXlOekV6V2pCZ01Rc3dDUVlEVlFR
19
- R0V3SlZVekVUTUJFR0ExVUUKQ0JNS1EyRnNhV1p2Y201cFlURVdNQlFHQTFV
20
- RUJ4TU5VMkZ1SUVaeVlXNWphWE5qYnpFUE1BMEdBMVVFQ2hNRwpVMmw0UVhK
21
- dE1STXdFUVlEVlFRREV3cHphWGhoY20wdVkyOXRNSUdmTUEwR0NTcUdTSWIz
22
- RFFFQkFRVUFBNEdOCkFEQ0JpUUtCZ1FDOTRtRDlKRHdCc3Vuc09JMFZSM0NY
23
- WGJPV2c5Y1dhV2Npd0Z5Sk5GaU03QTlJOEtQTGZYVXcKUUM0Y3pVZTVadUc0
24
- V0h2aW5yV2hrckNLKzFkV0Jxb0VDbHhkRi9Gb0tPNWErdG9uR0Nqam1meTgx
25
- Sm1Gamp5eAplVHNqc0h5dncrUWlrOWtwZjlhajYrcG5rTnJWc3dnTkhWZWEy
26
- bzl5YWJiRWlTNlZTZUpXb1FJREFRQUJvNEhGCk1JSENNQjBHQTFVZERnUVdC
27
- QlF6UEp0cW1TZ2M1M2VETjdhU3pEUXdyOVRBTERDQmtnWURWUjBqQklHS01J
28
- R0gKZ0JRelBKdHFtU2djNTNlRE43YVN6RFF3cjlUQUxLRmtwR0l3WURFTE1B
29
- a0dBMVVFQmhNQ1ZWTXhFekFSQmdOVgpCQWdUQ2tOaGJHbG1iM0p1YVdFeEZq
30
- QVVCZ05WQkFjVERWTmhiaUJHY21GdVkybHpZMjh4RHpBTkJnTlZCQW9UCkJs
31
- TnBlRUZ5YlRFVE1CRUdBMVVFQXhNS2MybDRZWEp0TG1OdmJZSUpBS1B3RUVU
32
- VTViSG9NQXdHQTFVZEV3UUYKTUFNQkFmOHdEUVlKS29aSWh2Y05BUUVGQlFB
33
- RGdZRUFvb0VleFAvb1BhbTFUUDcxU3l1aHhNYit1VHJaYlNRZQpqVkIrRXhS
34
- d1dhZEd3YU5QVUE1NmQzOXF3YXZ3UCtpdSszSnBlb25OTVZ2YldYRjVuYUNY
35
- L2RORkllUkVIekVSClpEUlFZTXFydTlURU1uYTZIRDl6cGNzdEY3dndUaEdv
36
- dmxPUSszWTZwbFE0bk16aXBYY1o5VEhxczY1UElMMHEKZWFid3BDYkFvcG89
37
- Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
38
- date: 2012-03-17 00:00:00.000000000 Z
39
- dependencies: []
40
- description:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ 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
45
+ n+ES/gQPOnvmVkLDGw==
46
+ -----END CERTIFICATE-----
47
+ date: 2015-07-19 00:00:00.000000000 Z
48
+ dependencies:
49
+ - !ruby/object:Gem::Dependency
50
+ name: minitest
51
+ requirement: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 5.7.0
56
+ - - "<"
57
+ - !ruby/object:Gem::Version
58
+ version: '6'
59
+ type: :development
60
+ prerelease: false
61
+ version_requirements: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: 5.7.0
66
+ - - "<"
67
+ - !ruby/object:Gem::Version
68
+ version: '6'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">"
74
+ - !ruby/object:Gem::Version
75
+ version: 10.4.2
76
+ - - "<"
77
+ - !ruby/object:Gem::Version
78
+ version: '11'
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">"
84
+ - !ruby/object:Gem::Version
85
+ version: 10.4.2
86
+ - - "<"
87
+ - !ruby/object:Gem::Version
88
+ version: '11'
89
+ - !ruby/object:Gem::Dependency
90
+ name: simplecov
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 0.10.0
96
+ - - "<"
97
+ - !ruby/object:Gem::Version
98
+ version: '2'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ version: 0.10.0
106
+ - - "<"
107
+ - !ruby/object:Gem::Version
108
+ version: '2'
109
+ - !ruby/object:Gem::Dependency
110
+ name: coveralls
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: 0.8.2
116
+ - - "<"
117
+ - !ruby/object:Gem::Version
118
+ version: '2'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: 0.8.2
126
+ - - "<"
127
+ - !ruby/object:Gem::Version
128
+ version: '2'
129
+ description: HashMore class to create a recursive hash
41
130
  email: sixarm@sixarm.com
42
131
  executables: []
43
132
  extensions: []
44
133
  extra_rdoc_files: []
45
134
  files:
46
- - .gemtest
47
135
  - Rakefile
48
- - README.md
49
- - VERSION
50
136
  - lib/sixarm_ruby_hash_more.rb
137
+ - lib/sixarm_ruby_hash_more/hash_more.rb
51
138
  - test/sixarm_ruby_hash_more_test.rb
139
+ - test/sixarm_ruby_hash_more_test/hash_more_test.rb
52
140
  homepage: http://sixarm.com/
53
- licenses: []
141
+ licenses:
142
+ - BSD
143
+ - GPL
144
+ - MIT
145
+ - PAL
146
+ - Various
147
+ metadata: {}
54
148
  post_install_message:
55
149
  rdoc_options: []
56
150
  require_paths:
57
151
  - lib
58
152
  required_ruby_version: !ruby/object:Gem::Requirement
59
- none: false
60
153
  requirements:
61
- - - ! '>='
154
+ - - ">="
62
155
  - !ruby/object:Gem::Version
63
156
  version: '0'
64
157
  required_rubygems_version: !ruby/object:Gem::Requirement
65
- none: false
66
158
  requirements:
67
- - - ! '>='
159
+ - - ">="
68
160
  - !ruby/object:Gem::Version
69
161
  version: '0'
70
162
  requirements: []
71
163
  rubyforge_project:
72
- rubygems_version: 1.8.11
164
+ rubygems_version: 2.4.8
73
165
  signing_key:
74
- specification_version: 3
75
- summary: ! 'SixArm Ruby Gem: HashMore class to create a recursive hash'
166
+ specification_version: 4
167
+ summary: SixArm.com » Ruby » HashMore
76
168
  test_files:
77
169
  - test/sixarm_ruby_hash_more_test.rb
170
+ - test/sixarm_ruby_hash_more_test/hash_more_test.rb
78
171
  has_rdoc: true
metadata.gz.sig CHANGED
Binary file
data/.gemtest DELETED
File without changes
data/README.md DELETED
@@ -1,121 +0,0 @@
1
- # SixArm.com » Ruby » <br> HashMore class for dynamic hashes
2
-
3
- * Docs: <http://sixarm.com/sixarm_ruby_hash_more/doc>
4
- * Repo: <http://github.com/sixarm/sixarm_ruby_hash_more>
5
- * Email: Joel Parker Henderson, <joel@sixarm.com>
6
-
7
-
8
- ## Introduction
9
-
10
- HashMore is a hash of hashes of hashes and so on recursively, enabling arbitrarily access (and assignment of values) to specific elements of a (multi-dimensional) hash, whether the element already exists or not.
11
-
12
- For docs go to <http://sixarm.com/sixarm_ruby_hash_more/doc>
13
-
14
- Want to help? We're happy to get pull requests.
15
-
16
-
17
- ## Quickstart
18
-
19
- Install:
20
-
21
- gem install sixarm_ruby_hash_more
22
-
23
- Bundler:
24
-
25
- gem "sixarm_ruby_hash_more", "=1.3.0"
26
-
27
- Require:
28
-
29
- require "sixarm_ruby_hash_more"
30
-
31
-
32
- ## High Security (Optional)
33
-
34
- To enable high security for all our gems:
35
-
36
- wget http://sixarm.com/sixarm.pem
37
- gem cert --add sixarm.pem
38
- gem sources --add http://sixarm.com
39
-
40
- To install with high security:
41
-
42
- gem install sixarm_ruby_ --test --trust-policy HighSecurity
43
-
44
-
45
- ## Details
46
-
47
- Ruby's built-in Hash class will raise an error if code attempts to access an element which doesn't exist; HashMore will create the necessary elements and then execute the access.
48
-
49
- Additionally, using the += operator to assign a numeric value to an element
50
-
51
-
52
- ## Examples
53
-
54
- hash = HashMore.new
55
- hash["red"]["apple"] = true
56
- hash["red"]["dress"] = true
57
- hash["red"]["truck"] = true
58
- hash["red"] => {"apple"=>true, "dress"=>true, "truck"=>true}
59
-
60
-
61
- ## Counting and Totals
62
-
63
- This class is also useful for building aggregate data about a set of similar objects, such as how many employees are in each department of each division of a company or total tax and sale amounts for a set of invoices by customer by year.
64
-
65
- Counting example:
66
-
67
- h = HashMore.new
68
- employees = Employee.all
69
- for e in employees
70
- h[e.division][e.department]+=1
71
- end
72
-
73
- h['sales']['east coast] => 28
74
- h['sales']['west coast] => 23
75
-
76
- Totals example:
77
-
78
- h = HashMore.new
79
- invoices = Invoices.all
80
-
81
- for i in invoices
82
- h[i.customer.name][i.sale_date.year]['tax'] += i.tax_amount
83
- h[i.customer.name][i.sale_date.year]['sale'] += i.sale_amount
84
- end
85
-
86
- h['Acme Corp']['2008']['tax'] => 12039.12
87
- h['Acme Corp']['2009']['sale'] => 102649
88
-
89
-
90
- ## Changes
91
-
92
- * 2012-03-17 1.3.0 Upgrade for Ruby 1.9.3, minitest/spec, and improved docs.
93
-
94
-
95
- ## License
96
-
97
- You may choose any of these open source licenses:
98
-
99
- * Apache License
100
- * BSD License
101
- * CreativeCommons License, Non-commercial Share Alike
102
- * GNU General Public License Version 2 (GPL 2)
103
- * GNU Lesser General Public License (LGPL)
104
- * MIT License
105
- * Perl Artistic License
106
- * Ruby License
107
-
108
- The software is provided "as is", without warranty of any kind,
109
- express or implied, including but not limited to the warranties of
110
- merchantability, fitness for a particular purpose and noninfringement.
111
-
112
- In no event shall the authors or copyright holders be liable for any
113
- claim, damages or other liability, whether in an action of contract,
114
- tort or otherwise, arising from, out of or in connection with the
115
- software or the use or other dealings in the software.
116
-
117
- This license is for the included software that is created by SixArm;
118
- some of the included software may have its own licenses, copyrights,
119
- authors, etc. and these do take precedence over the SixArm license.
120
-
121
- Copyright (c) 2005-2012 Joel Parker Henderson
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 1.2.8