virtus 0.0.10 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (154) hide show
  1. data/.gitignore +33 -7
  2. data/.travis.yml +4 -74
  3. data/Changelog.md +11 -2
  4. data/Gemfile +10 -9
  5. data/README.md +85 -1
  6. data/TODO +18 -0
  7. data/config/flay.yml +2 -2
  8. data/config/flog.yml +1 -1
  9. data/config/roodi.yml +3 -3
  10. data/config/site.reek +8 -3
  11. data/lib/virtus.rb +5 -0
  12. data/lib/virtus/attribute.rb +137 -30
  13. data/lib/virtus/attribute/array.rb +17 -1
  14. data/lib/virtus/attribute/boolean.rb +8 -13
  15. data/lib/virtus/attribute/collection.rb +96 -0
  16. data/lib/virtus/attribute/default_value.rb +11 -7
  17. data/lib/virtus/attribute/embedded_value.rb +70 -0
  18. data/lib/virtus/attribute/set.rb +25 -0
  19. data/lib/virtus/attribute_set.rb +18 -16
  20. data/lib/virtus/attributes_accessor.rb +66 -0
  21. data/lib/virtus/class_methods.rb +50 -28
  22. data/lib/virtus/coercion/array.rb +23 -0
  23. data/lib/virtus/coercion/string.rb +10 -4
  24. data/lib/virtus/instance_methods.rb +38 -31
  25. data/lib/virtus/support/options.rb +6 -8
  26. data/lib/virtus/support/type_lookup.rb +4 -11
  27. data/lib/virtus/version.rb +1 -1
  28. data/spec/integration/collection_member_coercion_spec.rb +75 -0
  29. data/spec/integration/custom_attributes_spec.rb +49 -0
  30. data/spec/integration/default_values_spec.rb +32 -0
  31. data/spec/integration/defining_attributes_spec.rb +79 -0
  32. data/spec/integration/embedded_value_spec.rb +50 -0
  33. data/spec/integration/overriding_virtus_spec.rb +46 -0
  34. data/spec/integration/virtus/instance_level_attributes_spec.rb +23 -0
  35. data/spec/rcov.opts +1 -0
  36. data/spec/shared/constants_helpers.rb +9 -0
  37. data/spec/shared/options_class_method.rb +19 -0
  38. data/spec/spec_helper.rb +20 -7
  39. data/spec/unit/virtus/attribute/array/coerce_spec.rb +13 -0
  40. data/spec/unit/virtus/attribute/boolean/coerce_spec.rb +85 -0
  41. data/spec/unit/virtus/attribute/boolean/define_reader_method_spec.rb +15 -0
  42. data/spec/unit/virtus/attribute/boolean/value_coerced_spec.rb +97 -0
  43. data/spec/unit/virtus/attribute/boolean_spec.rb +2 -81
  44. data/spec/unit/virtus/attribute/class/coerce_spec.rb +13 -0
  45. data/spec/unit/virtus/attribute/class_methods/accessor_spec.rb +12 -0
  46. data/spec/unit/virtus/attribute/class_methods/build_spec.rb +37 -0
  47. data/spec/unit/virtus/attribute/class_methods/coercion_method_spec.rb +9 -0
  48. data/spec/unit/virtus/attribute/class_methods/default_spec.rb +9 -0
  49. data/spec/unit/virtus/attribute/class_methods/determine_type_spec.rb +31 -1
  50. data/spec/unit/virtus/attribute/class_methods/merge_options_spec.rb +11 -0
  51. data/spec/unit/virtus/attribute/class_methods/primitive_spec.rb +9 -0
  52. data/spec/unit/virtus/attribute/class_methods/reader_spec.rb +9 -0
  53. data/spec/unit/virtus/attribute/class_methods/writer_spec.rb +9 -0
  54. data/spec/unit/virtus/attribute/coerce_spec.rb +30 -0
  55. data/spec/unit/virtus/attribute/coercion_method_spec.rb +12 -0
  56. data/spec/unit/virtus/attribute/collection/class_methods/merge_options_spec.rb +40 -0
  57. data/spec/unit/virtus/attribute/collection/coerce_spec.rb +26 -0
  58. data/spec/unit/virtus/attribute/date/coerce_spec.rb +47 -0
  59. data/spec/unit/virtus/attribute/date/value_coerced_spec.rb +46 -0
  60. data/spec/unit/virtus/attribute/date_time/coerce_spec.rb +68 -0
  61. data/spec/unit/virtus/attribute/decimal/coerce_spec.rb +117 -0
  62. data/spec/unit/virtus/attribute/default_spec.rb +32 -0
  63. data/spec/unit/virtus/attribute/default_value/attribute_spec.rb +11 -0
  64. data/spec/unit/virtus/attribute/default_value/class_methods/new_spec.rb +4 -2
  65. data/spec/unit/virtus/attribute/default_value/evaluate_spec.rb +51 -0
  66. data/spec/unit/virtus/attribute/default_value/instance_methods/evaluate_spec.rb +9 -6
  67. data/spec/unit/virtus/attribute/default_value/value_spec.rb +11 -0
  68. data/spec/unit/virtus/attribute/define_accessor_methods_spec.rb +26 -0
  69. data/spec/unit/virtus/attribute/define_reader_method_spec.rb +24 -0
  70. data/spec/unit/virtus/attribute/define_writer_method_spec.rb +24 -0
  71. data/spec/unit/virtus/attribute/embedded_value/class_methods/merge_options_spec.rb +17 -0
  72. data/spec/unit/virtus/attribute/embedded_value/coerce_spec.rb +50 -0
  73. data/spec/unit/virtus/attribute/float/coerce_spec.rb +117 -0
  74. data/spec/unit/virtus/attribute/get_spec.rb +80 -0
  75. data/spec/unit/virtus/attribute/inspect_spec.rb +27 -0
  76. data/spec/unit/virtus/attribute/instance_variable_name_spec.rb +12 -0
  77. data/spec/unit/virtus/attribute/integer/coerce_spec.rb +105 -0
  78. data/spec/unit/virtus/attribute/name_spec.rb +12 -0
  79. data/spec/unit/virtus/attribute/numeric/class_methods/descendants_spec.rb +1 -1
  80. data/spec/unit/virtus/attribute/numeric/class_methods/max_spec.rb +9 -0
  81. data/spec/unit/virtus/attribute/numeric/class_methods/min_spec.rb +9 -0
  82. data/spec/unit/virtus/attribute/object/class_methods/descendants_spec.rb +9 -7
  83. data/spec/unit/virtus/attribute/options_spec.rb +14 -0
  84. data/spec/unit/virtus/attribute/public_reader_spec.rb +24 -0
  85. data/spec/unit/virtus/attribute/public_writer_spec.rb +24 -0
  86. data/spec/unit/virtus/attribute/reader_visibility_spec.rb +24 -0
  87. data/spec/unit/virtus/attribute/set/coerce_spec.rb +13 -0
  88. data/spec/unit/virtus/attribute/set_spec.rb +49 -0
  89. data/spec/unit/virtus/attribute/string/coerce_spec.rb +11 -0
  90. data/spec/unit/virtus/attribute/time/coerce_spec.rb +67 -0
  91. data/spec/unit/virtus/attribute/value_coerced_spec.rb +19 -0
  92. data/spec/unit/virtus/attribute/writer_visibility_spec.rb +24 -0
  93. data/spec/unit/virtus/attribute_set/append_spec.rb +12 -0
  94. data/spec/unit/virtus/attribute_set/element_reference_spec.rb +4 -0
  95. data/spec/unit/virtus/attribute_set/element_set_spec.rb +29 -9
  96. data/spec/unit/virtus/attributes_accessor/inspect_spec.rb +9 -0
  97. data/spec/unit/virtus/class_methods/attribute_spec.rb +23 -5
  98. data/spec/unit/virtus/class_methods/attributes_spec.rb +3 -5
  99. data/spec/unit/virtus/class_methods/const_missing_spec.rb +27 -0
  100. data/spec/unit/virtus/class_methods/inherited_spec.rb +21 -0
  101. data/spec/unit/virtus/coercion/array/to_set_spec.rb +12 -0
  102. data/spec/unit/virtus/coercion/date/class_methods/to_date_spec.rb +10 -0
  103. data/spec/unit/virtus/coercion/date_time/class_methods/to_datetime_spec.rb +10 -0
  104. data/spec/unit/virtus/coercion/hash/class_methods/to_date_spec.rb +10 -3
  105. data/spec/unit/virtus/coercion/hash/class_methods/to_datetime_spec.rb +10 -3
  106. data/spec/unit/virtus/coercion/hash/class_methods/to_time_spec.rb +10 -3
  107. data/spec/unit/virtus/coercion/object/class_methods/method_missing_spec.rb +8 -8
  108. data/spec/unit/virtus/coercion/string/class_methods/to_boolean_spec.rb +2 -2
  109. data/spec/unit/virtus/coercion/string/class_methods/to_constant_spec.rb +1 -1
  110. data/spec/unit/virtus/coercion/string/class_methods/to_date_spec.rb +1 -1
  111. data/spec/unit/virtus/coercion/string/class_methods/to_datetime_spec.rb +13 -13
  112. data/spec/unit/virtus/coercion/string/class_methods/to_decimal_spec.rb +25 -1
  113. data/spec/unit/virtus/coercion/string/class_methods/to_float_spec.rb +25 -1
  114. data/spec/unit/virtus/coercion/string/class_methods/to_integer_spec.rb +30 -1
  115. data/spec/unit/virtus/coercion/string/class_methods/to_time_spec.rb +13 -13
  116. data/spec/unit/virtus/coercion/time/class_methods/to_time_spec.rb +10 -0
  117. data/spec/unit/virtus/coercion/true_class/class_methods/to_string_spec.rb +1 -1
  118. data/spec/unit/virtus/instance_methods/attributes_spec.rb +77 -20
  119. data/spec/unit/virtus/instance_methods/element_reference_spec.rb +1 -1
  120. data/spec/unit/virtus/instance_methods/element_set_spec.rb +2 -2
  121. data/spec/unit/virtus/instance_methods/to_hash_spec.rb +23 -0
  122. data/spec/unit/virtus/options/accept_options_spec.rb +10 -11
  123. data/spec/unit/virtus/options/accepted_options_spec.rb +1 -1
  124. data/spec/unit/virtus/options/options_spec.rb +27 -4
  125. data/tasks/metrics/ci.rake +2 -1
  126. data/tasks/metrics/heckle.rake +207 -0
  127. data/tasks/spec.rake +14 -7
  128. data/virtus.gemspec +1 -1
  129. metadata +111 -97
  130. data/VERSION +0 -1
  131. data/examples/custom_coercion_spec.rb +0 -50
  132. data/examples/default_values_spec.rb +0 -21
  133. data/examples/override_attribute_methods_spec.rb +0 -40
  134. data/spec/integration/virtus/attributes/attribute/set_spec.rb +0 -36
  135. data/spec/integration/virtus/class_methods/attribute_spec.rb +0 -82
  136. data/spec/integration/virtus/class_methods/attributes_spec.rb +0 -22
  137. data/spec/integration/virtus/class_methods/const_missing_spec.rb +0 -44
  138. data/spec/unit/shared/attribute.rb +0 -7
  139. data/spec/unit/shared/attribute/accept_options.rb +0 -37
  140. data/spec/unit/shared/attribute/accepted_options.rb +0 -5
  141. data/spec/unit/shared/attribute/get.rb +0 -44
  142. data/spec/unit/shared/attribute/inspect.rb +0 -7
  143. data/spec/unit/shared/attribute/set.rb +0 -37
  144. data/spec/unit/virtus/attribute/array_spec.rb +0 -24
  145. data/spec/unit/virtus/attribute/class_spec.rb +0 -24
  146. data/spec/unit/virtus/attribute/date_spec.rb +0 -59
  147. data/spec/unit/virtus/attribute/date_time_spec.rb +0 -87
  148. data/spec/unit/virtus/attribute/decimal_spec.rb +0 -109
  149. data/spec/unit/virtus/attribute/float_spec.rb +0 -109
  150. data/spec/unit/virtus/attribute/hash_spec.rb +0 -11
  151. data/spec/unit/virtus/attribute/integer_spec.rb +0 -99
  152. data/spec/unit/virtus/attribute/string_spec.rb +0 -21
  153. data/spec/unit/virtus/attribute/time_spec.rb +0 -82
  154. data/spec/unit/virtus/class_methods/new_spec.rb +0 -41
@@ -1,14 +1,21 @@
1
1
  begin
2
- require 'rspec/core/rake_task'
3
2
 
4
- desc 'run all specs'
5
- task :spec => ['spec:unit', 'spec:integration', 'spec:examples']
3
+ begin
4
+ require 'rspec/core/rake_task'
5
+ rescue LoadError
6
+ require 'spec/rake/spectask'
6
7
 
7
- namespace :spec do
8
- RSpec::Core::RakeTask.new(:examples) do |t|
9
- t.pattern = 'examples/**/*_spec.rb'
8
+ module RSpec
9
+ module Core
10
+ RakeTask = Spec::Rake::SpecTask
11
+ end
10
12
  end
13
+ end
11
14
 
15
+ desc 'run all specs'
16
+ task :spec => %w[ spec:unit spec:integration ]
17
+
18
+ namespace :spec do
12
19
  RSpec::Core::RakeTask.new(:integration) do |t|
13
20
  t.pattern = 'spec/integration/**/*_spec.rb'
14
21
  end
@@ -26,7 +33,7 @@ end
26
33
  begin
27
34
  desc "Generate code coverage"
28
35
  RSpec::Core::RakeTask.new(:rcov) do |t|
29
- t.rcov = true
36
+ t.rcov = true
30
37
  t.rcov_opts = File.read('spec/rcov.opts').split(/\s+/)
31
38
  end
32
39
  rescue LoadError
@@ -19,5 +19,5 @@ Gem::Specification.new do |gem|
19
19
 
20
20
  gem.add_development_dependency('rake', '~> 0.9.2')
21
21
  gem.add_development_dependency('backports', '~> 2.3.0')
22
- gem.add_development_dependency('rspec', '~> 2.6.0')
22
+ gem.add_development_dependency('rspec', '~> 1.3.2')
23
23
  end
metadata CHANGED
@@ -1,82 +1,59 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: virtus
3
- version: !ruby/object:Gem::Version
4
- hash: 11
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 10
10
- version: 0.0.10
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
- date: 2011-11-21 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2011-11-21 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: rake
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70295232216940 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
18
+ requirements:
26
19
  - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 63
29
- segments:
30
- - 0
31
- - 9
32
- - 2
20
+ - !ruby/object:Gem::Version
33
21
  version: 0.9.2
34
22
  type: :development
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: backports
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70295232216940
25
+ - !ruby/object:Gem::Dependency
26
+ name: backports
27
+ requirement: &70295232216140 !ruby/object:Gem::Requirement
40
28
  none: false
41
- requirements:
29
+ requirements:
42
30
  - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 2
47
- - 3
48
- - 0
31
+ - !ruby/object:Gem::Version
49
32
  version: 2.3.0
50
33
  type: :development
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
53
- name: rspec
54
34
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *70295232216140
36
+ - !ruby/object:Gem::Dependency
37
+ name: rspec
38
+ requirement: &70295232215500 !ruby/object:Gem::Requirement
56
39
  none: false
57
- requirements:
40
+ requirements:
58
41
  - - ~>
59
- - !ruby/object:Gem::Version
60
- hash: 23
61
- segments:
62
- - 2
63
- - 6
64
- - 0
65
- version: 2.6.0
42
+ - !ruby/object:Gem::Version
43
+ version: 1.3.2
66
44
  type: :development
67
- version_requirements: *id003
45
+ prerelease: false
46
+ version_requirements: *70295232215500
68
47
  description: Attributes on Steroids for Plain Old Ruby Objects
69
- email:
48
+ email:
70
49
  - piotr.solnica@gmail.com
71
50
  executables: []
72
-
73
51
  extensions: []
74
-
75
- extra_rdoc_files:
52
+ extra_rdoc_files:
76
53
  - LICENSE
77
54
  - README.md
78
55
  - TODO
79
- files:
56
+ files:
80
57
  - .gitignore
81
58
  - .rvmrc
82
59
  - .travis.yml
@@ -87,34 +64,35 @@ files:
87
64
  - README.md
88
65
  - Rakefile
89
66
  - TODO
90
- - VERSION
91
67
  - config/flay.yml
92
68
  - config/flog.yml
93
69
  - config/roodi.yml
94
70
  - config/site.reek
95
71
  - config/yardstick.yml
96
- - examples/custom_coercion_spec.rb
97
- - examples/default_values_spec.rb
98
- - examples/override_attribute_methods_spec.rb
99
72
  - lib/virtus.rb
100
73
  - lib/virtus/attribute.rb
101
74
  - lib/virtus/attribute/array.rb
102
75
  - lib/virtus/attribute/boolean.rb
103
76
  - lib/virtus/attribute/class.rb
77
+ - lib/virtus/attribute/collection.rb
104
78
  - lib/virtus/attribute/date.rb
105
79
  - lib/virtus/attribute/date_time.rb
106
80
  - lib/virtus/attribute/decimal.rb
107
81
  - lib/virtus/attribute/default_value.rb
82
+ - lib/virtus/attribute/embedded_value.rb
108
83
  - lib/virtus/attribute/float.rb
109
84
  - lib/virtus/attribute/hash.rb
110
85
  - lib/virtus/attribute/integer.rb
111
86
  - lib/virtus/attribute/numeric.rb
112
87
  - lib/virtus/attribute/object.rb
88
+ - lib/virtus/attribute/set.rb
113
89
  - lib/virtus/attribute/string.rb
114
90
  - lib/virtus/attribute/time.rb
115
91
  - lib/virtus/attribute_set.rb
92
+ - lib/virtus/attributes_accessor.rb
116
93
  - lib/virtus/class_methods.rb
117
94
  - lib/virtus/coercion.rb
95
+ - lib/virtus/coercion/array.rb
118
96
  - lib/virtus/coercion/date.rb
119
97
  - lib/virtus/coercion/date_time.rb
120
98
  - lib/virtus/coercion/decimal.rb
@@ -134,35 +112,72 @@ files:
134
112
  - lib/virtus/support/options.rb
135
113
  - lib/virtus/support/type_lookup.rb
136
114
  - lib/virtus/version.rb
137
- - spec/integration/virtus/attributes/attribute/set_spec.rb
138
- - spec/integration/virtus/class_methods/attribute_spec.rb
139
- - spec/integration/virtus/class_methods/attributes_spec.rb
140
- - spec/integration/virtus/class_methods/const_missing_spec.rb
115
+ - spec/integration/collection_member_coercion_spec.rb
116
+ - spec/integration/custom_attributes_spec.rb
117
+ - spec/integration/default_values_spec.rb
118
+ - spec/integration/defining_attributes_spec.rb
119
+ - spec/integration/embedded_value_spec.rb
120
+ - spec/integration/overriding_virtus_spec.rb
121
+ - spec/integration/virtus/instance_level_attributes_spec.rb
141
122
  - spec/rcov.opts
123
+ - spec/shared/constants_helpers.rb
142
124
  - spec/shared/idempotent_method_behaviour.rb
125
+ - spec/shared/options_class_method.rb
143
126
  - spec/spec_helper.rb
144
- - spec/unit/shared/attribute.rb
145
- - spec/unit/shared/attribute/accept_options.rb
146
- - spec/unit/shared/attribute/accepted_options.rb
147
- - spec/unit/shared/attribute/get.rb
148
- - spec/unit/shared/attribute/inspect.rb
149
- - spec/unit/shared/attribute/set.rb
150
- - spec/unit/virtus/attribute/array_spec.rb
127
+ - spec/unit/virtus/attribute/array/coerce_spec.rb
128
+ - spec/unit/virtus/attribute/boolean/coerce_spec.rb
129
+ - spec/unit/virtus/attribute/boolean/define_reader_method_spec.rb
130
+ - spec/unit/virtus/attribute/boolean/value_coerced_spec.rb
151
131
  - spec/unit/virtus/attribute/boolean_spec.rb
132
+ - spec/unit/virtus/attribute/class/coerce_spec.rb
133
+ - spec/unit/virtus/attribute/class_methods/accessor_spec.rb
134
+ - spec/unit/virtus/attribute/class_methods/build_spec.rb
135
+ - spec/unit/virtus/attribute/class_methods/coercion_method_spec.rb
136
+ - spec/unit/virtus/attribute/class_methods/default_spec.rb
152
137
  - spec/unit/virtus/attribute/class_methods/determine_type_spec.rb
153
- - spec/unit/virtus/attribute/class_spec.rb
154
- - spec/unit/virtus/attribute/date_spec.rb
155
- - spec/unit/virtus/attribute/date_time_spec.rb
156
- - spec/unit/virtus/attribute/decimal_spec.rb
138
+ - spec/unit/virtus/attribute/class_methods/merge_options_spec.rb
139
+ - spec/unit/virtus/attribute/class_methods/primitive_spec.rb
140
+ - spec/unit/virtus/attribute/class_methods/reader_spec.rb
141
+ - spec/unit/virtus/attribute/class_methods/writer_spec.rb
142
+ - spec/unit/virtus/attribute/coerce_spec.rb
143
+ - spec/unit/virtus/attribute/coercion_method_spec.rb
144
+ - spec/unit/virtus/attribute/collection/class_methods/merge_options_spec.rb
145
+ - spec/unit/virtus/attribute/collection/coerce_spec.rb
146
+ - spec/unit/virtus/attribute/date/coerce_spec.rb
147
+ - spec/unit/virtus/attribute/date/value_coerced_spec.rb
148
+ - spec/unit/virtus/attribute/date_time/coerce_spec.rb
149
+ - spec/unit/virtus/attribute/decimal/coerce_spec.rb
150
+ - spec/unit/virtus/attribute/default_spec.rb
151
+ - spec/unit/virtus/attribute/default_value/attribute_spec.rb
157
152
  - spec/unit/virtus/attribute/default_value/class_methods/new_spec.rb
153
+ - spec/unit/virtus/attribute/default_value/evaluate_spec.rb
158
154
  - spec/unit/virtus/attribute/default_value/instance_methods/evaluate_spec.rb
159
- - spec/unit/virtus/attribute/float_spec.rb
160
- - spec/unit/virtus/attribute/hash_spec.rb
161
- - spec/unit/virtus/attribute/integer_spec.rb
155
+ - spec/unit/virtus/attribute/default_value/value_spec.rb
156
+ - spec/unit/virtus/attribute/define_accessor_methods_spec.rb
157
+ - spec/unit/virtus/attribute/define_reader_method_spec.rb
158
+ - spec/unit/virtus/attribute/define_writer_method_spec.rb
159
+ - spec/unit/virtus/attribute/embedded_value/class_methods/merge_options_spec.rb
160
+ - spec/unit/virtus/attribute/embedded_value/coerce_spec.rb
161
+ - spec/unit/virtus/attribute/float/coerce_spec.rb
162
+ - spec/unit/virtus/attribute/get_spec.rb
163
+ - spec/unit/virtus/attribute/inspect_spec.rb
164
+ - spec/unit/virtus/attribute/instance_variable_name_spec.rb
165
+ - spec/unit/virtus/attribute/integer/coerce_spec.rb
166
+ - spec/unit/virtus/attribute/name_spec.rb
162
167
  - spec/unit/virtus/attribute/numeric/class_methods/descendants_spec.rb
168
+ - spec/unit/virtus/attribute/numeric/class_methods/max_spec.rb
169
+ - spec/unit/virtus/attribute/numeric/class_methods/min_spec.rb
163
170
  - spec/unit/virtus/attribute/object/class_methods/descendants_spec.rb
164
- - spec/unit/virtus/attribute/string_spec.rb
165
- - spec/unit/virtus/attribute/time_spec.rb
171
+ - spec/unit/virtus/attribute/options_spec.rb
172
+ - spec/unit/virtus/attribute/public_reader_spec.rb
173
+ - spec/unit/virtus/attribute/public_writer_spec.rb
174
+ - spec/unit/virtus/attribute/reader_visibility_spec.rb
175
+ - spec/unit/virtus/attribute/set/coerce_spec.rb
176
+ - spec/unit/virtus/attribute/set_spec.rb
177
+ - spec/unit/virtus/attribute/string/coerce_spec.rb
178
+ - spec/unit/virtus/attribute/time/coerce_spec.rb
179
+ - spec/unit/virtus/attribute/value_coerced_spec.rb
180
+ - spec/unit/virtus/attribute/writer_visibility_spec.rb
166
181
  - spec/unit/virtus/attribute_set/append_spec.rb
167
182
  - spec/unit/virtus/attribute_set/each_spec.rb
168
183
  - spec/unit/virtus/attribute_set/element_reference_spec.rb
@@ -170,14 +185,19 @@ files:
170
185
  - spec/unit/virtus/attribute_set/merge_spec.rb
171
186
  - spec/unit/virtus/attribute_set/parent_spec.rb
172
187
  - spec/unit/virtus/attribute_set/reset_spec.rb
188
+ - spec/unit/virtus/attributes_accessor/inspect_spec.rb
173
189
  - spec/unit/virtus/class_methods/attribute_spec.rb
174
190
  - spec/unit/virtus/class_methods/attributes_spec.rb
175
- - spec/unit/virtus/class_methods/new_spec.rb
191
+ - spec/unit/virtus/class_methods/const_missing_spec.rb
192
+ - spec/unit/virtus/class_methods/inherited_spec.rb
193
+ - spec/unit/virtus/coercion/array/to_set_spec.rb
176
194
  - spec/unit/virtus/coercion/class_name_reference_spec.rb
195
+ - spec/unit/virtus/coercion/date/class_methods/to_date_spec.rb
177
196
  - spec/unit/virtus/coercion/date/class_methods/to_datetime_spec.rb
178
197
  - spec/unit/virtus/coercion/date/class_methods/to_string_spec.rb
179
198
  - spec/unit/virtus/coercion/date/class_methods/to_time_spec.rb
180
199
  - spec/unit/virtus/coercion/date_time/class_methods/to_date_spec.rb
200
+ - spec/unit/virtus/coercion/date_time/class_methods/to_datetime_spec.rb
181
201
  - spec/unit/virtus/coercion/date_time/class_methods/to_string_spec.rb
182
202
  - spec/unit/virtus/coercion/date_time/class_methods/to_time_spec.rb
183
203
  - spec/unit/virtus/coercion/decimal/class_methods/to_float_spec.rb
@@ -205,12 +225,14 @@ files:
205
225
  - spec/unit/virtus/coercion/string/class_methods/to_integer_spec.rb
206
226
  - spec/unit/virtus/coercion/string/class_methods/to_time_spec.rb
207
227
  - spec/unit/virtus/coercion/symbol/class_methods/to_string_spec.rb
228
+ - spec/unit/virtus/coercion/time/class_methods/to_time_spec.rb
208
229
  - spec/unit/virtus/coercion/true_class/class_methods/to_string_spec.rb
209
230
  - spec/unit/virtus/descendants_tracker/add_descendant_spec.rb
210
231
  - spec/unit/virtus/descendants_tracker/descendants_spec.rb
211
232
  - spec/unit/virtus/instance_methods/attributes_spec.rb
212
233
  - spec/unit/virtus/instance_methods/element_reference_spec.rb
213
234
  - spec/unit/virtus/instance_methods/element_set_spec.rb
235
+ - spec/unit/virtus/instance_methods/to_hash_spec.rb
214
236
  - spec/unit/virtus/options/accept_options_spec.rb
215
237
  - spec/unit/virtus/options/accepted_options_spec.rb
216
238
  - spec/unit/virtus/options/options_spec.rb
@@ -219,6 +241,7 @@ files:
219
241
  - tasks/metrics/ci.rake
220
242
  - tasks/metrics/flay.rake
221
243
  - tasks/metrics/flog.rake
244
+ - tasks/metrics/heckle.rake
222
245
  - tasks/metrics/metric_fu.rake
223
246
  - tasks/metrics/reek.rake
224
247
  - tasks/metrics/roodi.rake
@@ -228,36 +251,27 @@ files:
228
251
  - virtus.gemspec
229
252
  homepage: https://github.com/solnic/virtus
230
253
  licenses: []
231
-
232
254
  post_install_message:
233
255
  rdoc_options: []
234
-
235
- require_paths:
256
+ require_paths:
236
257
  - lib
237
- required_ruby_version: !ruby/object:Gem::Requirement
258
+ required_ruby_version: !ruby/object:Gem::Requirement
238
259
  none: false
239
- requirements:
240
- - - ">="
241
- - !ruby/object:Gem::Version
242
- hash: 3
243
- segments:
244
- - 0
245
- version: "0"
246
- required_rubygems_version: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - ! '>='
262
+ - !ruby/object:Gem::Version
263
+ version: '0'
264
+ required_rubygems_version: !ruby/object:Gem::Requirement
247
265
  none: false
248
- requirements:
249
- - - ">="
250
- - !ruby/object:Gem::Version
251
- hash: 3
252
- segments:
253
- - 0
254
- version: "0"
266
+ requirements:
267
+ - - ! '>='
268
+ - !ruby/object:Gem::Version
269
+ version: '0'
255
270
  requirements: []
256
-
257
271
  rubyforge_project:
258
272
  rubygems_version: 1.8.11
259
273
  signing_key:
260
274
  specification_version: 3
261
275
  summary: Attributes on Steroids for Plain Old Ruby Objects
262
276
  test_files: []
263
-
277
+ has_rdoc:
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.0.9
@@ -1,50 +0,0 @@
1
- require './spec/spec_helper'
2
-
3
- class Md5 < Virtus::Attribute::Object
4
- primitive String
5
- coercion_method :to_md5
6
- end
7
-
8
- module Virtus
9
- class Coercion
10
- class String < Virtus::Coercion::Object
11
- def self.to_md5(value)
12
- Digest::MD5.hexdigest(value)
13
- end
14
- end
15
- end
16
- end
17
-
18
- class User
19
- include Virtus
20
-
21
- attribute :name, String
22
- attribute :password, Md5
23
- end
24
-
25
- describe User do
26
- it { should respond_to(:name) }
27
- it { should respond_to(:name=) }
28
- it { should respond_to(:password) }
29
- it { should respond_to(:password=) }
30
-
31
- describe '#name=' do
32
- let(:value) { 'Piotr' }
33
-
34
- before do
35
- subject.name = value
36
- end
37
-
38
- its(:name) { should == value }
39
- end
40
-
41
- describe '#password=' do
42
- let(:value) { 'foobar' }
43
-
44
- before do
45
- subject.password = value
46
- end
47
-
48
- its(:password) { should == Virtus::Coercion::String.to_md5(value) }
49
- end
50
- end
@@ -1,21 +0,0 @@
1
- require './spec/spec_helper'
2
-
3
- class Page
4
- include Virtus
5
-
6
- attribute :title, String
7
- attribute :slug, String, :default => lambda { |post, attribute| post.title.downcase.gsub(' ', '-') }
8
- attribute :view_count, Integer, :default => 0
9
- end
10
-
11
- describe Page do
12
- describe '#slug' do
13
- before { subject.title = 'Virtus Is Awesome' }
14
-
15
- its(:slug) { should eql('virtus-is-awesome') }
16
- end
17
-
18
- describe '#views_count' do
19
- its(:view_count) { should eql(0) }
20
- end
21
- end