Class: Edgarj::PageInfo

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/edgarj/page_info.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.intern(sssn, view, search_obj) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/models/edgarj/page_info.rb', line 7

def self.intern(sssn, view, search_obj)
  if !sssn || !(page_info = sssn.page_infos.find_by_view(view))
    page_info = sssn.page_infos.build(
        view:     view,
        lines:    Settings.edgarj.page_info.default_lines,
        order_by: '',
        dir:      '',
        page:     1)
    page_info.record = search_obj

    # save it to get id since id will be used later e.g.
    # @vs.link_to(... @page_info.id) in Edgarj::Drawer::Base#draw_sort
    page_info.save!
  end
  page_info
end

Instance Method Details

#recordObject

de-serialize in model_data and return it



32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'app/models/edgarj/page_info.rb', line 32

def record
  if self.record_data
    # FIXME: Following code fixes the error:
    #  - ArgumentError (undefined class/module Search)
    #  - ArgumentError (undefined class/module SearchForm)
    #
    # But some autoload may smartlier fixes this?
    Search
    SearchForm
    Marshal.load(Base64.decode64(self.record_data))
  else
    nil
  end
end

#record=(record) ⇒ Object

serialize model and set it to model_data



26
27
28
# File 'app/models/edgarj/page_info.rb', line 26

def record=(record)
  self.record_data = Base64.encode64(Marshal.dump(record))
end