domain_model 0.1.3 → 0.1.4

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.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ OGVkNWYxNzY4NDEyOThhMDM3NDY5MDM5YmQzNGRmNDFjYjBmYTcwMA==
5
+ data.tar.gz: !binary |-
6
+ MjQxZWFkZmZjZmY5ZmI3N2RkNWM2M2I3Y2YzODAyMGNhMGNlZjU3Ng==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ ODNlMDk1Y2M5NTlhOTZhODM1NDE2MDg4NmYzMTA4ODU1YTM2ZjVhODJmY2Fi
10
+ MTBlMGJjNjZmMDY4NzRjZWMxZmEzZDE2N2Y4ODgyZDc0MmU4N2RjNTlkZWZj
11
+ NTZlMTFhNjMyMmE1NTQ3ZjljZTE4MzAzZDRjMGI1NjQ4ZjkwMTM=
12
+ data.tar.gz: !binary |-
13
+ MTg1ZjJhODQwYWVhZDc2ZjUwYmRjNzY3MjM0ZTE5MzAyYTU1ZjY1NWI1ZTZh
14
+ MDRkMGI4YTEyZDczYWVmZDNmZWUxZjE1YzBkZTQ3NWZhZmY3ZmU4MDYzZjI3
15
+ ODE4YmI3MmJiMWM5ZDhiMDc3ZjJhMjQzZjJiZDY4MTM5MWQ1ZGM=
data/README.md CHANGED
@@ -1,14 +1,6 @@
1
- # Sanctum
2
-
3
- Sanctum provides a minimal set of utilties for declaring object attributes with optional type and validation support.
4
-
5
- Features
6
-
7
- * Sanctum produces objects that look like totally normal ruby objects, not specialized "framework" objects (like descendents of ActiveRecord::Base or ActiveModel::Base)
8
- * Sanctum allows you to declare the type of
9
-
10
- ## Background
1
+ # DomainModel
11
2
 
3
+ Domain provides a minimal set of utilties for declaring object attributes with optional type and validation support.
12
4
 
13
5
  ## Development
14
6
 
data/domain_model.gemspec CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
8
8
  spec.version = DomainModel::VERSION
9
9
  spec.authors = ["Rafer Hazen"]
10
10
  spec.email = ["rafer@ralua.com"]
11
- spec.summary = %q{Minimal framework for definition of type-aware domain models}
11
+ spec.summary = %q{Minimal framework for definition of (optionally) type-aware domain models}
12
12
  spec.description = spec.summary
13
13
  spec.homepage = ""
14
14
  spec.license = "MIT"
@@ -1,3 +1,3 @@
1
1
  module DomainModel
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
data/lib/domain_model.rb CHANGED
@@ -49,7 +49,6 @@ module DomainModel
49
49
 
50
50
  module ClassMethods
51
51
  def validate(*args, &block)
52
- @validations ||= []
53
52
  validations << Validation.new(*args, &block)
54
53
  end
55
54
 
@@ -65,7 +64,9 @@ module DomainModel
65
64
  end
66
65
 
67
66
  def validations
68
- @validations ||= []
67
+ @validations ||= begin
68
+ superclass.include?(DomainModel) ? (superclass.validations.dup) : []
69
+ end
69
70
  end
70
71
 
71
72
  def from_primitive(primitive)
@@ -141,6 +142,7 @@ module DomainModel
141
142
  Validator.errors(self, value)
142
143
  end
143
144
 
145
+
144
146
  def monotype
145
147
  types.first if types.count == 1
146
148
  end
@@ -305,7 +307,7 @@ module DomainModel
305
307
 
306
308
  def type_mismatch?
307
309
  types.none? { |t| value.is_a?(t) }
308
- end
310
+ end
309
311
 
310
312
  def type_string
311
313
  types.map(&:inspect).join(' or ')
@@ -144,6 +144,17 @@ describe DomainModel do
144
144
  expect(client.errors[:field]).to eq(["cannot be nil"])
145
145
  end
146
146
  end
147
+
148
+ it "runs the parent validations in subclasses" do
149
+ define do
150
+ field :field
151
+ validate(:field) { |e| e.add("errors") }
152
+ end
153
+
154
+ child_client = Class.new(Client).new
155
+
156
+ expect(child_client.errors[:field]).to eq(["errors"])
157
+ end
147
158
  end
148
159
 
149
160
  describe ".new" do
metadata CHANGED
@@ -1,77 +1,64 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: domain_model
3
- version: !ruby/object:Gem::Version
4
- hash: 29
5
- prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 3
10
- version: 0.1.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.4
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Rafer Hazen
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2014-03-18 00:00:00 -06:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
11
+ date: 2014-09-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
22
14
  name: bundler
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
27
17
  - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 9
30
- segments:
31
- - 1
32
- - 3
33
- version: "1.3"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
34
20
  type: :development
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: rake
38
21
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
- version: "0"
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
48
34
  type: :development
49
- version_requirements: *id002
50
- - !ruby/object:Gem::Dependency
51
- name: rspec
52
35
  prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
54
- none: false
55
- requirements:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
56
45
  - - ~>
57
- - !ruby/object:Gem::Version
58
- hash: 31
59
- segments:
60
- - 2
61
- - 14
62
- version: "2.14"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.14'
63
48
  type: :development
64
- version_requirements: *id003
65
- description: Minimal framework for definition of type-aware domain models
66
- email:
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '2.14'
55
+ description: Minimal framework for definition of (optionally) type-aware domain models
56
+ email:
67
57
  - rafer@ralua.com
68
58
  executables: []
69
-
70
59
  extensions: []
71
-
72
60
  extra_rdoc_files: []
73
-
74
- files:
61
+ files:
75
62
  - .gitignore
76
63
  - Gemfile
77
64
  - LICENSE.txt
@@ -82,40 +69,30 @@ files:
82
69
  - lib/domain_model/version.rb
83
70
  - spec/domain_model_spec.rb
84
71
  - spec/spec_helper.rb
85
- has_rdoc: true
86
- homepage: ""
87
- licenses:
72
+ homepage: ''
73
+ licenses:
88
74
  - MIT
75
+ metadata: {}
89
76
  post_install_message:
90
77
  rdoc_options: []
91
-
92
- require_paths:
78
+ require_paths:
93
79
  - lib
94
- required_ruby_version: !ruby/object:Gem::Requirement
95
- none: false
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- hash: 3
100
- segments:
101
- - 0
102
- version: "0"
103
- required_rubygems_version: !ruby/object:Gem::Requirement
104
- none: false
105
- requirements:
106
- - - ">="
107
- - !ruby/object:Gem::Version
108
- hash: 3
109
- segments:
110
- - 0
111
- version: "0"
80
+ required_ruby_version: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ! '>='
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ required_rubygems_version: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
112
90
  requirements: []
113
-
114
91
  rubyforge_project:
115
- rubygems_version: 1.6.2
92
+ rubygems_version: 2.3.0
116
93
  signing_key:
117
- specification_version: 3
118
- summary: Minimal framework for definition of type-aware domain models
119
- test_files:
94
+ specification_version: 4
95
+ summary: Minimal framework for definition of (optionally) type-aware domain models
96
+ test_files:
120
97
  - spec/domain_model_spec.rb
121
98
  - spec/spec_helper.rb