Sha256: 534bfc1cb499e45af2ce7ea902df85694b82db81dff44871101b98b0eb30da31

Contents?: true

Size: 931 Bytes

Versions: 2

Compression:

Stored size: 931 Bytes

Contents

module Locomotive
  module Steam
    module Liquid
      module Drops

        class Params < ::Liquid::Drop

          def initialize(params)
            @_params = params.stringify_keys
          end

          def before_method(meth)
            Param.new(@_params[meth.to_s])
          end

          def unsafe
            @_params
          end

          def as_json
            @_params.as_json
          end

        end

        class Param < ::Liquid::Drop

          def initialize(param)
            @param = param
          end

          def html_safe
            @param
          end

          def to_liquid
            @param.is_a?(String) ? html_escape(@param) : @param
          end

          def to_s
            to_liquid.to_s
          end

          private

          def html_escape(string)
            string.blank? ? '' : CGI::escapeHTML(string)
          end

        end

      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
locomotivecms_steam-1.5.0.rc0 lib/locomotive/steam/liquid/drops/params.rb
locomotivecms_steam-1.5.0.beta3 lib/locomotive/steam/liquid/drops/params.rb