virtus 0.5.2 → 0.5.3
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/.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:
|