Sha256: 39da3466282976fe7a44a12287cfb5e29b4d9e215ff9dc8d40a89483fa75158c

Contents?: true

Size: 579 Bytes

Versions: 12

Compression:

Stored size: 579 Bytes

Contents

require "dry/inflector"

module Coprl
  module Presenters
    module WebClient
      class ComponentDecoratorFactory

        def self.build(component)
          comp_class = "#{inflector.camelize(component.type)}HtmlDecorator"
          klass = if const_defined?(comp_class)
                    const_get(comp_class)
                  else
                    ComponentHtmlDecorator
                  end
          klass.new(component)
        end

        private

        def self.inflector
          @inflector ||= Dry::Inflector.new
        end

      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
coprl-3.0.0.beta.12 lib/coprl/presenters/web_client/component_decorator_factory.rb
coprl-3.0.0.beta.11 lib/coprl/presenters/web_client/component_decorator_factory.rb
coprl-3.0.0.beta.10 lib/coprl/presenters/web_client/component_decorator_factory.rb
coprl-3.0.0.beta.9 lib/coprl/presenters/web_client/component_decorator_factory.rb
coprl-3.0.0.beta.8 lib/coprl/presenters/web_client/component_decorator_factory.rb
coprl-3.0.0.beta.7 lib/coprl/presenters/web_client/component_decorator_factory.rb
coprl-3.0.0.beta.6 lib/coprl/presenters/web_client/component_decorator_factory.rb
coprl-3.0.0.beta.5 lib/coprl/presenters/web_client/component_decorator_factory.rb
coprl-3.0.0.beta.4 lib/coprl/presenters/web_client/component_decorator_factory.rb
coprl-3.0.0.beta.3 lib/coprl/presenters/web_client/component_decorator_factory.rb
coprl-3.0.0.beta.2 lib/coprl/presenters/web_client/component_decorator_factory.rb
coprl-3.0.0.beta.1 lib/coprl/presenters/web_client/component_decorator_factory.rb