Sha256: 06dbe43e64259d912b87da19248a50c0baedd17492420bb6d5219702ff237950

Contents?: true

Size: 543 Bytes

Versions: 1

Compression:

Stored size: 543 Bytes

Contents

module Papercat
  class Page < Document
    store_accessor :data, :pathname, :title, :meta, :body, :default
    validates_presence_of :title, :body
    validates_with UniquenessValidator, key: :pathname

    # ensure meta always will be saved as json instead of json string
    def meta=val
      val = JSON.parse(val) if val.is_a?(String)
      write_store_attribute(:data, :meta, val)
    end

    def as_json options = {}
      super(options.update(methods: [:pathname, :title, :meta, :body, :default], except: [:data]))
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
papercat-0.0.2 app/models/papercat/page.rb