class XmlConv::State::Transactions
Constants
- DIRECT_EVENT
- PAGER_SIZE
- PAGE_SIZE
- REVERSE_MAP
- VIEW
Public Instance Methods
compare_entries(a, b)
click to toggle source
# File lib/xmlconv/state/transactions.rb, line 51 def compare_entries(a, b) @sortby.each { |sortby| aval, bval = nil begin aval = a.send(sortby) bval = b.send(sortby) rescue next end res = if(aval.nil? && bval.nil?) 0 elsif(aval.nil?) 1 elsif(bval.nil?) -1 else aval <=> bval end return res unless(res == 0) } 0 end
get_sortby!()
click to toggle source
# File lib/xmlconv/state/transactions.rb, line 73 def get_sortby! @sortby ||= [] sortvalue = @session.user_input(:sortvalue) if(sortvalue.is_a? String) sortvalue = sortvalue.intern end if(@sortby.first == sortvalue) @sort_reverse = !@sort_reverse else @sort_reverse = self.class::REVERSE_MAP[sortvalue] end @sortby.delete_if { |sortby| sortby == sortvalue } @sortby.unshift(sortvalue) end
init()
click to toggle source
Calls superclass method
# File lib/xmlconv/state/transactions.rb, line 42 def init @transactions = @model @model = @transactions.reverse setup_pages @filter = Proc.new { page } super end
page()
click to toggle source
# File lib/xmlconv/state/transactions.rb, line 89 def page if(pge = @session.user_input(:page)) @page = @pages[pge.to_i] else @page ||= @pages.first end end
page_size()
click to toggle source
# File lib/xmlconv/state/transactions.rb, line 96 def page_size self::class::PAGE_SIZE end
self()
click to toggle source
# File lib/xmlconv/state/transactions.rb, line 99 def self self end
setup_pages()
click to toggle source
# File lib/xmlconv/state/transactions.rb, line 102 def setup_pages @pages = [] @page = nil pages = [(@model.size / PAGE_SIZE.to_f).ceil, 1].max pages.times { |pnum| page = PageFacade.new(pnum) page.model = @model[pnum * PAGE_SIZE, PAGE_SIZE] page.pages = @pages @pages.push(page) } end
size()
click to toggle source
# File lib/xmlconv/state/transactions.rb, line 113 def size @model.size end
sort()
click to toggle source
# File lib/xmlconv/state/transactions.rb, line 116 def sort return self unless @model.is_a? Array get_sortby! @model = @transactions.dup @model.sort! { |a, b| compare_entries(a, b) } @model.reverse! if(@sort_reverse) setup_pages self end
transactions()
click to toggle source
# File lib/xmlconv/state/transactions.rb, line 125 def transactions self end