Class: Glass::MenuItem

Inherits:
Object
  • Object
show all
Defined in:
lib/glass/menu_item.rb

Constant Summary collapse

BUILT_IN_ACTIONS =
[:reply,         :reply_all,       :delete, 
:share,         :read_aloud,      :voice_call, 
:navigate,      :toggle_pinned]

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ MenuItem



17
18
19
20
21
22
23
# File 'lib/glass/menu_item.rb', line 17

def initialize(opts={})
  self.action                 = opts[:action] || "CUSTOM"
  self.id                     = opts[:id]
  self.display_name           = opts[:display_name]
  self.icon_url               = opts[:icon_url]
  self.remove_when_selected   = opts[:remove_when_selected] || false
end

Instance Attribute Details

#actionObject

Returns the value of attribute action.



3
4
5
# File 'lib/glass/menu_item.rb', line 3

def action
  @action
end

#display_nameObject

Returns the value of attribute display_name.



3
4
5
# File 'lib/glass/menu_item.rb', line 3

def display_name
  @display_name
end

#icon_urlObject

Returns the value of attribute icon_url.



3
4
5
# File 'lib/glass/menu_item.rb', line 3

def icon_url
  @icon_url
end

#idObject

Returns the value of attribute id.



3
4
5
# File 'lib/glass/menu_item.rb', line 3

def id
  @id
end

#remove_when_selectedObject

Returns the value of attribute remove_when_selected.



3
4
5
# File 'lib/glass/menu_item.rb', line 3

def remove_when_selected
  @remove_when_selected
end

Class Method Details

.create(action_sym, args) ⇒ Object



12
13
14
15
# File 'lib/glass/menu_item.rb', line 12

def self.create(action_sym, args)
  args = BUILT_IN_ACTIONS.include?(action_sym) ? args.merge({action: action_sym.to_s.upcase}) : args.merge({id: action_sym})
  new(args)
end

Instance Method Details

#serializeObject



29
30
31
32
33
34
35
36
# File 'lib/glass/menu_item.rb', line 29

def serialize
  hash = {action: action}
  hash.merge!({id: id,
               removeWhenSelected: remove_when_selected,
               values: [{ displayName: display_name, 
                          iconUrl: icon_url}]}) if action == "CUSTOM"
  hash
end