Module: NEU::MODS::Builders
- Included in:
- Document
- Defined in:
- lib/neu/mods/builders.rb
Overview
Node CREATION for the write path. Cerberus's MODSMerge builds every element it adds through these, so their names and signatures are part of the contract. See docs/editing.md.
Instance Method Summary collapse
-
#build_corporate_name(name:, role: "Creator") ⇒ Object
A plain corporate creator: one name part and a text roleTerm.
-
#build_node(name, text = nil) ⇒ Object
A MODS element reusing the root's namespace declaration, matched by URI: built outside MODS, an element is invisible to every XPath here.
-
#build_personal_name(given:, family:, role: "Creator") ⇒ Object
A plain personal creator: given and family parts and a text roleTerm.
Instance Method Details
#build_corporate_name(name:, role: "Creator") ⇒ Object
A plain corporate creator: one name part and a text roleTerm.
33 34 35 36 37 38 39 |
# File 'lib/neu/mods/builders.rb', line 33 def build_corporate_name(name:, role: "Creator") node = build_node("name") node["type"] = "corporate" node.add_child(name_part(name)) unless name.to_s.strip.empty? node.add_child(role_node(role)) node end |
#build_node(name, text = nil) ⇒ Object
A MODS element reusing the root's namespace declaration, matched by URI: built outside MODS, an element is invisible to every XPath here.
15 16 17 18 19 20 |
# File 'lib/neu/mods/builders.rb', line 15 def build_node(name, text = nil) node = Nokogiri::XML::Node.new(name, doc) node.namespace = mods_namespace_definition node.content = text unless text.nil? node end |
#build_personal_name(given:, family:, role: "Creator") ⇒ Object
A plain personal creator: given and family parts and a text roleTerm.
23 24 25 26 27 28 29 30 |
# File 'lib/neu/mods/builders.rb', line 23 def build_personal_name(given:, family:, role: "Creator") name = build_node("name") name["type"] = "personal" name.add_child(name_part(given, "given")) unless given.to_s.strip.empty? name.add_child(name_part(family, "family")) unless family.to_s.strip.empty? name.add_child(role_node(role)) name end |