Class: CSL::Schema
Class Attribute Summary collapse
-
.attributes ⇒ Object
Returns the value of attribute attributes.
-
.categories ⇒ Object
Returns the value of attribute categories.
-
.default_license ⇒ Object
Returns the value of attribute default_license.
-
.default_rights_string ⇒ Object
Returns the value of attribute default_rights_string.
-
.major_version ⇒ Object
Returns the value of attribute major_version.
-
.namespace ⇒ Object
Returns the value of attribute namespace.
-
.preamble ⇒ Object
Returns the value of attribute preamble.
-
.types ⇒ Object
Returns the value of attribute types.
-
.values ⇒ Object
Returns the value of attribute values.
-
.variables ⇒ Object
Returns the value of attribute variables.
-
.version ⇒ Object
Returns the value of attribute version.
Class Method Summary collapse
- .attr(*arguments) ⇒ Object
-
.valid?(style) ⇒ Boolean
Whether or not the passed-in style (or list of styles) is valid.
-
.validate(node) ⇒ <<Fixnum,String>>
Validates the passed-in style or list of styles.
Class Attribute Details
.attributes ⇒ Object
Returns the value of attribute attributes.
150 151 152 |
# File 'lib/csl/schema.rb', line 150 def attributes @attributes end |
.categories ⇒ Object
Returns the value of attribute categories.
150 151 152 |
# File 'lib/csl/schema.rb', line 150 def categories @categories end |
.default_license ⇒ Object
Returns the value of attribute default_license.
150 151 152 |
# File 'lib/csl/schema.rb', line 150 def default_license @default_license end |
.default_rights_string ⇒ Object
Returns the value of attribute default_rights_string.
150 151 152 |
# File 'lib/csl/schema.rb', line 150 def default_rights_string @default_rights_string end |
.major_version ⇒ Object
Returns the value of attribute major_version.
150 151 152 |
# File 'lib/csl/schema.rb', line 150 def major_version @major_version end |
.namespace ⇒ Object
Returns the value of attribute namespace.
150 151 152 |
# File 'lib/csl/schema.rb', line 150 def namespace @namespace end |
.preamble ⇒ Object
Returns the value of attribute preamble.
150 151 152 |
# File 'lib/csl/schema.rb', line 150 def preamble @preamble end |
.types ⇒ Object
Returns the value of attribute types.
150 151 152 |
# File 'lib/csl/schema.rb', line 150 def types @types end |
.values ⇒ Object
Returns the value of attribute values.
150 151 152 |
# File 'lib/csl/schema.rb', line 150 def values @values end |
.variables ⇒ Object
Returns the value of attribute variables.
150 151 152 |
# File 'lib/csl/schema.rb', line 150 def variables @variables end |
.version ⇒ Object
Returns the value of attribute version.
150 151 152 |
# File 'lib/csl/schema.rb', line 150 def version @version end |
Class Method Details
.attr(*arguments) ⇒ Object
156 157 158 |
# File 'lib/csl/schema.rb', line 156 def attr(*arguments) attributes.values_at(*arguments).flatten(1) end |
.valid?(style) ⇒ Boolean
Whether or not the passed-in style (or list of styles) is valid.
224 225 226 |
# File 'lib/csl/schema.rb', line 224 def valid?(style) validate(style).empty? end |
.validate(node) ⇒ <<Fixnum,String>>
Validates the passed-in style or list of styles. The style argument(s) can either be a CSL::Style object, a style’s file handle, XML content or a valid location (wildcards are supported). The method returns a list of validation errors; the passed-in style is valid if the method returns an empty list.
181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 |
# File 'lib/csl/schema.rb', line 181 def validate(node) case when node.is_a?(Node) @validator[@schema, node.to_xml] when node.respond_to?(:read) @validator[@schema, node.read] when node.is_a?(Enumerable) && !node.is_a?(String) node.map { |n| validate(n) }.flatten(1) when node.respond_to?(:to_s) node = node.to_s case when node =~ /^\s*</ @validator[@schema, node] when File.exists?(node) @validator[@schema, File.open(node, 'r:UTF-8')] else glob = Dir.glob(node) if glob.empty? @validator[@schema, Kernel.open(node)] else glob.map { |n| @validator[@schema, File.open(n, 'r:UTF-8')] }.flatten(1) end end else raise ArgumentError, "failed to validate #{node.inspect}: not a CSL node" end end |