Sha256: 3830f4dfac9ed7c0d45446fa895d4010d5ba6bc95330d8c153cb474f9c12ab3c

Contents?: true

Size: 1.26 KB

Versions: 31

Compression:

Stored size: 1.26 KB

Contents

module Edgarj
  class PageInfo < ActiveRecord::Base
    self.table_name = 'edgarj_page_infos'

    belongs_to  :sssn

    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

    # serialize model and set it to model_data
    #
    def record=(record)
      self.record_data = Base64.encode64(Marshal.dump(record))
    end

    # de-serialize in model_data and return it
    #
    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
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
edgarj-4.06.09 app/models/edgarj/page_info.rb
edgarj-4.06.07 app/models/edgarj/page_info.rb
edgarj-4.06.05 app/models/edgarj/page_info.rb
edgarj-4.06.04 app/models/edgarj/page_info.rb
edgarj-4.06.03 app/models/edgarj/page_info.rb
edgarj-4.06.02 app/models/edgarj/page_info.rb
edgarj-4.06.01 app/models/edgarj/page_info.rb
edgarj-4.06.00 app/models/edgarj/page_info.rb
edgarj-4.05.04 app/models/edgarj/page_info.rb
edgarj-4.05.03 app/models/edgarj/page_info.rb
edgarj-4.05.02 app/models/edgarj/page_info.rb
edgarj-4.05.01 app/models/edgarj/page_info.rb
edgarj-4.05.00 app/models/edgarj/page_info.rb
edgarj-4.04.01 app/models/edgarj/page_info.rb
edgarj-4.04.00 app/models/edgarj/page_info.rb
edgarj-4.03.00 app/models/edgarj/page_info.rb
edgarj-4.02.00 app/models/edgarj/page_info.rb
edgarj-4.01.01 app/models/edgarj/page_info.rb
edgarj-4.01.00 app/models/edgarj/page_info.rb
edgarj-4.00.04 app/models/edgarj/page_info.rb