Sha256: d5f4f84c8b35c9cbf224cb41211c7ba8a1df30971012e1a9aea708da1d927944

Contents?: true

Size: 850 Bytes

Versions: 1

Compression:

Stored size: 850 Bytes

Contents

module Locomotive
  module Steam
    module Liquid
      module Drops
        class ContentTypes < ::Liquid::Drop

          def before_method(meth)
            fetch_content_type(meth.to_s)
          end

          private

          def repository
            @context.registers[:services].repositories.content_type
          end

          def fetch_content_type(slug)
            @content_type_map ||= {}

            if !@content_type_map.include?(slug)
              @content_type_map[slug] = _fetch_content_type(slug)
            end

            @content_type_map[slug]
          end

          def _fetch_content_type(slug)
            if content_type = repository.by_slug(slug)
              ContentEntryCollection.new(content_type)
            else
              nil
            end
          end

        end

      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
locomotivecms_steam-1.0.0.pre.beta.3 lib/locomotive/steam/liquid/drops/content_types.rb