Sha256: 9ec90f04da8b89d42e2c8e5a30c82ce9cb1a45761b4454ddb9dafbd1cb84bee2

Contents?: true

Size: 991 Bytes

Versions: 21

Compression:

Stored size: 991 Bytes

Contents

module RailsConnector::LiquidSupport

  # Dieser Drop kapselt ein Obj. Der Zugriff auf das Obj ist nur für [] und ausgewählte Methoden erlaubt.
  class ObjDrop < Liquid::Drop #:nodoc:
    def initialize(obj)
      @obj = obj
    end

    def __drop_content
      @obj
    end

    def before_method(method)
      raw_value = @obj[method]
      if raw_value
        value = if raw_value.kind_of?(Time)
          raw_value
        else
          @context.registers[:action_view].display_value(raw_value)
        end
        if value.kind_of?(::RailsConnector::LinkList)
          value
        else
          FieldValueDrop.new(@obj, method, value, use_edit_markers?)
        end
      else
        @obj.__send__(method) if @obj.respond_to?(method)
      end
    end

    private

    def use_edit_markers?
      if RailsConnector::Configuration.auto_liquid_editmarkers.nil?
        true
      else
        RailsConnector::Configuration.auto_liquid_editmarkers
      end
    end

  end

end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
infopark_rails_connector-6.8.0.beta.200.621.4c8e1b0 lib/rails_connector/liquid_support/obj_drop.rb