Class: DynamicScaffold::ListBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/dynamic_scaffold/config.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ ListBuilder

Returns a new instance of ListBuilder.



148
149
150
151
152
153
154
# File 'lib/dynamic_scaffold/config.rb', line 148

def initialize(config)
  @config = config
  @items = []
  @sorter = nil
  @order = []
  @title = nil
end

Instance Method Details

#item(*args, &block) ⇒ Object



167
168
169
170
171
# File 'lib/dynamic_scaffold/config.rb', line 167

def item(*args, &block)
  item = List::Item.new(@config, *args, block)
  @items << item
  item
end

#itemsObject



173
174
175
176
177
178
179
180
# File 'lib/dynamic_scaffold/config.rb', line 173

def items
  if @items.empty?
    @config.model.column_names.each do |column|
      @items << List::Item.new(@config, column, nil)
    end
  end
  @items
end

#order(*args) ⇒ Object



190
191
192
193
# File 'lib/dynamic_scaffold/config.rb', line 190

def order(*args)
  @order = args unless args.empty?
  @order
end

#pagination(options = nil) ⇒ Object



156
157
158
159
160
# File 'lib/dynamic_scaffold/config.rb', line 156

def pagination(options = nil)
  @pagination = Pagination.new(options) unless options.nil?

  @pagination
end

#sorter(params = nil) ⇒ Object



162
163
164
165
# File 'lib/dynamic_scaffold/config.rb', line 162

def sorter(params = nil)
  @sorter = params if params
  @sorter
end

#sorter_attributeObject



182
183
184
# File 'lib/dynamic_scaffold/config.rb', line 182

def sorter_attribute
  @sorter.keys.first
end

#sorter_directionObject



186
187
188
# File 'lib/dynamic_scaffold/config.rb', line 186

def sorter_direction
  @sorter.values.first
end

#title(*args, &block) ⇒ Object



195
196
197
198
199
200
201
202
203
204
205
206
# File 'lib/dynamic_scaffold/config.rb', line 195

def title(*args, &block)
  if args[0].is_a?(Symbol) || args[0].is_a?(String) || block_given?
    @title = {
      column_name: args[0],
      block: block
    }
  else
    record = args[0]
    return @config.controller.view_context.instance_exec(record, &@title[:block]) if @title[:block]
    record.public_send(@title[:column_name])
  end
end

#title?Boolean

Returns:

  • (Boolean)


208
209
210
# File 'lib/dynamic_scaffold/config.rb', line 208

def title?
  @title.present?
end