Module: Shale
- Defined in:
- lib/shale.rb,
lib/shale/error.rb,
lib/shale/utils.rb,
lib/shale/mapper.rb,
lib/shale/schema.rb,
lib/shale/version.rb,
lib/shale/attribute.rb,
lib/shale/type/date.rb,
lib/shale/type/time.rb,
lib/shale/adapter/ox.rb,
lib/shale/type/float.rb,
lib/shale/type/value.rb,
lib/shale/adapter/csv.rb,
lib/shale/mapping/xml.rb,
lib/shale/type/string.rb,
lib/shale/adapter/json.rb,
lib/shale/mapping/dict.rb,
lib/shale/type/boolean.rb,
lib/shale/type/complex.rb,
lib/shale/type/integer.rb,
lib/shale/adapter/rexml.rb,
lib/shale/adapter/ox/node.rb,
lib/shale/adapter/toml_rb.rb,
lib/shale/adapter/nokogiri.rb,
lib/shale/mapping/xml_base.rb,
lib/shale/mapping/delegates.rb,
lib/shale/mapping/dict_base.rb,
lib/shale/mapping/group/xml.rb,
lib/shale/mapping/validator.rb,
lib/shale/mapping/xml_group.rb,
lib/shale/adapter/rexml/node.rb,
lib/shale/mapping/dict_group.rb,
lib/shale/mapping/group/dict.rb,
lib/shale/adapter/ox/document.rb,
lib/shale/schema/xml_compiler.rb,
lib/shale/schema/compiler/date.rb,
lib/shale/schema/compiler/time.rb,
lib/shale/schema/json_compiler.rb,
lib/shale/schema/xml_generator.rb,
lib/shale/adapter/nokogiri/node.rb,
lib/shale/schema/compiler/float.rb,
lib/shale/schema/compiler/value.rb,
lib/shale/schema/json_generator.rb,
lib/shale/adapter/rexml/document.rb,
lib/shale/mapping/descriptor/xml.rb,
lib/shale/schema/compiler/string.rb,
lib/shale/mapping/descriptor/dict.rb,
lib/shale/schema/compiler/boolean.rb,
lib/shale/schema/compiler/complex.rb,
lib/shale/schema/compiler/integer.rb,
lib/shale/schema/compiler/property.rb,
lib/shale/adapter/nokogiri/document.rb,
lib/shale/schema/json_generator/ref.rb,
lib/shale/mapping/group/xml_grouping.rb,
lib/shale/schema/json_generator/base.rb,
lib/shale/schema/json_generator/date.rb,
lib/shale/schema/json_generator/time.rb,
lib/shale/mapping/group/dict_grouping.rb,
lib/shale/schema/compiler/xml_complex.rb,
lib/shale/schema/json_generator/float.rb,
lib/shale/schema/json_generator/value.rb,
lib/shale/schema/xml_generator/import.rb,
lib/shale/schema/xml_generator/schema.rb,
lib/shale/schema/compiler/xml_property.rb,
lib/shale/schema/json_generator/object.rb,
lib/shale/schema/json_generator/schema.rb,
lib/shale/schema/json_generator/string.rb,
lib/shale/schema/xml_generator/element.rb,
lib/shale/schema/json_generator/boolean.rb,
lib/shale/schema/json_generator/integer.rb,
lib/shale/schema/xml_generator/attribute.rb,
lib/shale/mapping/descriptor/xml_namespace.rb,
lib/shale/schema/json_generator/collection.rb,
lib/shale/schema/xml_generator/ref_element.rb,
lib/shale/schema/xml_generator/complex_type.rb,
lib/shale/schema/xml_generator/ref_attribute.rb,
lib/shale/schema/xml_generator/typed_element.rb,
lib/shale/schema/xml_generator/typed_attribute.rb
Overview
Main library namespace
Shale uses adapters for parsing and serializing documents. For handling JSON, YAML, TOML and CSV, adapter must implement .load and .dump methods, so e.g for handling JSON, MultiJson works out of the box.
Adapters for XML handling are more complicated and must conform to [@see shale/adapter/rexml] Shale provides adaters for most popular XML parsing libraries: Shale::Adapter::REXML, Shale::Adapter::Nokogiri and Shale::Adapter::Ox
By default Shale::Adapter::REXML is used so no external dependencies are needed, but it’s not as performant as Nokogiri or Ox, so you may want to change it.
Defined Under Namespace
Modules: Adapter, Mapping, Schema, Type, Utils Classes: AdapterError, Attribute, AttributeNotDefinedError, DefaultNotCallableError, IncorrectMappingArgumentsError, IncorrectModelError, Mapper, NotAShaleMapperError, ParseError, SchemaError, ShaleError, UnknownAttributeError
Constant Summary collapse
- TOML_ADAPTER_NOT_SET_MESSAGE =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
Error message displayed when TOML adapter is not set
<<~MSG TOML Adapter is not set. To use Shale with TOML documents you have to install parser and set adapter. # To use Tomlib: # Make sure tomlib is installed eg. execute: gem install tomlib Shale.toml_adapter = Tomlib # To use toml-rb: # Make sure toml-rb is installed eg. execute: gem install toml-rb require 'shale/adapter/toml_rb' Shale.toml_adapter = Shale::Adapter::TomlRB MSG
- XML_ADAPTER_NOT_SET_MESSAGE =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
Error message displayed when XML adapter is not set
<<~MSG XML Adapter is not set. To use Shale with XML documents you have to install parser and set adapter. # To use REXML: require 'shale/adapter/rexml' Shale.xml_adapter = Shale::Adapter::REXML # To use Nokogiri: # Make sure Nokogiri is installed eg. execute: gem install nokogiri require 'shale/adapter/nokogiri' Shale.xml_adapter = Shale::Adapter::Nokogiri # To use OX: # Make sure Ox is installed eg. execute: gem install ox require 'shale/adapter/ox' Shale.xml_adapter = Shale::Adapter::Ox MSG
- CSV_ADAPTER_NOT_SET_MESSAGE =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
Error message displayed when CSV adapter is not set
<<~MSG CSV Adapter is not set. To use Shale with CSV documents you have to install parser and set adapter. # To use csv gem: # Make sure csv is installed eg. execute: gem install csv require 'shale/adapter/csv' Shale.csv_adapter = Shale::Adapter::CSV MSG
- VERSION =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
'1.1.0'
Class Attribute Summary collapse
-
.csv_adapter ⇒ Object
Set CSV adapter.
-
.json_adapter ⇒ .load, .dump
Return JSON adapter.
-
.toml_adapter ⇒ Object
TOML adapter accessor.
-
.xml_adapter ⇒ Object
XML adapter accessor.
-
.yaml_adapter ⇒ .load, .dump
Return YAML adapter.
Class Attribute Details
.csv_adapter ⇒ Object
Set CSV adapter
109 110 111 |
# File 'lib/shale.rb', line 109 def csv_adapter @csv_adapter end |
.json_adapter ⇒ .load, .dump
Return JSON adapter. By default Shale::Adapter::JSON is used
135 136 137 |
# File 'lib/shale.rb', line 135 def json_adapter @json_adapter || Adapter::JSON end |
.toml_adapter ⇒ Object
TOML adapter accessor.
95 96 97 |
# File 'lib/shale.rb', line 95 def toml_adapter @toml_adapter end |
.xml_adapter ⇒ Object
XML adapter accessor. Available adapters are Shale::Adapter::REXML, Shale::Adapter::Nokogiri and Shale::Adapter::Ox
124 125 126 |
# File 'lib/shale.rb', line 124 def xml_adapter @xml_adapter end |
.yaml_adapter ⇒ .load, .dump
Return YAML adapter. By default YAML is used
148 149 150 |
# File 'lib/shale.rb', line 148 def yaml_adapter @yaml_adapter || YAML end |