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 +15 -0
- data/README.md +2 -10
- data/domain_model.gemspec +1 -1
- data/lib/domain_model/version.rb +1 -1
- data/lib/domain_model.rb +5 -3
- data/spec/domain_model_spec.rb +11 -0
- metadata +61 -84
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
|
-
#
|
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"
|
data/lib/domain_model/version.rb
CHANGED
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
|
-
|
310
|
+
end
|
309
311
|
|
310
312
|
def type_string
|
311
313
|
types.map(&:inspect).join(' or ')
|
data/spec/domain_model_spec.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
19
|
-
|
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
|
-
|
24
|
-
|
25
|
-
none: false
|
26
|
-
requirements:
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
27
17
|
- - ~>
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
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
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
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
|
-
|
54
|
-
|
55
|
-
|
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
|
-
|
59
|
-
segments:
|
60
|
-
- 2
|
61
|
-
- 14
|
62
|
-
version: "2.14"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.14'
|
63
48
|
type: :development
|
64
|
-
|
65
|
-
|
66
|
-
|
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
|
-
|
86
|
-
|
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
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
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:
|
92
|
+
rubygems_version: 2.3.0
|
116
93
|
signing_key:
|
117
|
-
specification_version:
|
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
|