Module: Duxml
- Included in:
- ElementGuts, Grammar, History, Pattern, PatternMaker, RelaxNG
- Defined in:
- lib/duxml.rb,
lib/duxml/doc.rb,
lib/duxml/meta.rb,
lib/duxml/saxer.rb,
lib/duxml/doc/element.rb,
lib/duxml/doc/lazy_ox.rb,
lib/duxml/doc/node_set.rb,
lib/duxml/meta/grammar.rb,
lib/duxml/meta/history.rb,
lib/duxml/meta/history/add.rb,
lib/duxml/meta/grammar/rule.rb,
lib/duxml/meta/history/undo.rb,
lib/duxml/meta/history/error.rb,
lib/duxml/meta/history/change.rb,
lib/duxml/meta/history/remove.rb,
lib/duxml/meta/grammar/pattern.rb,
lib/duxml/meta/grammar/relax_ng.rb,
lib/duxml/meta/history/new_attr.rb,
lib/duxml/meta/history/new_text.rb,
lib/duxml/meta/grammar/spreadsheet.rb,
lib/duxml/meta/history/change_attr.rb,
lib/duxml/meta/history/change_text.rb,
lib/duxml/meta/grammar/pattern_maker.rb,
lib/duxml/meta/history/qualify_error.rb,
lib/duxml/meta/grammar/rule/text_rule.rb,
lib/duxml/meta/history/validate_error.rb,
lib/duxml/meta/grammar/rule/attrs_rule.rb,
lib/duxml/meta/grammar/rule/value_rule.rb,
lib/duxml/meta/grammar/rule/children_rule.rb,
lib/duxml/meta/grammar/relax_ng/attrs_rule.rb,
lib/duxml/meta/grammar/relax_ng/value_rule.rb,
lib/duxml/meta/grammar/pattern/text_pattern.rb,
lib/duxml/meta/grammar/pattern/child_pattern.rb,
lib/duxml/meta/grammar/relax_ng/children_rule.rb,
lib/duxml/meta/grammar/pattern/attr_val_pattern.rb,
lib/duxml/meta/grammar/pattern/attr_name_pattern.rb
Defined Under Namespace
Modules: Add, AttrNamePattern, AttrValPattern, AttrsRule, Change, ChangeAttr, ChangeText, ChildPattern, ChildrenRule, ElementGuts, Error, Grammar, History, LazyOx, Meta, NewAttr, NewText, Pattern, PatternMaker, QualifyError, RelaxNG, Remove, RngAttrsRule, RngChildrenRule, RngValueRule, Rule, Saxer, Spreadsheet, TextPattern, TextRule, Undo, ValidateError, ValueRule Classes: AddClass, AttrNamePatternClass, AttrValPatternClass, AttrsRuleClass, ChangeAttrClass, ChangeClass, ChangeTextClass, ChildPatternClass, ChildrenRuleClass, Doc, Element, ErrorClass, GrammarClass, HistoryClass, MetaClass, NewAttrClass, NewTextClass, NodeSet, NullChildPatternClass, PatternClass, QualifyErrorClass, RemoveClass, RuleClass, TextPatternClass, TextRuleClass, UndoClass, ValidateErrorClass, ValueRuleClass
Constant Summary collapse
- DITA_GRAMMAR =
File.(File.dirname(__FILE__) + '/../xml/dita_grammar.xml')
Constants included from Meta
Instance Attribute Summary collapse
-
#doc ⇒ Object
readonly
Returns the value of attribute doc.
-
#file ⇒ Object
readonly
Returns the value of attribute file.
-
#meta ⇒ Object
readonly
Returns the value of attribute meta.
Attributes included from Saxer
Instance Method Summary collapse
- #create(file, content = nil) ⇒ Object
-
#load(_file, grammar_path = nil) ⇒ Duxml::Meta
Combined Object tree from metadata root (metadata and content’s XML documents are kept separate).
- #log(file) ⇒ Object
-
#relaxng ⇒ Nokogiri::XML::RelaxNG
Current metadata’s grammar as a relaxng file.
- #save(file) ⇒ Object
-
#validate(*args) ⇒ Boolean
Whether file passed validation.
Methods included from Meta
Methods included from Saxer
Instance Attribute Details
#doc ⇒ Object (readonly)
Returns the value of attribute doc.
18 19 20 |
# File 'lib/duxml.rb', line 18 def doc @doc end |
#file ⇒ Object (readonly)
Returns the value of attribute file.
18 19 20 |
# File 'lib/duxml.rb', line 18 def file @file end |
#meta ⇒ Object (readonly)
Returns the value of attribute meta.
18 19 20 |
# File 'lib/duxml.rb', line 18 def end |
Instance Method Details
#create(file, content = nil) ⇒ Object
37 38 39 40 |
# File 'lib/duxml.rb', line 37 def create(file, content=nil) File.write(file, content.to_s) @doc = content.is_a?(Doc) ? content : Doc.new end |
#load(_file, grammar_path = nil) ⇒ Duxml::Meta
Returns combined Object tree from metadata root (metadata and content’s XML documents are kept separate).
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/duxml.rb', line 23 def load(_file, grammar_path=nil) if _file.is_a?(String) and File.exists?(_file) @file = _file else @file = "#{(_file.respond_to?(:name) ? _file.name : _file.class.to_s) + _file.object_id.to_s}" File.write file, '' end (grammar_path) set_doc! end |
#log(file) ⇒ Object
52 53 54 |
# File 'lib/duxml.rb', line 52 def log(file) File.write(file, .history.description) end |
#relaxng ⇒ Nokogiri::XML::RelaxNG
Returns current metadata’s grammar as a relaxng file.
68 69 70 |
# File 'lib/duxml.rb', line 68 def relaxng #meta.grammar.relaxng end |
#save(file) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/duxml.rb', line 43 def save(file) = Meta.(file) unless File.exists?() File.new , 'w+' File.write(, Meta.xml) end end |
#validate(*args) ⇒ Boolean
Returns whether file passed validation.
58 59 60 61 62 63 64 65 |
# File 'lib/duxml.rb', line 58 def validate(*args) load(*args) unless args.empty? raise Exception, "grammar not defined!" unless .grammar.defined? raise Exception, "document not loaded!" unless doc.root results = [] doc.root.traverse do |n| results << .grammar.validate(n) unless n.is_a?(String) end !results.any? do |r| !r end end |