Sha256: 8b50e5b1656c222aa831f31d0da56d564f1be578ebaf7b5bd3e80ee5c7b2cfca

Contents?: true

Size: 1.07 KB

Versions: 3

Compression:

Stored size: 1.07 KB

Contents

require File.join %w(extend_it dsl)

module AdminIt
  module Renderable
    extend ExtendIt::DslModule

    dsl { dsl_block :render }

    def render(entity, instance = nil, &block)
      return if @render.nil?
      # method used as event emmiter, call block in instance or caller
      # context if it present
      if instance.nil?
        @render.call(entity)
      else
        instance.instance_exec(entity, &@render)
      end
    end
  end

  module Iconed
    extend ExtendIt::DslModule

    dsl do
      dsl_accessor :icon
    end

    def icon=(value)
      @icon = value.nil? ? default_icon : value.to_s
    end

    def icon
      @icon ||= default_icon
    end

    protected

    def default_icon
      ''
    end
  end

  module DisplayableName
    extend ExtendIt::DslModule

    dsl do
      dsl_accessor :display_name
    end

    def display_name=(value)
      @display_name = value.nil? ? default_display_name : value.to_s
    end

    def display_name
      @display_name ||= default_display_name
    end

    protected

    def default_display_name
      ''
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
admin_it-1.0.10 lib/admin_it/shared.rb
admin_it-1.0.9 lib/admin_it/shared.rb
admin_it-1.0.8 lib/admin_it/shared.rb