schematic 0.3.7 → 0.3.8
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.
data/README.rdoc
CHANGED
@@ -23,6 +23,14 @@ Then run:
|
|
23
23
|
|
24
24
|
Post.to_xsd => (a bunch of xml)
|
25
25
|
|
26
|
+
Validations will automatically add restrictions to the XSD for fields. If a validation has a conditional
|
27
|
+
if or unless option it will be skipped. However if you wish to force the inclusion of the validation in
|
28
|
+
the XSD you can set: { :xsd => { :include => true } } in the options e.g.
|
29
|
+
|
30
|
+
class Post < ActiveRecord::Base
|
31
|
+
validates :category, :inclusion => { :in => ["foo", "bar"], :xsd => { :include => true } }, :if => lambda { ... }
|
32
|
+
end
|
33
|
+
|
26
34
|
You can include additional elements by defining a ".xsd_methods" on your class:
|
27
35
|
|
28
36
|
class Post < ActiveRecord::Base
|
data/lib/schematic/version.rb
CHANGED
@@ -10,18 +10,22 @@ describe Schematic::Generator::Restrictions::Enumeration do
|
|
10
10
|
t.string "title"
|
11
11
|
t.string "should_be_skipped"
|
12
12
|
t.string "should_also_be_skipped"
|
13
|
+
t.string "and_also_be_skipped"
|
13
14
|
t.boolean "active"
|
14
15
|
t.string "options"
|
15
16
|
t.integer "force_enumeration"
|
17
|
+
t.integer "skip_enumeration"
|
16
18
|
end
|
17
19
|
|
18
20
|
model do
|
19
21
|
validates :title, :inclusion => { :in => ["a", "b", "c"] }
|
20
22
|
validates :should_be_skipped, :inclusion => ["a", "b", "c"], :if => lambda { false }
|
21
23
|
validates :should_also_be_skipped, :inclusion => ["a", "b", "c"], :unless => lambda { false }
|
24
|
+
validates :and_also_be_skipped, :inclusion => ["a", "b", "c"], :if => lambda { true}, :unless => lambda { false }
|
22
25
|
validates :active, :inclusion => { :in => [true, false] }
|
23
26
|
validates :options, :inclusion => { :in => lambda { |f| ["some valid attribute"] } }
|
24
27
|
validates :force_enumeration, :inclusion => { :in => [1, 2], :xsd => { :include => true} }, :if => lambda { false }
|
28
|
+
validates :skip_enumeration, :inclusion => { :in => [1, 2], :xsd => { :include => false} }, :if => lambda { true }
|
25
29
|
end
|
26
30
|
end
|
27
31
|
|
@@ -31,7 +35,14 @@ describe Schematic::Generator::Restrictions::Enumeration do
|
|
31
35
|
lambda {
|
32
36
|
validate_xml_against_xsd(xml, subject)
|
33
37
|
}.should raise_error
|
34
|
-
valid_instance = EnumerationModel.new(:title => "a",
|
38
|
+
valid_instance = EnumerationModel.new(:title => "a",
|
39
|
+
:should_be_skipped => "a",
|
40
|
+
:should_also_be_skipped => "a",
|
41
|
+
:and_also_be_skipped => "a",
|
42
|
+
:active => true,
|
43
|
+
:options => "some valid attribute",
|
44
|
+
:force_enumeration => 2,
|
45
|
+
:skip_enumeration => 2)
|
35
46
|
xml = [valid_instance].to_xml
|
36
47
|
lambda {
|
37
48
|
validate_xml_against_xsd(xml, subject)
|
@@ -68,6 +79,14 @@ describe Schematic::Generator::Restrictions::Enumeration do
|
|
68
79
|
</xs:simpleContent>
|
69
80
|
</xs:complexType>
|
70
81
|
</xs:element>
|
82
|
+
<xs:element name="and-also-be-skipped" minOccurs="0" maxOccurs="1">
|
83
|
+
<xs:complexType>
|
84
|
+
<xs:simpleContent>
|
85
|
+
<xs:restriction base="String">
|
86
|
+
</xs:restriction>
|
87
|
+
</xs:simpleContent>
|
88
|
+
</xs:complexType>
|
89
|
+
</xs:element>
|
71
90
|
<xs:element name="active" minOccurs="0" maxOccurs="1">
|
72
91
|
<xs:complexType>
|
73
92
|
<xs:simpleContent>
|
@@ -94,6 +113,14 @@ describe Schematic::Generator::Restrictions::Enumeration do
|
|
94
113
|
</xs:simpleContent>
|
95
114
|
</xs:complexType>
|
96
115
|
</xs:element>
|
116
|
+
<xs:element name="skip-enumeration" minOccurs="0" maxOccurs="1">
|
117
|
+
<xs:complexType>
|
118
|
+
<xs:simpleContent>
|
119
|
+
<xs:restriction base="Integer">
|
120
|
+
</xs:restriction>
|
121
|
+
</xs:simpleContent>
|
122
|
+
</xs:complexType>
|
123
|
+
</xs:element>
|
97
124
|
XML
|
98
125
|
end
|
99
126
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: schematic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.3.
|
5
|
+
version: 0.3.8
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Case Commons, LLC
|
@@ -154,7 +154,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
154
154
|
requirements:
|
155
155
|
- - ">="
|
156
156
|
- !ruby/object:Gem::Version
|
157
|
-
hash:
|
157
|
+
hash: 3119055094098631503
|
158
158
|
segments:
|
159
159
|
- 0
|
160
160
|
version: "0"
|
@@ -163,7 +163,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
163
163
|
requirements:
|
164
164
|
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
hash:
|
166
|
+
hash: 3119055094098631503
|
167
167
|
segments:
|
168
168
|
- 0
|
169
169
|
version: "0"
|