hstruct 0.3.0 → 0.4.0
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.
- data/CHANGELOG.md +5 -0
- data/hstruct.gemspec +4 -5
- data/lib/hstruct.rb +1 -1
- data/test/lib/hstruct_spec.rb +34 -0
- data/test/test_helper.rb +3 -0
- metadata +19 -36
- data/Guardfile +0 -5
- data/spec/lib/hstruct_spec.rb +0 -28
- data/spec/spec_helper.rb +0 -17
data/CHANGELOG.md
CHANGED
data/hstruct.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "hstruct"
|
7
|
-
spec.version = "0.
|
7
|
+
spec.version = "0.4.0"
|
8
8
|
spec.authors = ["Gerhard Lazu"]
|
9
9
|
spec.email = ["gerhard@lazu.co.uk"]
|
10
10
|
spec.description = %q{Struct with the convenience of instantiating from a Hash}
|
@@ -17,10 +17,9 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
-
spec.add_development_dependency "benchmark-ips"
|
20
|
+
spec.add_development_dependency "benchmark-ips", "~> 1.2"
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
|
-
spec.add_development_dependency "
|
23
|
-
spec.add_development_dependency "
|
24
|
-
spec.add_development_dependency "rspec"
|
22
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
23
|
+
spec.add_development_dependency "minitest", "~> 5.0"
|
25
24
|
spec.add_development_dependency "pry"
|
26
25
|
end
|
data/lib/hstruct.rb
CHANGED
@@ -0,0 +1,34 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
require 'hstruct'
|
4
|
+
|
5
|
+
Person = HStruct.new(:first_name, :last_name)
|
6
|
+
|
7
|
+
describe "Person defined from an HStruct" do
|
8
|
+
it "is a Struct" do
|
9
|
+
Person.ancestors.must_include Struct
|
10
|
+
end
|
11
|
+
|
12
|
+
it "can be instantiated with no arguments" do
|
13
|
+
Person.new.must_be_instance_of Person
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "instantiated from a hash" do
|
17
|
+
let(:person) { Person.new(:first_name => "Jimmy") }
|
18
|
+
|
19
|
+
it "first name" do
|
20
|
+
person.first_name.must_equal "Jimmy"
|
21
|
+
end
|
22
|
+
|
23
|
+
it "last name" do
|
24
|
+
person.last_name.must_equal nil
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "when converting back to a hash" do
|
28
|
+
it "includes empty values" do
|
29
|
+
person.to_hash.must_equal Hash[:first_name => "Jimmy", :last_name => nil]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
data/test/test_helper.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hstruct
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,24 +9,24 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: benchmark-ips
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
21
|
+
version: '1.2'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
29
|
+
version: '1.2'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: bundler
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -43,54 +43,38 @@ dependencies:
|
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: '1.3'
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: guard-rspec
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ! '>='
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '0'
|
54
|
-
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ! '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
46
|
- !ruby/object:Gem::Dependency
|
63
47
|
name: rake
|
64
48
|
requirement: !ruby/object:Gem::Requirement
|
65
49
|
none: false
|
66
50
|
requirements:
|
67
|
-
- -
|
51
|
+
- - ~>
|
68
52
|
- !ruby/object:Gem::Version
|
69
|
-
version: '0'
|
53
|
+
version: '10.0'
|
70
54
|
type: :development
|
71
55
|
prerelease: false
|
72
56
|
version_requirements: !ruby/object:Gem::Requirement
|
73
57
|
none: false
|
74
58
|
requirements:
|
75
|
-
- -
|
59
|
+
- - ~>
|
76
60
|
- !ruby/object:Gem::Version
|
77
|
-
version: '0'
|
61
|
+
version: '10.0'
|
78
62
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
63
|
+
name: minitest
|
80
64
|
requirement: !ruby/object:Gem::Requirement
|
81
65
|
none: false
|
82
66
|
requirements:
|
83
|
-
- -
|
67
|
+
- - ~>
|
84
68
|
- !ruby/object:Gem::Version
|
85
|
-
version: '0'
|
69
|
+
version: '5.0'
|
86
70
|
type: :development
|
87
71
|
prerelease: false
|
88
72
|
version_requirements: !ruby/object:Gem::Requirement
|
89
73
|
none: false
|
90
74
|
requirements:
|
91
|
-
- -
|
75
|
+
- - ~>
|
92
76
|
- !ruby/object:Gem::Version
|
93
|
-
version: '0'
|
77
|
+
version: '5.0'
|
94
78
|
- !ruby/object:Gem::Dependency
|
95
79
|
name: pry
|
96
80
|
requirement: !ruby/object:Gem::Requirement
|
@@ -118,15 +102,14 @@ files:
|
|
118
102
|
- .rspec
|
119
103
|
- CHANGELOG.md
|
120
104
|
- Gemfile
|
121
|
-
- Guardfile
|
122
105
|
- LICENSE.txt
|
123
106
|
- README.md
|
124
107
|
- Rakefile
|
125
108
|
- benchmarks/hstruct.rb
|
126
109
|
- hstruct.gemspec
|
127
110
|
- lib/hstruct.rb
|
128
|
-
-
|
129
|
-
-
|
111
|
+
- test/lib/hstruct_spec.rb
|
112
|
+
- test/test_helper.rb
|
130
113
|
homepage: https://github.com/cambridge-healthcare/hstruct
|
131
114
|
licenses:
|
132
115
|
- MIT
|
@@ -154,6 +137,6 @@ specification_version: 3
|
|
154
137
|
summary: When you care about speed and convenience, this is what you've been looking
|
155
138
|
for
|
156
139
|
test_files:
|
157
|
-
-
|
158
|
-
-
|
140
|
+
- test/lib/hstruct_spec.rb
|
141
|
+
- test/test_helper.rb
|
159
142
|
has_rdoc:
|
data/Guardfile
DELETED
data/spec/lib/hstruct_spec.rb
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
require_relative '../spec_helper'
|
2
|
-
|
3
|
-
require 'hstruct'
|
4
|
-
|
5
|
-
Person = HStruct.new(:first_name, :last_name, :dob)
|
6
|
-
|
7
|
-
describe HStruct do
|
8
|
-
it "is a Struct" do
|
9
|
-
Person.ancestors.should include Struct
|
10
|
-
end
|
11
|
-
|
12
|
-
it "can be instantiated with no arguments" do
|
13
|
-
expect { Person.new }.to_not raise_error(ArgumentError)
|
14
|
-
end
|
15
|
-
|
16
|
-
it "can be instantiated from hash" do
|
17
|
-
person = Person.new(:first_name => "Jimmy")
|
18
|
-
person.first_name.should eql "Jimmy"
|
19
|
-
person.last_name.should be_nil
|
20
|
-
end
|
21
|
-
|
22
|
-
it "when converting back to a hash, leaves empty values out" do
|
23
|
-
person = Person.new(:first_name => "Jimmy")
|
24
|
-
person.last_name = "Kiel"
|
25
|
-
person.to_hash.should eql Hash[:first_name => "Jimmy", :last_name => "Kiel"]
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
data/spec/spec_helper.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
# This file was generated by the `rspec --init` command. Conventionally, all
|
2
|
-
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
3
|
-
# Require this file using `require "spec_helper"` to ensure that it is only
|
4
|
-
# loaded once.
|
5
|
-
#
|
6
|
-
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
7
|
-
RSpec.configure do |config|
|
8
|
-
config.treat_symbols_as_metadata_keys_with_true_values = true
|
9
|
-
config.run_all_when_everything_filtered = true
|
10
|
-
config.filter_run :focus
|
11
|
-
|
12
|
-
# Run specs in random order to surface order dependencies. If you find an
|
13
|
-
# order dependency and want to debug it, you can fix the order by providing
|
14
|
-
# the seed, which is printed after each run.
|
15
|
-
# --seed 1234
|
16
|
-
config.order = 'random'
|
17
|
-
end
|