domain_model 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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