module FirefoxJson::Session::Collection
Management of collections, closed items and the item in focus
Public Class Methods
included(target)
click to toggle source
# 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
Public Instance Methods
convert(key, is_closed)
click to toggle source
# 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()
click to toggle source
Calls superclass method
# 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()
click to toggle source
# File lib/firefox-json/session.rb, line 130 def reset_selected_idx @selected_idx = send(required_key).size end
sanify_selected_idx()
click to toggle source
# 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()
click to toggle source
# File lib/firefox-json/session.rb, line 134 def selected send(required_key)[@selected_idx-1] end
selected_idx=(idx)
click to toggle source
# 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)
click to toggle source
Calls superclass method
# 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