Module: Mspire::CV::Paramable
- Included in:
- Identml::SearchModification, Mzid::Modification
- Defined in:
- lib/mspire/cv/paramable.rb
Instance Method Summary collapse
-
#describe!(*args) ⇒ Object
Expects arguments describing a single CV::Param.
-
#describe_from_xml!(xml_node, ref_hash = nil) ⇒ Object
takes a node with children that are cvParam objects returns the next child node after the paramable elements or nil if none.
-
#describe_many!(array) ⇒ Object
takes an array of values, each of which is fed into describe! returns self.
-
#describe_self_from_xml!(xml_node, ref_hash = nil) ⇒ Object
reads the paramable nodes and returns self.
- #each_param(&block) ⇒ Object
-
#fetch(name) ⇒ Object
returns the value if the param exists by that name.
-
#fetch_by_accession(acc) ⇒ Object
(also: #fetch_by_acc)
returns the value if the param exists with that accession.
- #initialize ⇒ Object (also: #params_init)
- #param?(name) ⇒ Boolean
- #param_by_accession(acc) ⇒ Object (also: #param_by_acc)
- #params? ⇒ Boolean
-
#reject!(&block) ⇒ Object
returns self.
-
#replace!(*describe_args, &block) ⇒ Object
yields each current param.
- #replace_many!(describe_many_arg, &block) ⇒ Object
-
#to_xml(xml) ⇒ Object
iterates over @params and calls .to_xml on each object.
Instance Method Details
#describe!(*args) ⇒ Object
135 136 137 138 139 140 141 142 143 144 |
# File 'lib/mspire/cv/paramable.rb', line 135 def describe!(*args) return self if args.first.nil? case (arg=args.first) when String @cv_params << Mspire::CV::Param[ *args ] else @cv_params << arg end self end |
#describe_from_xml!(xml_node, ref_hash = nil) ⇒ Object
takes a node with children that are cvParam objects returns the next child node after the paramable elements or nil if none
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
# File 'lib/mspire/cv/paramable.rb', line 106 def describe_from_xml!(xml_node, ref_hash=nil) # TODO: this was merely cleaned up from Paramable and should be # re-factored return nil unless (child_n = xml_node.child) loop do array = case child_n.name when 'cvParam' @cv_params << Mspire::CV::Param[ child_n[:accession], child_n[:value] ] else # assumes that the above precede any following children as per the spec break end if (unit_acc = child_n[:unitAccession]) array.last.unit = ::CV::Param.new(child_n[:unitCvRef], unit_acc, child_n[:unitName]) end break unless child_n = child_n.next end child_n end |
#describe_many!(array) ⇒ Object
takes an array of values, each of which is fed into describe! returns self.
86 87 88 89 90 91 92 93 94 95 |
# File 'lib/mspire/cv/paramable.rb', line 86 def describe_many!(array) array.each do |arg| if arg.is_a?(Array) describe!(*arg) else describe!(arg) end end self end |
#describe_self_from_xml!(xml_node, ref_hash = nil) ⇒ Object
reads the paramable nodes and returns self. Use this if your element does not have anything besides paramable elements.
99 100 101 102 |
# File 'lib/mspire/cv/paramable.rb', line 99 def describe_self_from_xml!(xml_node, ref_hash=nil) describe_from_xml!(xml_node, ref_hash) self end |
#each_param(&block) ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/mspire/cv/paramable.rb', line 15 def each_param(&block) return enum_for __method__ unless block cv_params.each(&block) ref_param_groups.flat_map(&:params).each(&block) user_params.each(&block) nil end |
#fetch(name) ⇒ Object
returns the value if the param exists by that name. Returns true if the param exists but has no value. returns false if no param
48 49 50 51 52 53 54 55 |
# File 'lib/mspire/cv/paramable.rb', line 48 def fetch(name) param = each_param.find {|param| param.name == name} if param param.value || true else false end end |
#fetch_by_accession(acc) ⇒ Object Also known as: fetch_by_acc
returns the value if the param exists with that accession. Returns true if the param exists but has no value. returns false if no param with that accession.
60 61 62 63 64 65 66 67 |
# File 'lib/mspire/cv/paramable.rb', line 60 def fetch_by_accession(acc) param = accessionable_params.find {|v| v.accession == acc } if param param.value || true else false end end |
#initialize ⇒ Object Also known as: params_init
74 75 76 |
# File 'lib/mspire/cv/paramable.rb', line 74 def initialize @cv_params = [] end |
#param?(name) ⇒ Boolean
70 71 72 |
# File 'lib/mspire/cv/paramable.rb', line 70 def param?(name) params.any? {|param| param.name == name } end |
#param_by_accession(acc) ⇒ Object Also known as: param_by_acc
79 80 81 |
# File 'lib/mspire/cv/paramable.rb', line 79 def param_by_accession(acc) each_accessionable_param.find {|v| v.accession == acc } end |
#params? ⇒ Boolean
23 24 25 26 27 |
# File 'lib/mspire/cv/paramable.rb', line 23 def params? cv_params.size > 0 || ref_param_groups.any? {|group| group.params.size > 0 } || user_params.size > 0 end |
#reject!(&block) ⇒ Object
returns self
37 38 39 40 |
# File 'lib/mspire/cv/paramable.rb', line 37 def reject!(&block) cv_params.reject!(&block) self end |
#replace!(*describe_args, &block) ⇒ Object
yields each current param. If the return value is not false or nil, it is deleted (i.e., any true value and it is deleted). Then adds the given parameter or makes a new one by accession number.
32 33 34 |
# File 'lib/mspire/cv/paramable.rb', line 32 def replace!(*describe_args, &block) reject!(&block).describe!(*describe_args) end |
#replace_many!(describe_many_arg, &block) ⇒ Object
42 43 44 |
# File 'lib/mspire/cv/paramable.rb', line 42 def replace_many!(describe_many_arg, &block) reject!(&block).describe_many!(describe_many_arg) end |
#to_xml(xml) ⇒ Object
iterates over @params and calls .to_xml on each object.
147 148 149 150 151 152 |
# File 'lib/mspire/cv/paramable.rb', line 147 def to_xml(xml) self.cv_params.each do |obj| obj.to_xml(xml) end xml end |