virtus 0.0.9 → 0.0.10
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/.gitignore +11 -0
- data/.travis.yml +0 -1
- data/{History.md → Changelog.md} +10 -3
- data/Gemfile +4 -6
- data/README.md +140 -81
- data/Rakefile +1 -15
- data/config/flay.yml +1 -1
- data/config/roodi.yml +1 -1
- data/config/site.reek +8 -2
- data/examples/custom_coercion_spec.rb +2 -2
- data/examples/override_attribute_methods_spec.rb +40 -0
- data/lib/virtus.rb +1 -0
- data/lib/virtus/attribute/default_value.rb +17 -3
- data/lib/virtus/class_methods.rb +6 -3
- data/lib/virtus/support/type_lookup.rb +3 -4
- data/lib/virtus/version.rb +3 -0
- data/spec/unit/virtus/attribute/default_value/class_methods/new_spec.rb +3 -6
- data/spec/unit/virtus/attribute/default_value/instance_methods/evaluate_spec.rb +10 -2
- data/tasks/metrics/ci.rake +2 -3
- data/tasks/spec.rake +19 -7
- data/virtus.gemspec +17 -186
- metadata +80 -48
- data/tasks/metrics/heckle.rake +0 -261
data/lib/virtus.rb
CHANGED
@@ -29,8 +29,7 @@ module Virtus
|
|
29
29
|
#
|
30
30
|
# @api private
|
31
31
|
def initialize(attribute, value)
|
32
|
-
@attribute = attribute
|
33
|
-
@value = case value when *DUP_CLASSES then value else value.dup end
|
32
|
+
@attribute, @value = attribute, value
|
34
33
|
end
|
35
34
|
|
36
35
|
# Evaluates the value
|
@@ -41,7 +40,13 @@ module Virtus
|
|
41
40
|
#
|
42
41
|
# @api private
|
43
42
|
def evaluate(instance)
|
44
|
-
callable?
|
43
|
+
if callable?
|
44
|
+
call(instance)
|
45
|
+
elsif duplicable?
|
46
|
+
value.dup
|
47
|
+
else
|
48
|
+
value
|
49
|
+
end
|
45
50
|
end
|
46
51
|
|
47
52
|
private
|
@@ -66,6 +71,15 @@ module Virtus
|
|
66
71
|
value.respond_to?(:call)
|
67
72
|
end
|
68
73
|
|
74
|
+
# Returns whether or not the value is duplicable
|
75
|
+
#
|
76
|
+
# # return [TrueClass, FalseClass]
|
77
|
+
#
|
78
|
+
# @api private
|
79
|
+
def duplicable?
|
80
|
+
DUP_CLASSES.none? { |klass| value.kind_of?(klass) }
|
81
|
+
end
|
82
|
+
|
69
83
|
end # class DefaultValue
|
70
84
|
end # class Attribute
|
71
85
|
end # module Virtus
|
data/lib/virtus/class_methods.rb
CHANGED
@@ -99,9 +99,12 @@ module Virtus
|
|
99
99
|
#
|
100
100
|
# @api private
|
101
101
|
def virtus_define_attribute_methods(attribute)
|
102
|
-
|
103
|
-
|
104
|
-
|
102
|
+
module_with_methods = self::AttributeMethods
|
103
|
+
|
104
|
+
attribute.define_reader_method(module_with_methods)
|
105
|
+
attribute.define_writer_method(module_with_methods)
|
106
|
+
|
107
|
+
include module_with_methods
|
105
108
|
end
|
106
109
|
|
107
110
|
# Add the attribute to the class' and descendants' attributes
|
@@ -65,12 +65,11 @@ module Virtus
|
|
65
65
|
# @api private
|
66
66
|
def determine_type_from_primitive(primitive)
|
67
67
|
type = nil
|
68
|
-
|
69
68
|
descendants.reverse_each do |descendant|
|
70
|
-
|
71
|
-
|
69
|
+
descendant_primitive = descendant.primitive
|
70
|
+
next unless primitive <= descendant_primitive
|
71
|
+
type = descendant if type.nil? || type.primitive > descendant_primitive
|
72
72
|
end
|
73
|
-
|
74
73
|
type
|
75
74
|
end
|
76
75
|
|
@@ -5,18 +5,15 @@ describe Virtus::Attribute::DefaultValue, '.new' do
|
|
5
5
|
|
6
6
|
let(:attribute) { Virtus::Attribute::String.new(:attribute) }
|
7
7
|
|
8
|
-
context 'with a value
|
8
|
+
context 'with a duplicable value' do
|
9
9
|
let(:value) { 'something' }
|
10
|
-
|
11
|
-
its(:value) { should eql(value) }
|
12
|
-
its(:value) { should_not equal(value) }
|
10
|
+
its(:value) { should equal(value) }
|
13
11
|
end
|
14
12
|
|
15
|
-
context 'with a value
|
13
|
+
context 'with a non-duplicable value' do
|
16
14
|
[ nil, true, false, 1, :symbol ].each do |value|
|
17
15
|
context "with #{value.inspect}" do
|
18
16
|
let(:value) { value }
|
19
|
-
|
20
17
|
its(:value) { should equal(value) }
|
21
18
|
end
|
22
19
|
end
|
@@ -8,8 +8,16 @@ describe Virtus::Attribute::DefaultValue, '#evaluate' do
|
|
8
8
|
let(:instance) { Class.new }
|
9
9
|
|
10
10
|
context 'with a non-callable value' do
|
11
|
-
|
12
|
-
|
11
|
+
context 'with a non-duplicable value' do
|
12
|
+
let(:value) { nil }
|
13
|
+
it { should eql(value) }
|
14
|
+
end
|
15
|
+
|
16
|
+
context 'with a duplicable value' do
|
17
|
+
let(:value) { 'something' }
|
18
|
+
it { should eql(value) }
|
19
|
+
it { should_not equal(value)}
|
20
|
+
end
|
13
21
|
end
|
14
22
|
|
15
23
|
context 'with a callable value' do
|
data/tasks/metrics/ci.rake
CHANGED
@@ -1,7 +1,6 @@
|
|
1
|
-
|
2
|
-
task :ci => [ 'ci:metrics', :heckle ]
|
1
|
+
task :ci => %w[ ci:metrics ]
|
3
2
|
|
4
3
|
namespace :ci do
|
5
4
|
desc 'Run metrics'
|
6
|
-
task :metrics => [
|
5
|
+
task :metrics => %w[ verify_measurements flog flay reek roodi metrics:all ]
|
7
6
|
end
|
data/tasks/spec.rake
CHANGED
@@ -1,7 +1,22 @@
|
|
1
1
|
begin
|
2
2
|
require 'rspec/core/rake_task'
|
3
3
|
|
4
|
-
|
4
|
+
desc 'run all specs'
|
5
|
+
task :spec => ['spec:unit', 'spec:integration', 'spec:examples']
|
6
|
+
|
7
|
+
namespace :spec do
|
8
|
+
RSpec::Core::RakeTask.new(:examples) do |t|
|
9
|
+
t.pattern = 'examples/**/*_spec.rb'
|
10
|
+
end
|
11
|
+
|
12
|
+
RSpec::Core::RakeTask.new(:integration) do |t|
|
13
|
+
t.pattern = 'spec/integration/**/*_spec.rb'
|
14
|
+
end
|
15
|
+
|
16
|
+
RSpec::Core::RakeTask.new(:unit) do |t|
|
17
|
+
t.pattern = 'spec/unit/**/*_spec.rb'
|
18
|
+
end
|
19
|
+
end
|
5
20
|
rescue LoadError
|
6
21
|
task :spec do
|
7
22
|
abort 'rspec is not available. In order to run spec, you must: gem install rspec'
|
@@ -15,12 +30,9 @@ begin
|
|
15
30
|
t.rcov_opts = File.read('spec/rcov.opts').split(/\s+/)
|
16
31
|
end
|
17
32
|
rescue LoadError
|
18
|
-
|
19
|
-
|
20
|
-
abort "rcov is not available. In order to run #{name}, you must: gem install rcov"
|
21
|
-
end
|
33
|
+
task :rcov do
|
34
|
+
abort 'rcov is not available. In order to run rcov, you must: gem install rcov'
|
22
35
|
end
|
23
36
|
end
|
24
37
|
|
25
|
-
task :test
|
26
|
-
task :default => :spec
|
38
|
+
task :test => 'spec'
|
data/virtus.gemspec
CHANGED
@@ -1,192 +1,23 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
1
|
# -*- encoding: utf-8 -*-
|
5
2
|
|
6
|
-
|
7
|
-
s.name = "virtus"
|
8
|
-
s.version = "0.0.9"
|
3
|
+
require File.expand_path('../lib/virtus/version', __FILE__)
|
9
4
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
"
|
19
|
-
]
|
20
|
-
s.files = [
|
21
|
-
".rvmrc",
|
22
|
-
".travis.yml",
|
23
|
-
".yardopts",
|
24
|
-
"Gemfile",
|
25
|
-
"History.md",
|
26
|
-
"LICENSE",
|
27
|
-
"README.md",
|
28
|
-
"Rakefile",
|
29
|
-
"TODO",
|
30
|
-
"VERSION",
|
31
|
-
"config/flay.yml",
|
32
|
-
"config/flog.yml",
|
33
|
-
"config/roodi.yml",
|
34
|
-
"config/site.reek",
|
35
|
-
"config/yardstick.yml",
|
36
|
-
"examples/custom_coercion_spec.rb",
|
37
|
-
"examples/default_values_spec.rb",
|
38
|
-
"lib/virtus.rb",
|
39
|
-
"lib/virtus/attribute.rb",
|
40
|
-
"lib/virtus/attribute/array.rb",
|
41
|
-
"lib/virtus/attribute/boolean.rb",
|
42
|
-
"lib/virtus/attribute/class.rb",
|
43
|
-
"lib/virtus/attribute/date.rb",
|
44
|
-
"lib/virtus/attribute/date_time.rb",
|
45
|
-
"lib/virtus/attribute/decimal.rb",
|
46
|
-
"lib/virtus/attribute/default_value.rb",
|
47
|
-
"lib/virtus/attribute/float.rb",
|
48
|
-
"lib/virtus/attribute/hash.rb",
|
49
|
-
"lib/virtus/attribute/integer.rb",
|
50
|
-
"lib/virtus/attribute/numeric.rb",
|
51
|
-
"lib/virtus/attribute/object.rb",
|
52
|
-
"lib/virtus/attribute/string.rb",
|
53
|
-
"lib/virtus/attribute/time.rb",
|
54
|
-
"lib/virtus/attribute_set.rb",
|
55
|
-
"lib/virtus/class_methods.rb",
|
56
|
-
"lib/virtus/coercion.rb",
|
57
|
-
"lib/virtus/coercion/date.rb",
|
58
|
-
"lib/virtus/coercion/date_time.rb",
|
59
|
-
"lib/virtus/coercion/decimal.rb",
|
60
|
-
"lib/virtus/coercion/false_class.rb",
|
61
|
-
"lib/virtus/coercion/float.rb",
|
62
|
-
"lib/virtus/coercion/hash.rb",
|
63
|
-
"lib/virtus/coercion/integer.rb",
|
64
|
-
"lib/virtus/coercion/numeric.rb",
|
65
|
-
"lib/virtus/coercion/object.rb",
|
66
|
-
"lib/virtus/coercion/string.rb",
|
67
|
-
"lib/virtus/coercion/symbol.rb",
|
68
|
-
"lib/virtus/coercion/time.rb",
|
69
|
-
"lib/virtus/coercion/time_coercions.rb",
|
70
|
-
"lib/virtus/coercion/true_class.rb",
|
71
|
-
"lib/virtus/instance_methods.rb",
|
72
|
-
"lib/virtus/support/descendants_tracker.rb",
|
73
|
-
"lib/virtus/support/options.rb",
|
74
|
-
"lib/virtus/support/type_lookup.rb",
|
75
|
-
"spec/integration/virtus/attributes/attribute/set_spec.rb",
|
76
|
-
"spec/integration/virtus/class_methods/attribute_spec.rb",
|
77
|
-
"spec/integration/virtus/class_methods/attributes_spec.rb",
|
78
|
-
"spec/integration/virtus/class_methods/const_missing_spec.rb",
|
79
|
-
"spec/rcov.opts",
|
80
|
-
"spec/shared/idempotent_method_behaviour.rb",
|
81
|
-
"spec/spec_helper.rb",
|
82
|
-
"spec/unit/shared/attribute.rb",
|
83
|
-
"spec/unit/shared/attribute/accept_options.rb",
|
84
|
-
"spec/unit/shared/attribute/accepted_options.rb",
|
85
|
-
"spec/unit/shared/attribute/get.rb",
|
86
|
-
"spec/unit/shared/attribute/inspect.rb",
|
87
|
-
"spec/unit/shared/attribute/set.rb",
|
88
|
-
"spec/unit/virtus/attribute/array_spec.rb",
|
89
|
-
"spec/unit/virtus/attribute/boolean_spec.rb",
|
90
|
-
"spec/unit/virtus/attribute/class_methods/determine_type_spec.rb",
|
91
|
-
"spec/unit/virtus/attribute/class_spec.rb",
|
92
|
-
"spec/unit/virtus/attribute/date_spec.rb",
|
93
|
-
"spec/unit/virtus/attribute/date_time_spec.rb",
|
94
|
-
"spec/unit/virtus/attribute/decimal_spec.rb",
|
95
|
-
"spec/unit/virtus/attribute/default_value/class_methods/new_spec.rb",
|
96
|
-
"spec/unit/virtus/attribute/default_value/instance_methods/evaluate_spec.rb",
|
97
|
-
"spec/unit/virtus/attribute/float_spec.rb",
|
98
|
-
"spec/unit/virtus/attribute/hash_spec.rb",
|
99
|
-
"spec/unit/virtus/attribute/integer_spec.rb",
|
100
|
-
"spec/unit/virtus/attribute/numeric/class_methods/descendants_spec.rb",
|
101
|
-
"spec/unit/virtus/attribute/object/class_methods/descendants_spec.rb",
|
102
|
-
"spec/unit/virtus/attribute/string_spec.rb",
|
103
|
-
"spec/unit/virtus/attribute/time_spec.rb",
|
104
|
-
"spec/unit/virtus/attribute_set/append_spec.rb",
|
105
|
-
"spec/unit/virtus/attribute_set/each_spec.rb",
|
106
|
-
"spec/unit/virtus/attribute_set/element_reference_spec.rb",
|
107
|
-
"spec/unit/virtus/attribute_set/element_set_spec.rb",
|
108
|
-
"spec/unit/virtus/attribute_set/merge_spec.rb",
|
109
|
-
"spec/unit/virtus/attribute_set/parent_spec.rb",
|
110
|
-
"spec/unit/virtus/attribute_set/reset_spec.rb",
|
111
|
-
"spec/unit/virtus/class_methods/attribute_spec.rb",
|
112
|
-
"spec/unit/virtus/class_methods/attributes_spec.rb",
|
113
|
-
"spec/unit/virtus/class_methods/new_spec.rb",
|
114
|
-
"spec/unit/virtus/coercion/class_name_reference_spec.rb",
|
115
|
-
"spec/unit/virtus/coercion/date/class_methods/to_datetime_spec.rb",
|
116
|
-
"spec/unit/virtus/coercion/date/class_methods/to_string_spec.rb",
|
117
|
-
"spec/unit/virtus/coercion/date/class_methods/to_time_spec.rb",
|
118
|
-
"spec/unit/virtus/coercion/date_time/class_methods/to_date_spec.rb",
|
119
|
-
"spec/unit/virtus/coercion/date_time/class_methods/to_string_spec.rb",
|
120
|
-
"spec/unit/virtus/coercion/date_time/class_methods/to_time_spec.rb",
|
121
|
-
"spec/unit/virtus/coercion/decimal/class_methods/to_float_spec.rb",
|
122
|
-
"spec/unit/virtus/coercion/decimal/class_methods/to_integer_spec.rb",
|
123
|
-
"spec/unit/virtus/coercion/decimal/class_methods/to_string_spec.rb",
|
124
|
-
"spec/unit/virtus/coercion/false_class/class_methods/to_string_spec.rb",
|
125
|
-
"spec/unit/virtus/coercion/float/class_methods/to_decimal_spec.rb",
|
126
|
-
"spec/unit/virtus/coercion/float/class_methods/to_integer_spec.rb",
|
127
|
-
"spec/unit/virtus/coercion/float/class_methods/to_string_spec.rb",
|
128
|
-
"spec/unit/virtus/coercion/hash/class_methods/to_array_spec.rb",
|
129
|
-
"spec/unit/virtus/coercion/hash/class_methods/to_date_spec.rb",
|
130
|
-
"spec/unit/virtus/coercion/hash/class_methods/to_datetime_spec.rb",
|
131
|
-
"spec/unit/virtus/coercion/hash/class_methods/to_time_spec.rb",
|
132
|
-
"spec/unit/virtus/coercion/integer/class_methods/to_boolean_spec.rb",
|
133
|
-
"spec/unit/virtus/coercion/integer/class_methods/to_decimal_spec.rb",
|
134
|
-
"spec/unit/virtus/coercion/integer/class_methods/to_float_spec.rb",
|
135
|
-
"spec/unit/virtus/coercion/integer/class_methods/to_string_spec.rb",
|
136
|
-
"spec/unit/virtus/coercion/object/class_methods/method_missing_spec.rb",
|
137
|
-
"spec/unit/virtus/coercion/string/class_methods/to_boolean_spec.rb",
|
138
|
-
"spec/unit/virtus/coercion/string/class_methods/to_constant_spec.rb",
|
139
|
-
"spec/unit/virtus/coercion/string/class_methods/to_date_spec.rb",
|
140
|
-
"spec/unit/virtus/coercion/string/class_methods/to_datetime_spec.rb",
|
141
|
-
"spec/unit/virtus/coercion/string/class_methods/to_decimal_spec.rb",
|
142
|
-
"spec/unit/virtus/coercion/string/class_methods/to_float_spec.rb",
|
143
|
-
"spec/unit/virtus/coercion/string/class_methods/to_integer_spec.rb",
|
144
|
-
"spec/unit/virtus/coercion/string/class_methods/to_time_spec.rb",
|
145
|
-
"spec/unit/virtus/coercion/symbol/class_methods/to_string_spec.rb",
|
146
|
-
"spec/unit/virtus/coercion/true_class/class_methods/to_string_spec.rb",
|
147
|
-
"spec/unit/virtus/descendants_tracker/add_descendant_spec.rb",
|
148
|
-
"spec/unit/virtus/descendants_tracker/descendants_spec.rb",
|
149
|
-
"spec/unit/virtus/instance_methods/attributes_spec.rb",
|
150
|
-
"spec/unit/virtus/instance_methods/element_reference_spec.rb",
|
151
|
-
"spec/unit/virtus/instance_methods/element_set_spec.rb",
|
152
|
-
"spec/unit/virtus/options/accept_options_spec.rb",
|
153
|
-
"spec/unit/virtus/options/accepted_options_spec.rb",
|
154
|
-
"spec/unit/virtus/options/options_spec.rb",
|
155
|
-
"spec/unit/virtus/type_lookup/determine_type_spec.rb",
|
156
|
-
"spec/unit/virtus/type_lookup/primitive_spec.rb",
|
157
|
-
"tasks/metrics/ci.rake",
|
158
|
-
"tasks/metrics/flay.rake",
|
159
|
-
"tasks/metrics/flog.rake",
|
160
|
-
"tasks/metrics/heckle.rake",
|
161
|
-
"tasks/metrics/metric_fu.rake",
|
162
|
-
"tasks/metrics/reek.rake",
|
163
|
-
"tasks/metrics/roodi.rake",
|
164
|
-
"tasks/metrics/yardstick.rake",
|
165
|
-
"tasks/spec.rake",
|
166
|
-
"tasks/yard.rake",
|
167
|
-
"virtus.gemspec"
|
168
|
-
]
|
169
|
-
s.homepage = "https://github.com/solnic/virtus"
|
170
|
-
s.require_paths = ["lib"]
|
171
|
-
s.rubygems_version = "1.8.11"
|
172
|
-
s.summary = "Attributes for your plain ruby objects"
|
5
|
+
Gem::Specification.new do |gem|
|
6
|
+
gem.name = "virtus"
|
7
|
+
gem.version = Virtus::VERSION
|
8
|
+
gem.date = "2011-11-21"
|
9
|
+
gem.authors = [ "Piotr Solnica" ]
|
10
|
+
gem.email = [ "piotr.solnica@gmail.com" ]
|
11
|
+
gem.description = "Attributes on Steroids for Plain Old Ruby Objects"
|
12
|
+
gem.summary = gem.description
|
13
|
+
gem.homepage = "https://github.com/solnic/virtus"
|
173
14
|
|
174
|
-
|
175
|
-
|
15
|
+
gem.require_paths = [ "lib" ]
|
16
|
+
gem.files = `git ls-files`.split("\n")
|
17
|
+
gem.test_files = `git ls-files -- {spec}/*`.split("\n")
|
18
|
+
gem.extra_rdoc_files = %w[LICENSE README.md TODO]
|
176
19
|
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
s.add_development_dependency(%q<rspec>, ["~> 2.6.0"])
|
181
|
-
else
|
182
|
-
s.add_dependency(%q<backports>, ["~> 2.3.0"])
|
183
|
-
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
184
|
-
s.add_dependency(%q<rspec>, ["~> 2.6.0"])
|
185
|
-
end
|
186
|
-
else
|
187
|
-
s.add_dependency(%q<backports>, ["~> 2.3.0"])
|
188
|
-
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
189
|
-
s.add_dependency(%q<rspec>, ["~> 2.6.0"])
|
190
|
-
end
|
20
|
+
gem.add_development_dependency('rake', '~> 0.9.2')
|
21
|
+
gem.add_development_dependency('backports', '~> 2.3.0')
|
22
|
+
gem.add_development_dependency('rspec', '~> 2.6.0')
|
191
23
|
end
|
192
|
-
|
metadata
CHANGED
@@ -1,64 +1,88 @@
|
|
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
|
+
hash: 11
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 10
|
10
|
+
version: 0.0.10
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Piotr Solnica
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
+
|
18
|
+
date: 2011-11-21 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: rake
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
24
|
none: false
|
18
|
-
requirements:
|
25
|
+
requirements:
|
19
26
|
- - ~>
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 63
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
- 9
|
32
|
+
- 2
|
33
|
+
version: 0.9.2
|
22
34
|
type: :development
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: backports
|
23
38
|
prerelease: false
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: jeweler
|
27
|
-
requirement: &70244296924200 !ruby/object:Gem::Requirement
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
40
|
none: false
|
29
|
-
requirements:
|
41
|
+
requirements:
|
30
42
|
- - ~>
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 3
|
45
|
+
segments:
|
46
|
+
- 2
|
47
|
+
- 3
|
48
|
+
- 0
|
49
|
+
version: 2.3.0
|
33
50
|
type: :development
|
34
|
-
|
35
|
-
|
36
|
-
- !ruby/object:Gem::Dependency
|
51
|
+
version_requirements: *id002
|
52
|
+
- !ruby/object:Gem::Dependency
|
37
53
|
name: rspec
|
38
|
-
|
54
|
+
prerelease: false
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
56
|
none: false
|
40
|
-
requirements:
|
57
|
+
requirements:
|
41
58
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
hash: 23
|
61
|
+
segments:
|
62
|
+
- 2
|
63
|
+
- 6
|
64
|
+
- 0
|
43
65
|
version: 2.6.0
|
44
66
|
type: :development
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
- piotr@rubyverse.com
|
67
|
+
version_requirements: *id003
|
68
|
+
description: Attributes on Steroids for Plain Old Ruby Objects
|
69
|
+
email:
|
70
|
+
- piotr.solnica@gmail.com
|
50
71
|
executables: []
|
72
|
+
|
51
73
|
extensions: []
|
52
|
-
|
74
|
+
|
75
|
+
extra_rdoc_files:
|
53
76
|
- LICENSE
|
54
77
|
- README.md
|
55
78
|
- TODO
|
56
|
-
files:
|
79
|
+
files:
|
80
|
+
- .gitignore
|
57
81
|
- .rvmrc
|
58
82
|
- .travis.yml
|
59
83
|
- .yardopts
|
84
|
+
- Changelog.md
|
60
85
|
- Gemfile
|
61
|
-
- History.md
|
62
86
|
- LICENSE
|
63
87
|
- README.md
|
64
88
|
- Rakefile
|
@@ -71,6 +95,7 @@ files:
|
|
71
95
|
- config/yardstick.yml
|
72
96
|
- examples/custom_coercion_spec.rb
|
73
97
|
- examples/default_values_spec.rb
|
98
|
+
- examples/override_attribute_methods_spec.rb
|
74
99
|
- lib/virtus.rb
|
75
100
|
- lib/virtus/attribute.rb
|
76
101
|
- lib/virtus/attribute/array.rb
|
@@ -108,6 +133,7 @@ files:
|
|
108
133
|
- lib/virtus/support/descendants_tracker.rb
|
109
134
|
- lib/virtus/support/options.rb
|
110
135
|
- lib/virtus/support/type_lookup.rb
|
136
|
+
- lib/virtus/version.rb
|
111
137
|
- spec/integration/virtus/attributes/attribute/set_spec.rb
|
112
138
|
- spec/integration/virtus/class_methods/attribute_spec.rb
|
113
139
|
- spec/integration/virtus/class_methods/attributes_spec.rb
|
@@ -193,7 +219,6 @@ files:
|
|
193
219
|
- tasks/metrics/ci.rake
|
194
220
|
- tasks/metrics/flay.rake
|
195
221
|
- tasks/metrics/flog.rake
|
196
|
-
- tasks/metrics/heckle.rake
|
197
222
|
- tasks/metrics/metric_fu.rake
|
198
223
|
- tasks/metrics/reek.rake
|
199
224
|
- tasks/metrics/roodi.rake
|
@@ -203,29 +228,36 @@ files:
|
|
203
228
|
- virtus.gemspec
|
204
229
|
homepage: https://github.com/solnic/virtus
|
205
230
|
licenses: []
|
231
|
+
|
206
232
|
post_install_message:
|
207
233
|
rdoc_options: []
|
208
|
-
|
234
|
+
|
235
|
+
require_paths:
|
209
236
|
- lib
|
210
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
237
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
211
238
|
none: false
|
212
|
-
requirements:
|
213
|
-
- -
|
214
|
-
- !ruby/object:Gem::Version
|
215
|
-
|
216
|
-
segments:
|
239
|
+
requirements:
|
240
|
+
- - ">="
|
241
|
+
- !ruby/object:Gem::Version
|
242
|
+
hash: 3
|
243
|
+
segments:
|
217
244
|
- 0
|
218
|
-
|
219
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
245
|
+
version: "0"
|
246
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
220
247
|
none: false
|
221
|
-
requirements:
|
222
|
-
- -
|
223
|
-
- !ruby/object:Gem::Version
|
224
|
-
|
248
|
+
requirements:
|
249
|
+
- - ">="
|
250
|
+
- !ruby/object:Gem::Version
|
251
|
+
hash: 3
|
252
|
+
segments:
|
253
|
+
- 0
|
254
|
+
version: "0"
|
225
255
|
requirements: []
|
256
|
+
|
226
257
|
rubyforge_project:
|
227
258
|
rubygems_version: 1.8.11
|
228
259
|
signing_key:
|
229
260
|
specification_version: 3
|
230
|
-
summary: Attributes for
|
261
|
+
summary: Attributes on Steroids for Plain Old Ruby Objects
|
231
262
|
test_files: []
|
263
|
+
|