Module: FirefoxJson::Session::Collection
- Defined in:
- lib/firefox-json/session.rb
Overview
Management of collections, closed items and the item in focus
Class Method Summary collapse
Instance Method Summary collapse
- #convert(key, is_closed) ⇒ Object
- #dump ⇒ Object
- #reset_selected_idx ⇒ Object
- #sanify_selected_idx ⇒ Object
- #selected ⇒ Object
- #selected_idx=(idx) ⇒ Object
- #setup(data) ⇒ Object
Class Method Details
.included(target) ⇒ Object
93 94 95 96 97 98 |
# File 'lib/firefox-json/session.rb', line 93 def self.included target target.send(:attr_reader, :selected_idx) [:item_class, :closed_key, :index_key].each do |accessor| target.mattr_accessor accessor end end |
Instance Method Details
#convert(key, is_closed) ⇒ Object
110 111 112 |
# File 'lib/firefox-json/session.rb', line 110 def convert key, is_closed @data[key].map {|hash| item_class.new(hash, is_closed)} end |
#dump ⇒ Object
138 139 140 141 142 143 144 145 |
# File 'lib/firefox-json/session.rb', line 138 def dump @data[index_key] = sanify_selected_idx @data[required_key] = @collection.map(&:dump) if closed_key @data[closed_key] = @closed_collection.map(&:dump) end super end |
#reset_selected_idx ⇒ Object
130 131 132 |
# File 'lib/firefox-json/session.rb', line 130 def reset_selected_idx @selected_idx = send(required_key).size end |
#sanify_selected_idx ⇒ Object
122 123 124 125 126 127 128 |
# File 'lib/firefox-json/session.rb', line 122 def sanify_selected_idx if !@selected_idx || @selected_idx > send(required_key).size reset_selected_idx else @selected_idx end end |
#selected ⇒ Object
134 135 136 |
# File 'lib/firefox-json/session.rb', line 134 def selected send(required_key)[@selected_idx-1] end |
#selected_idx=(idx) ⇒ Object
114 115 116 117 118 119 120 |
# File 'lib/firefox-json/session.rb', line 114 def selected_idx= idx if send(required_key).size >= idx @selected_idx = idx else @selected_idx end end |
#setup(data) ⇒ Object
100 101 102 103 104 105 106 107 108 |
# File 'lib/firefox-json/session.rb', line 100 def setup data super @collection = convert required_key, false if closed_key @closed_collection = convert closed_key, true end @selected_idx = @data[index_key] sanify_selected_idx end |