Class: MusicalScore::Attribute::Clef
- Inherits:
-
ElementBase
- Object
- ElementBase
- MusicalScore::Attribute::Clef
- Includes:
- Contracts
- Defined in:
- lib/musical_score/attribute/clef.rb
Constant Summary collapse
- @@sign =
%i(G F C percussion TAB jianpu none)
Instance Attribute Summary collapse
-
#clef_octave_change ⇒ Object
readonly
Returns the value of attribute clef_octave_change.
-
#line ⇒ Object
readonly
Returns the value of attribute line.
-
#sign ⇒ Object
readonly
Returns the value of attribute sign.
Class Method Summary collapse
Instance Method Summary collapse
- #export_xml ⇒ Object
-
#initialize(sign, line = 0, clef_octave_change = 0) ⇒ Clef
constructor
A new instance of Clef.
Constructor Details
#initialize(sign, line = 0, clef_octave_change = 0) ⇒ Clef
Returns a new instance of Clef.
15 16 17 18 19 |
# File 'lib/musical_score/attribute/clef.rb', line 15 def initialize(sign, line = 0, clef_octave_change = 0) @sign = sign.to_sym @line = line @clef_octave_change = clef_octave_change end |
Instance Attribute Details
#clef_octave_change ⇒ Object (readonly)
Returns the value of attribute clef_octave_change.
7 8 9 |
# File 'lib/musical_score/attribute/clef.rb', line 7 def clef_octave_change @clef_octave_change end |
#line ⇒ Object (readonly)
Returns the value of attribute line.
7 8 9 |
# File 'lib/musical_score/attribute/clef.rb', line 7 def line @line end |
#sign ⇒ Object (readonly)
Returns the value of attribute sign.
7 8 9 |
# File 'lib/musical_score/attribute/clef.rb', line 7 def sign @sign end |
Class Method Details
.create_by_hash(doc) ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/musical_score/attribute/clef.rb', line 31 def self.create_by_hash(doc) sign = doc["sign"][0].to_sym line = doc.has_key?("line") ? doc["line"][0].to_i : 0 clef_octave_change = doc.has_key?("clef-octave-change") ? doc["clef-octave-change"][0].to_i : 0 clef = MusicalScore::Attribute::Clef.new(sign, line, clef_octave_change) return clef end |
.create_by_xml(xml_doc) ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/musical_score/attribute/clef.rb', line 22 def self.create_by_xml(xml_doc) sign = xml_doc.elements["sign"].text.to_sym line = xml_doc.elements["line"] ? xml_doc.elements["line"].text.to_i : 0 clef_octave_change = xml_doc.elements["clef-octave-change"] ? xml_doc.elements["clef-octave-change"].text.to_i : 0 clef = MusicalScore::Attribute::Clef.new(sign, line, clef_octave_change) return clef end |
Instance Method Details
#export_xml ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/musical_score/attribute/clef.rb', line 39 def export_xml clef_element = REXML::Element.new('clef') sign_element = REXML::Element.new('sign').add_text(@sign.to_s) line_element = @line != 0 ? REXML::Element.new('line').add_text(@line.to_s) : nil clef_octave_change_element = @clef_octave_change != 0 ? REXML::Element.new('clef-octave-change').add_text(@clef_octave_change.to_s) : nil clef_element.add_element(sign_element) clef_element.add_element(line_element) if line_element clef_element.add_element(clef_octave_change_element) if clef_octave_change_element return clef_element end |