virtus 0.5.2 → 0.5.3
Sign up to get free protection for your applications and to get access to all the features.
- data/.rspec +2 -0
- data/.travis.yml +3 -0
- data/Changelog.md +9 -0
- data/Gemfile +2 -22
- data/Gemfile.devtools +44 -0
- data/README.md +78 -1
- data/Rakefile +3 -4
- data/config/flay.yml +2 -2
- data/config/mutant.yml +3 -0
- data/lib/virtus.rb +2 -1
- data/lib/virtus/attribute.rb +1 -1
- data/lib/virtus/attribute/array.rb +1 -0
- data/lib/virtus/attribute/class.rb +1 -1
- data/lib/virtus/attribute/hash.rb +84 -0
- data/lib/virtus/attribute/set.rb +1 -0
- data/lib/virtus/coercion/string.rb +6 -2
- data/lib/virtus/instance_methods.rb +8 -1
- data/lib/virtus/version.rb +1 -1
- data/spec/integration/default_values_spec.rb +22 -2
- data/spec/integration/hash_attributes_coercion_spec.rb +50 -0
- data/spec/shared/freeze_method_behavior.rb +1 -1
- data/spec/spec_helper.rb +6 -14
- data/spec/unit/virtus/attribute/hash/class_methods/merge_options_spec.rb +33 -0
- data/spec/unit/virtus/attribute/hash/coerce_spec.rb +20 -0
- data/spec/unit/virtus/attribute/hash/key_type_spec.rb +10 -0
- data/spec/unit/virtus/attribute/hash/value_type_spec.rb +10 -0
- data/spec/unit/virtus/coercion/string/class_methods/to_float_spec.rb +12 -0
- data/spec/unit/virtus/coercion/string/class_methods/to_integer_spec.rb +12 -0
- data/spec/unit/virtus/extensions/attribute_spec.rb +26 -0
- data/spec/unit/virtus/instance_methods/attributes_spec.rb +3 -1
- data/spec/unit/virtus/instance_methods/initialize_spec.rb +11 -5
- data/spec/unit/virtus/options/accept_options_spec.rb +1 -1
- data/spec/unit/virtus/options/accepted_options_spec.rb +1 -1
- data/spec/unit/virtus/options/options_spec.rb +1 -1
- data/spec/unit/virtus/type_lookup/determine_type_spec.rb +1 -1
- data/virtus.gemspec +4 -4
- metadata +76 -100
- data/lib/virtus/support/descendants_tracker.rb +0 -44
- data/spec/rcov.opts +0 -7
- data/spec/unit/virtus/attribute/object/class_methods/descendants_spec.rb +0 -22
- data/spec/unit/virtus/descendants_tracker/add_descendant_spec.rb +0 -24
- data/spec/unit/virtus/descendants_tracker/descendants_spec.rb +0 -22
- data/tasks/metrics/ci.rake +0 -7
- data/tasks/metrics/flay.rake +0 -41
- data/tasks/metrics/flog.rake +0 -43
- data/tasks/metrics/heckle.rake +0 -208
- data/tasks/metrics/metric_fu.rake +0 -29
- data/tasks/metrics/reek.rake +0 -9
- data/tasks/metrics/roodi.rake +0 -15
- data/tasks/metrics/yardstick.rake +0 -23
- data/tasks/spec.rake +0 -45
- data/tasks/yard.rake +0 -9
data/spec/spec_helper.rb
CHANGED
@@ -1,14 +1,13 @@
|
|
1
|
-
|
2
|
-
require 'rspec' # try for RSpec 2
|
3
|
-
rescue LoadError
|
4
|
-
require 'spec' # try for RSpec 1
|
5
|
-
RSpec = Spec::Runner
|
6
|
-
end
|
7
|
-
|
1
|
+
require 'rspec'
|
8
2
|
require 'virtus'
|
9
3
|
|
10
4
|
ENV['TZ'] = 'UTC'
|
11
5
|
|
6
|
+
if ENV['COVERAGE']
|
7
|
+
require 'simplecov'
|
8
|
+
SimpleCov.start
|
9
|
+
end
|
10
|
+
|
12
11
|
# require spec support files and shared behavior
|
13
12
|
Dir[File.expand_path('../shared/**/*.rb', __FILE__)].each { |file| require file }
|
14
13
|
|
@@ -35,10 +34,3 @@ RSpec.configure do |config|
|
|
35
34
|
end
|
36
35
|
|
37
36
|
end
|
38
|
-
|
39
|
-
# change the heckle timeout to be 5 seconds
|
40
|
-
if defined?(::Heckle)
|
41
|
-
class ::Heckle
|
42
|
-
@@timeout = 5
|
43
|
-
end
|
44
|
-
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Virtus::Attribute::Hash, '.merge_options' do
|
4
|
+
subject { described_class.merge_options(type, options) }
|
5
|
+
|
6
|
+
let(:type) { { String => Integer } }
|
7
|
+
let(:options) { { :opt => 'val' } }
|
8
|
+
|
9
|
+
context 'when `type` responds to `size`' do
|
10
|
+
context 'when size is == 1' do
|
11
|
+
specify { subject[:opt].should == 'val' }
|
12
|
+
specify { subject[:key_type].should == String }
|
13
|
+
specify { subject[:value_type].should == Integer }
|
14
|
+
end
|
15
|
+
|
16
|
+
context 'when size is > 1' do
|
17
|
+
let(:type) { { :opt1 => 'val1', :opt2 => 'val2' } }
|
18
|
+
|
19
|
+
it 'should raise ArgumentError' do
|
20
|
+
message = "more than one [key => value] pair in `#{type.inspect}`"
|
21
|
+
expect { subject }.to raise_error(ArgumentError, message)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'when `type` does not respond to `size`' do
|
27
|
+
before do
|
28
|
+
type.should_receive(:respond_to?).with(:size).and_return(false)
|
29
|
+
end
|
30
|
+
|
31
|
+
it { should be_eql(options) }
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Virtus::Attribute::Hash, '#coerce' do
|
4
|
+
subject { object.coerce(input_value) }
|
5
|
+
|
6
|
+
let(:options) { { :key_type => String, :value_type => Float } }
|
7
|
+
let(:object) { Virtus::Attribute::Hash.new('stuff', options) }
|
8
|
+
|
9
|
+
context 'respond to `inject`' do
|
10
|
+
let(:input_value) { { :one => '1', 'two' => 2 } }
|
11
|
+
|
12
|
+
it { should eql('one' => 1.0, 'two' => 2.0) }
|
13
|
+
end
|
14
|
+
|
15
|
+
context 'does not respond to `inject`' do
|
16
|
+
let(:input_value) { :symbol }
|
17
|
+
|
18
|
+
it { should be(:symbol) }
|
19
|
+
end
|
20
|
+
end
|
@@ -27,6 +27,11 @@ describe Virtus::Coercion::String, '.to_float' do
|
|
27
27
|
'.1e-1' => 0.01,
|
28
28
|
'.1E+1' => 1.0,
|
29
29
|
'.1E-1' => 0.01,
|
30
|
+
'1e1' => 10.0,
|
31
|
+
'1E+1' => 10.0,
|
32
|
+
'+1e-1' => 0.1,
|
33
|
+
'-1E1' => -10.0,
|
34
|
+
'-1e-1' => -0.1,
|
30
35
|
}.each do |value, expected|
|
31
36
|
context "with #{value.inspect}" do
|
32
37
|
let(:string) { value }
|
@@ -42,4 +47,11 @@ describe Virtus::Coercion::String, '.to_float' do
|
|
42
47
|
|
43
48
|
it { should equal(string) }
|
44
49
|
end
|
50
|
+
|
51
|
+
context 'string starts with e' do
|
52
|
+
let(:string) { 'e1' }
|
53
|
+
|
54
|
+
# In further version it will raise exception
|
55
|
+
it { should == 'e1' }
|
56
|
+
end
|
45
57
|
end
|
@@ -30,6 +30,11 @@ describe Virtus::Coercion::String, '.to_integer' do
|
|
30
30
|
'.1e-1' => 0,
|
31
31
|
'.1E+1' => 1,
|
32
32
|
'.1E-1' => 0,
|
33
|
+
'1e1' => 10,
|
34
|
+
'1E+1' => 10,
|
35
|
+
'+1e-1' => 0,
|
36
|
+
'-1E1' => -10,
|
37
|
+
'-1e-1' => 0,
|
33
38
|
min_float.to_s => min_float.to_i,
|
34
39
|
max_float.to_s => max_float.to_i,
|
35
40
|
}.each do |value, expected|
|
@@ -53,4 +58,11 @@ describe Virtus::Coercion::String, '.to_integer' do
|
|
53
58
|
|
54
59
|
it { should == 334490140000101135 }
|
55
60
|
end
|
61
|
+
|
62
|
+
context 'string starts with e' do
|
63
|
+
let(:string) { 'e1' }
|
64
|
+
|
65
|
+
# In further version it will raise exception
|
66
|
+
it { should == 'e1' }
|
67
|
+
end
|
56
68
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Virtus::Extensions, '#attribute' do
|
4
|
+
subject { object.attribute(name, type) }
|
5
|
+
|
6
|
+
let(:object) { Class.new { extend Virtus::Extensions } }
|
7
|
+
let(:descendant) { Class.new(object) }
|
8
|
+
let(:name) { :name }
|
9
|
+
let(:type) { Virtus::Attribute::String }
|
10
|
+
|
11
|
+
def assert_attribute_added(klass, name, attribute_class)
|
12
|
+
klass.should_not be_public_method_defined(name)
|
13
|
+
subject
|
14
|
+
klass.should_not be_public_method_defined(name)
|
15
|
+
end
|
16
|
+
|
17
|
+
it { should be(object) }
|
18
|
+
|
19
|
+
it 'adds the attribute to the class' do
|
20
|
+
assert_attribute_added(object, name, type)
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'adds the attribute to the descendant' do
|
24
|
+
assert_attribute_added(descendant, name, type)
|
25
|
+
end
|
26
|
+
end
|
@@ -131,7 +131,9 @@ describe Virtus::InstanceMethods do
|
|
131
131
|
let(:attribute_values) { '' }
|
132
132
|
|
133
133
|
it 'raises an exception' do
|
134
|
-
expect {
|
134
|
+
expect {
|
135
|
+
subject
|
136
|
+
}.to raise_error(NoMethodError, 'Expected "" to respond to #to_hash')
|
135
137
|
end
|
136
138
|
end
|
137
139
|
end
|
@@ -25,16 +25,22 @@ describe Virtus::InstanceMethods, '#initialize' do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
context 'with an argument that responds to #to_hash' do
|
28
|
-
subject { described_class.new(
|
29
|
-
|
30
|
-
let(:
|
28
|
+
subject { described_class.new(attributes) }
|
29
|
+
|
30
|
+
let(:attributes) do
|
31
|
+
Class.new do
|
32
|
+
def to_hash
|
33
|
+
{:name => 'John'}
|
34
|
+
end
|
35
|
+
end.new
|
36
|
+
end
|
31
37
|
|
32
38
|
it 'sets attributes' do
|
33
|
-
subject.name.should
|
39
|
+
subject.name.should == 'John'
|
34
40
|
end
|
35
41
|
end
|
36
42
|
|
37
|
-
context'
|
43
|
+
context 'with an argument that does not respond to #to_hash' do
|
38
44
|
subject { described_class.new(Object.new) }
|
39
45
|
|
40
46
|
specify { expect { subject }.to raise_error(NoMethodError) }
|
data/virtus.gemspec
CHANGED
@@ -16,9 +16,9 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.test_files = `git ls-files -- {spec}/*`.split("\n")
|
17
17
|
gem.extra_rdoc_files = %w[LICENSE README.md TODO]
|
18
18
|
|
19
|
-
gem.
|
19
|
+
gem.add_dependency('backports', '~> 2.6.1')
|
20
|
+
gem.add_dependency('descendants_tracker', '~> 0.0.1')
|
20
21
|
|
21
|
-
gem.add_development_dependency('rake',
|
22
|
-
gem.add_development_dependency('rspec',
|
23
|
-
gem.add_development_dependency('guard-rspec', '~> 1.0.0')
|
22
|
+
gem.add_development_dependency('rake', '~> 0.9.2')
|
23
|
+
gem.add_development_dependency('rspec', '~> 2.12')
|
24
24
|
end
|
metadata
CHANGED
@@ -1,105 +1,99 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: virtus
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.3
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 5
|
9
|
-
- 2
|
10
|
-
version: 0.5.2
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Piotr Solnica
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-12-13 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: backports
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 2.6.1
|
22
|
+
type: :runtime
|
22
23
|
prerelease: false
|
23
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
25
|
none: false
|
25
|
-
requirements:
|
26
|
+
requirements:
|
26
27
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 21
|
29
|
-
segments:
|
30
|
-
- 2
|
31
|
-
- 6
|
32
|
-
- 1
|
28
|
+
- !ruby/object:Gem::Version
|
33
29
|
version: 2.6.1
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: descendants_tracker
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 0.0.1
|
34
38
|
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: rake
|
38
39
|
prerelease: false
|
39
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.0.1
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rake
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
40
49
|
none: false
|
41
|
-
requirements:
|
50
|
+
requirements:
|
42
51
|
- - ~>
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
hash: 63
|
45
|
-
segments:
|
46
|
-
- 0
|
47
|
-
- 9
|
48
|
-
- 2
|
52
|
+
- !ruby/object:Gem::Version
|
49
53
|
version: 0.9.2
|
50
54
|
type: :development
|
51
|
-
version_requirements: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
name: rspec
|
54
55
|
prerelease: false
|
55
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.9.2
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rspec
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
56
65
|
none: false
|
57
|
-
requirements:
|
66
|
+
requirements:
|
58
67
|
- - ~>
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
|
61
|
-
segments:
|
62
|
-
- 1
|
63
|
-
- 3
|
64
|
-
- 2
|
65
|
-
version: 1.3.2
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '2.12'
|
66
70
|
type: :development
|
67
|
-
version_requirements: *id003
|
68
|
-
- !ruby/object:Gem::Dependency
|
69
|
-
name: guard-rspec
|
70
71
|
prerelease: false
|
71
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
72
73
|
none: false
|
73
|
-
requirements:
|
74
|
+
requirements:
|
74
75
|
- - ~>
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
|
77
|
-
segments:
|
78
|
-
- 1
|
79
|
-
- 0
|
80
|
-
- 0
|
81
|
-
version: 1.0.0
|
82
|
-
type: :development
|
83
|
-
version_requirements: *id004
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '2.12'
|
84
78
|
description: Attributes on Steroids for Plain Old Ruby Objects
|
85
|
-
email:
|
79
|
+
email:
|
86
80
|
- piotr.solnica@gmail.com
|
87
81
|
executables: []
|
88
|
-
|
89
82
|
extensions: []
|
90
|
-
|
91
|
-
extra_rdoc_files:
|
83
|
+
extra_rdoc_files:
|
92
84
|
- LICENSE
|
93
85
|
- README.md
|
94
86
|
- TODO
|
95
|
-
files:
|
87
|
+
files:
|
96
88
|
- .gitignore
|
97
89
|
- .pelusa.yml
|
90
|
+
- .rspec
|
98
91
|
- .rvmrc
|
99
92
|
- .travis.yml
|
100
93
|
- .yardopts
|
101
94
|
- Changelog.md
|
102
95
|
- Gemfile
|
96
|
+
- Gemfile.devtools
|
103
97
|
- Guardfile
|
104
98
|
- LICENSE
|
105
99
|
- README.md
|
@@ -107,6 +101,7 @@ files:
|
|
107
101
|
- TODO
|
108
102
|
- config/flay.yml
|
109
103
|
- config/flog.yml
|
104
|
+
- config/mutant.yml
|
110
105
|
- config/roodi.yml
|
111
106
|
- config/site.reek
|
112
107
|
- config/yardstick.yml
|
@@ -157,7 +152,6 @@ files:
|
|
157
152
|
- lib/virtus/extensions.rb
|
158
153
|
- lib/virtus/instance_methods.rb
|
159
154
|
- lib/virtus/module_extensions.rb
|
160
|
-
- lib/virtus/support/descendants_tracker.rb
|
161
155
|
- lib/virtus/support/equalizer.rb
|
162
156
|
- lib/virtus/support/options.rb
|
163
157
|
- lib/virtus/support/type_lookup.rb
|
@@ -169,6 +163,7 @@ files:
|
|
169
163
|
- spec/integration/defining_attributes_spec.rb
|
170
164
|
- spec/integration/embedded_value_spec.rb
|
171
165
|
- spec/integration/extending_objects_spec.rb
|
166
|
+
- spec/integration/hash_attributes_coercion_spec.rb
|
172
167
|
- spec/integration/mass_assignment_with_accessors_spec.rb
|
173
168
|
- spec/integration/overriding_virtus_spec.rb
|
174
169
|
- spec/integration/struct_as_embedded_value_spec.rb
|
@@ -176,7 +171,6 @@ files:
|
|
176
171
|
- spec/integration/value_object_with_custom_constructor_spec.rb
|
177
172
|
- spec/integration/virtus/instance_level_attributes_spec.rb
|
178
173
|
- spec/integration/virtus/value_object_spec.rb
|
179
|
-
- spec/rcov.opts
|
180
174
|
- spec/shared/constants_helpers.rb
|
181
175
|
- spec/shared/freeze_method_behavior.rb
|
182
176
|
- spec/shared/idempotent_method_behaviour.rb
|
@@ -230,13 +224,16 @@ files:
|
|
230
224
|
- spec/unit/virtus/attribute/embedded_value/from_struct/coerce_spec.rb
|
231
225
|
- spec/unit/virtus/attribute/float/coerce_spec.rb
|
232
226
|
- spec/unit/virtus/attribute/get_spec.rb
|
227
|
+
- spec/unit/virtus/attribute/hash/class_methods/merge_options_spec.rb
|
228
|
+
- spec/unit/virtus/attribute/hash/coerce_spec.rb
|
229
|
+
- spec/unit/virtus/attribute/hash/key_type_spec.rb
|
230
|
+
- spec/unit/virtus/attribute/hash/value_type_spec.rb
|
233
231
|
- spec/unit/virtus/attribute/inspect_spec.rb
|
234
232
|
- spec/unit/virtus/attribute/integer/coerce_spec.rb
|
235
233
|
- spec/unit/virtus/attribute/name_spec.rb
|
236
234
|
- spec/unit/virtus/attribute/numeric/class_methods/descendants_spec.rb
|
237
235
|
- spec/unit/virtus/attribute/numeric/class_methods/max_spec.rb
|
238
236
|
- spec/unit/virtus/attribute/numeric/class_methods/min_spec.rb
|
239
|
-
- spec/unit/virtus/attribute/object/class_methods/descendants_spec.rb
|
240
237
|
- spec/unit/virtus/attribute/options_spec.rb
|
241
238
|
- spec/unit/virtus/attribute/public_reader_spec.rb
|
242
239
|
- spec/unit/virtus/attribute/public_writer_spec.rb
|
@@ -314,13 +311,12 @@ files:
|
|
314
311
|
- spec/unit/virtus/coercion/time_coercions/to_string_spec.rb
|
315
312
|
- spec/unit/virtus/coercion/time_coercions/to_time_spec.rb
|
316
313
|
- spec/unit/virtus/coercion/true_class/class_methods/to_string_spec.rb
|
317
|
-
- spec/unit/virtus/descendants_tracker/add_descendant_spec.rb
|
318
|
-
- spec/unit/virtus/descendants_tracker/descendants_spec.rb
|
319
314
|
- spec/unit/virtus/equalizer/append_spec.rb
|
320
315
|
- spec/unit/virtus/equalizer/class_method/new_spec.rb
|
321
316
|
- spec/unit/virtus/equalizer/methods/eql_spec.rb
|
322
317
|
- spec/unit/virtus/equalizer/methods/equal_value_spec.rb
|
323
318
|
- spec/unit/virtus/extensions/allowed_writer_methods_spec.rb
|
319
|
+
- spec/unit/virtus/extensions/attribute_spec.rb
|
324
320
|
- spec/unit/virtus/instance_methods/attributes_spec.rb
|
325
321
|
- spec/unit/virtus/instance_methods/element_reference_spec.rb
|
326
322
|
- spec/unit/virtus/instance_methods/element_set_spec.rb
|
@@ -340,50 +336,30 @@ files:
|
|
340
336
|
- spec/unit/virtus/value_object/initialize_spec.rb
|
341
337
|
- spec/unit/virtus/value_object/instance_methods/clone_spec.rb
|
342
338
|
- spec/unit/virtus/value_object/instance_methods/with_spec.rb
|
343
|
-
- tasks/metrics/ci.rake
|
344
|
-
- tasks/metrics/flay.rake
|
345
|
-
- tasks/metrics/flog.rake
|
346
|
-
- tasks/metrics/heckle.rake
|
347
|
-
- tasks/metrics/metric_fu.rake
|
348
|
-
- tasks/metrics/reek.rake
|
349
|
-
- tasks/metrics/roodi.rake
|
350
|
-
- tasks/metrics/yardstick.rake
|
351
|
-
- tasks/spec.rake
|
352
|
-
- tasks/yard.rake
|
353
339
|
- virtus.gemspec
|
354
340
|
homepage: https://github.com/solnic/virtus
|
355
341
|
licenses: []
|
356
|
-
|
357
342
|
post_install_message:
|
358
343
|
rdoc_options: []
|
359
|
-
|
360
|
-
require_paths:
|
344
|
+
require_paths:
|
361
345
|
- lib
|
362
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
346
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
363
347
|
none: false
|
364
|
-
requirements:
|
365
|
-
- -
|
366
|
-
- !ruby/object:Gem::Version
|
367
|
-
|
368
|
-
|
369
|
-
- 0
|
370
|
-
version: "0"
|
371
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
348
|
+
requirements:
|
349
|
+
- - ! '>='
|
350
|
+
- !ruby/object:Gem::Version
|
351
|
+
version: '0'
|
352
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
372
353
|
none: false
|
373
|
-
requirements:
|
374
|
-
- -
|
375
|
-
- !ruby/object:Gem::Version
|
376
|
-
|
377
|
-
segments:
|
378
|
-
- 0
|
379
|
-
version: "0"
|
354
|
+
requirements:
|
355
|
+
- - ! '>='
|
356
|
+
- !ruby/object:Gem::Version
|
357
|
+
version: '0'
|
380
358
|
requirements: []
|
381
|
-
|
382
359
|
rubyforge_project:
|
383
|
-
rubygems_version: 1.8.
|
360
|
+
rubygems_version: 1.8.24
|
384
361
|
signing_key:
|
385
362
|
specification_version: 3
|
386
363
|
summary: Attributes on Steroids for Plain Old Ruby Objects
|
387
364
|
test_files: []
|
388
|
-
|
389
365
|
has_rdoc:
|