Sha256: 9907e1677b69702f3296f0f7f0651bb9988f7f9ab1eb4de40b2c24ba73c634bd
Contents?: true
Size: 795 Bytes
Versions: 15
Compression:
Stored size: 795 Bytes
Contents
module Tableling class Configuration attr_reader :model, :settings def initialize model, options = {}, &block @model = model @views = [] @settings = Settings.new Tableling.settings extend @settings.dsl instance_eval &block if block @frozen = true end def view name, options = {}, &block return @views.find{ |v| v.name.to_s == name.to_s } if @frozen @views.delete_if{ |v| v.name.to_s == name } View.new(name, self, options, &block).tap{ |v| @views << v } end def default_view options = {}, &block view :default, options, &block end def process params raise ConfigurationError, "You must specify a default view" unless view(:default) view(:default).process params end end end
Version data entries
15 entries across 15 versions & 1 rubygems