id 0.0.12 → 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -3
  3. data/Gemfile.lock +25 -10
  4. data/LICENSE.md +1 -1
  5. data/README.md +173 -35
  6. data/id.gemspec +8 -3
  7. data/lib/id.rb +21 -15
  8. data/lib/id/active_model.rb +30 -0
  9. data/lib/id/association.rb +26 -0
  10. data/lib/id/boolean.rb +8 -0
  11. data/lib/id/coercion.rb +38 -0
  12. data/lib/id/eta_expansion.rb +5 -0
  13. data/lib/id/field.rb +46 -0
  14. data/lib/id/field/definition.rb +44 -0
  15. data/lib/id/field/summary.rb +35 -0
  16. data/lib/id/form.rb +41 -13
  17. data/lib/id/form_backwards_compatibility.rb +6 -0
  18. data/lib/id/hashifier.rb +13 -24
  19. data/lib/id/model.rb +29 -25
  20. data/lib/id/timestamps.rb +15 -15
  21. data/lib/id/validations.rb +8 -0
  22. data/spec/examples/cat_spec.rb +37 -0
  23. data/spec/lib/id/active_model_spec.rb +40 -0
  24. data/spec/lib/id/association_spec.rb +73 -0
  25. data/spec/lib/id/boolean_spec.rb +38 -0
  26. data/spec/lib/id/coercion_spec.rb +53 -0
  27. data/spec/lib/id/eta_expansion_spec.rb +13 -0
  28. data/spec/lib/id/field/definition_spec.rb +37 -0
  29. data/spec/lib/id/field/summary_spec.rb +26 -0
  30. data/spec/lib/id/field_spec.rb +62 -0
  31. data/spec/lib/id/form_spec.rb +84 -0
  32. data/spec/lib/id/hashifier_spec.rb +19 -0
  33. data/spec/lib/id/model_spec.rb +30 -180
  34. data/spec/lib/id/timestamps_spec.rb +22 -20
  35. data/spec/lib/id/validations_spec.rb +18 -0
  36. data/spec/spec_helper.rb +11 -5
  37. data/spec/support/dummy_rails_form_builder.rb +9 -0
  38. metadata +84 -26
  39. data/lib/id/form/active_model_form.rb +0 -41
  40. data/lib/id/form/descriptor.rb +0 -27
  41. data/lib/id/form/field_form.rb +0 -14
  42. data/lib/id/form/field_with_form_support.rb +0 -12
  43. data/lib/id/missing_attribute_error.rb +0 -4
  44. data/lib/id/model/association.rb +0 -49
  45. data/lib/id/model/definer.rb +0 -23
  46. data/lib/id/model/descriptor.rb +0 -23
  47. data/lib/id/model/field.rb +0 -61
  48. data/lib/id/model/has_many.rb +0 -11
  49. data/lib/id/model/has_one.rb +0 -17
  50. data/lib/id/model/type_casts.rb +0 -96
  51. data/spec/lib/id/model/association_spec.rb +0 -27
  52. data/spec/lib/id/model/field_spec.rb +0 -0
  53. data/spec/lib/id/model/form_spec.rb +0 -56
  54. data/spec/lib/id/model/type_casts_spec.rb +0 -44
  55. data/spec/lib/mike_spec.rb +0 -20
@@ -1,44 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module Id
4
- module Model
5
- module TypeCasts
6
-
7
- describe Cast do
8
- it 'requires a type' do
9
- expect { Cast.new(1).type }.to raise_error NotImplementedError
10
- end
11
-
12
- it 'requires a conversion' do
13
- expect { Cast.new(1).conversion }.to raise_error NotImplementedError
14
- end
15
-
16
- end
17
-
18
- describe Date do
19
- it 'casts strings to dates' do
20
- Date.new("06-06-1983").cast.should eq ::Date.new(1983, 6, 6)
21
- end
22
- end
23
-
24
- describe Time do
25
- it 'casts strings to Times' do
26
- Time.new("06-06-1983").cast.should eq ::Time.parse("06-06-1983")
27
- end
28
-
29
- it 'does nothing if the value is already of the correct type' do
30
- time = ::Time.now
31
- Time.new(time).cast.should eq time
32
- end
33
- end
34
-
35
- describe Money do
36
- it 'ints or strings to Money' do
37
- Money.new("500").cast.should eq ::Money.new(5_00)
38
- Money.new(500).cast.should eq ::Money.new(5_00)
39
- end
40
- end
41
-
42
- end
43
- end
44
- end
@@ -1,20 +0,0 @@
1
- require 'spec_helper'
2
-
3
- class Mike
4
- include Id::Model
5
-
6
- field :cat
7
- field :dog, :optional => true
8
-
9
- def catdog
10
- dog.value_or cat
11
- end
12
-
13
- end
14
-
15
- describe "Foobar" do
16
- let (:mike) { Mike.new(:cat => 'pooface') }
17
- it 'returns cat' do
18
- mike.catdog.should eq 'pooface'
19
- end
20
- end