Class: AgentXmpp::Xmpp::XDataField

Inherits:
Element show all
Defined in:
lib/agent_xmpp/xmpp/x_data.rb

Overview


Instance Method Summary collapse

Methods inherited from Element

#<<, class_for_name_xmlns, #clone, import, name_xmlns, name_xmlns_for_class, #parent=, #set_xml_lang, #typed_add, #xml_lang, #xml_lang=, xmpp_attribute, xmpp_child

Methods inherited from REXML::Element

#delete_elements, #first_element, #first_element_text, #import, import, #replace_element_text, #typed_add

Constructor Details

#initialize(var = nil, type = nil) ⇒ XDataField

.….….….….….….….….….….….….….….….….….….….….….….….….….



176
177
178
179
180
# File 'lib/agent_xmpp/xmpp/x_data.rb', line 176

def initialize(var=nil, type=nil)
  super()
  self.var = var if var
  self.type = type if type
end

Instance Method Details

#optionsObject

.….….….….….….….….….….….….….….….….….….….….….….….….….



207
208
209
210
211
212
213
214
# File 'lib/agent_xmpp/xmpp/x_data.rb', line 207

def options
  elements.inject('option',{}) do |r, e|
    value = nil
    value = (ve = first_element('value')).nil? ? nil : ve.text
    r[value] = e.attributes['label'] if value
    r 
  end
end

#options=(hsh) ⇒ Object

.….….….….….….….….….….….….….….….….….….….….….….….….….



217
218
219
220
221
222
223
224
# File 'lib/agent_xmpp/xmpp/x_data.rb', line 217

def options=(hsh)
  delete_elements('option')
  hsh.each do |value,label|
    o = add(REXML::Element.new('option'))
    o.attributes['label'] = label
    o.add(REXML::Element.new('value')).text = value
  end
end

#required=(r) ⇒ Object

.….….….….….….….….….….….….….….….….….….….….….….….….….



190
191
192
193
# File 'lib/agent_xmpp/xmpp/x_data.rb', line 190

def required=(r)
  delete_elements('required')
  add REXML::Element.new('required') if r
end

#required?Boolean

.….….….….….….….….….….….….….….….….….….….….….….….….….

Returns:

  • (Boolean)


183
184
185
186
187
# File 'lib/agent_xmpp/xmpp/x_data.rb', line 183

def required?
  res = false
  each_element('required') { res = true }
  res
end

#valuesObject

.….….….….….….….….….….….….….….….….….….….….….….….….….



196
197
198
# File 'lib/agent_xmpp/xmpp/x_data.rb', line 196

def values
  elements.inject('value', []){|r,v| r << v.text}
end

#values=(ary) ⇒ Object

.….….….….….….….….….….….….….….….….….….….….….….….….….



201
202
203
204
# File 'lib/agent_xmpp/xmpp/x_data.rb', line 201

def values=(ary)
  delete_elements('value')
  [ary].flatten.each {|v| add(REXML::Element.new('value')).text = v}
end