Sha256: 5bde48203546e97565c6dd0b775d19c0dc1827545883cfef3b125ca1c7fe9b0f

Contents?: true

Size: 1.23 KB

Versions: 10

Compression:

Stored size: 1.23 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:    10,
            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

10 entries across 10 versions & 1 rubygems

Version Path
edgarj-0.01.22 app/models/edgarj/page_info.rb
edgarj-0.01.21 app/models/edgarj/page_info.rb
edgarj-0.01.20 app/models/edgarj/page_info.rb
edgarj-0.01.19 app/models/edgarj/page_info.rb
edgarj-0.01.18 app/models/edgarj/page_info.rb
edgarj-0.01.17 app/models/edgarj/page_info.rb
edgarj-0.01.16 app/models/edgarj/page_info.rb
edgarj-0.01.15 app/models/edgarj/page_info.rb
edgarj-0.01.13 app/models/edgarj/page_info.rb
edgarj-0.01.12 app/models/edgarj/page_info.rb