Sha256: 6eb6c1e6b600c98c2020acb3c13756e4e822b3d8571fb83b40fbfd2ce1bb61ad

Contents?: true

Size: 799 Bytes

Versions: 3

Compression:

Stored size: 799 Bytes

Contents

module Locomotive
  module Wagon
    module Liquid
      module Scopeable

        def apply_scope(entries)
          if @context['with_scope'].blank?
            entries
          else
            collection = []

            conditions = @context['with_scope'].clone.delete_if { |k, _| %w(order_by per_page page).include?(k) }

            entries.each do |content|
              accepted = (conditions.map do |key, value|
                case value
                when TrueClass, FalseClass, String, Integer then content.send(key) == value
                else
                  true
                end
              end).all? # all conditions works ?

              collection << content if accepted
            end
            collection
          end
        end

      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
locomotivecms_wagon-1.2.2 lib/locomotive/wagon/liquid/scopeable.rb
locomotivecms_wagon-1.2.1 lib/locomotive/wagon/liquid/scopeable.rb
locomotivecms_wagon-1.2.0 lib/locomotive/wagon/liquid/scopeable.rb