Module: Faalis::Dashboard::Sections::ResourceShow::ClassMethods

Defined in:
lib/faalis/dashboard/sections/resource_show.rb

Overview

The actual DSL for index ages

Instance Method Summary (collapse)

Instance Method Details

- (Object) in_show(&block)

To specify any property and action for show section you must use in_index class method with block of properties. For example:

  class ExamplesController < Dashboard::Application
    in_show do
      attributes :name, :description
      action_button :close, label: 'Close', href: dashboard_example_close_path
    end
  end


74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/faalis/dashboard/sections/resource_show.rb', line 74

def in_show(&block)
  model = controller_name.classify.constantize
  show_props = Faalis::Dashboard::DSL::Show.new(model)

  unless block_given?
    fail ArgumentError, "You have to provide a block for 'in_show'"
  end

  show_props.instance_eval(&block) if block_given?

  define_method(:show_properties) do
    unless defined? @__show_props__
      instance_exec(show_props, &block)
      @__show_props__ = show_props
    end
    return @__show_props__
  end
end