Sha256: c71ee0a4deb8ba50816ead4f35dcedc54a9cbdd85d547621ae7c3dc99c90145b

Contents?: true

Size: 851 Bytes

Versions: 3

Compression:

Stored size: 851 Bytes

Contents

# frozen_string_literal: true

module Staticky
  module Resources
    module Plugins
      module Phlex
        class ViewContext < SimpleDelegator
          def initialize(resource)
            super
            @resource = resource
          end

          def root?
            @resource.root?
          end

          def current_path
            @resource.url
          end
        end

        module InstanceMethods
          def component=(component)
            @component = component
          end

          def component
            return @component if defined?(@component)

            raise ArgumentError, "component is required"
          end

          def build(view_context: ViewContext.new(self))
            component.call(view_context:)
          end
        end
      end

      register_plugin(:phlex, Phlex)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
staticky-0.3.1 lib/staticky/resources/plugins/phlex.rb
staticky-0.3.0 lib/staticky/resources/plugins/phlex.rb
staticky-0.2.0 lib/staticky/resources/plugins/phlex.rb