Sha256: 6c4a1c89a511a73fbaf2635f576745a0783620d85a8a8498143e3cf8ae60a9b0

Contents?: true

Size: 1.29 KB

Versions: 11

Compression:

Stored size: 1.29 KB

Contents

class Model
  include Liquid::Rails::Droppable

  def initialize(hash={})
    @attributes = hash
  end

  def id
    @attributes[:id] || @attributes['id'] || object_id
  end

  def respond_to?(method, include_private=false)
    return true if @attributes.key?(method)
    super
  end

  def respond_to_missing?(method, include_private=false)
    @attributes.key?(method) || super
  end

  def method_missing(meth, *args)
    if meth.to_s =~ /^(.*)=$/
      @attributes[$1.to_sym] = args[0]
    elsif @attributes.key?(meth)
      @attributes[meth]
    else
      super
    end
  end
end

class Profile < Model
end

class ProfileDrop < Liquid::Rails::Drop
  attributes :name, :description
end

Post    = Class.new(Model)
Comment = Class.new(Model)

PostDrop = Class.new(Liquid::Rails::Drop) do
  attributes :title, :body, :id
  has_many :comments
  has_many :recomments, with: 'ReCommentDrop', class_name: 'CommentsDrop'
end

CommentDrop = Class.new(Liquid::Rails::Drop) do
  attributes :id, :body
  belongs_to :post
  belongs_to :repost, class_name: 'RePostDrop'
end

ReProfileDrop = Class.new(Liquid::Rails::Drop)
PostsDrop     = Class.new(Liquid::Rails::CollectionDrop)
RePostDrop    = Class.new(Liquid::Rails::Drop)
ReCommentDrop = Class.new(Liquid::Rails::Drop)
CommentsDrop  = Class.new(Liquid::Rails::CollectionDrop)

Version data entries

11 entries across 11 versions & 3 rubygems

Version Path
liquid-rails-0.2.0 spec/fixtures/poro.rb
liquid-rails-0.2.0.beta1 spec/fixtures/poro.rb
liquid-rails-0.1.4 spec/fixtures/poro.rb
liquid4-rails5-0.3.0 spec/fixtures/poro.rb
liquid4-rails5-0.2.1 spec/fixtures/poro.rb
liquid4-rails5-0.1.5 spec/fixtures/poro.rb
liquid4-rails-0.2.0 spec/fixtures/poro.rb
liquid-rails-0.1.3 spec/fixtures/poro.rb
liquid-rails-0.1.2 spec/fixtures/poro.rb
liquid-rails-0.1.1 spec/fixtures/poro.rb
liquid-rails-0.1.0 spec/fixtures/poro.rb