Sha256: 86fa471671928ab3c2093054de4043e82a82a0881aaa257d43374d649dce3ac5

Contents?: true

Size: 780 Bytes

Versions: 5

Compression:

Stored size: 780 Bytes

Contents

module ExpressTemplates
  module Components
    class Configurable < Base

      def self.emits(proc = nil, &block)
        define_method(:markup, &(proc || block))
      end

      def build(*args, &block)
        _process_args!(args)
        if method(:markup).arity > 0
          markup(block)
        else
          markup(&block)
        end
      end

      def config
        @config ||= {}
      end

      alias :my :config


      protected

        def _process_args!(args)
          if args.first.kind_of?(Symbol)
            config.merge!(id: args.shift)
            attributes[:id] = config[:id]
          end
          args.each do |arg|
            if arg.kind_of?(Hash)
              config.merge!(arg)
            end
          end
        end

    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
express_admin-1.3.2 vendor/gems/express_templates/lib/express_templates/components/configurable.rb
express_admin-1.3.1 vendor/gems/express_templates/lib/express_templates/components/configurable.rb
express_templates-0.7.1 lib/express_templates/components/configurable.rb
express_templates-0.7.0 lib/express_templates/components/configurable.rb
express_admin-1.3.0 vendor/gems/express_templates/lib/express_templates/components/configurable.rb