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

Version Path
tableling-rails-0.0.26 lib/tableling-rails/config.rb
tableling-rails-0.0.25 lib/tableling-rails/config.rb
tableling-rails-0.0.24 lib/tableling-rails/config.rb
tableling-rails-0.0.23 lib/tableling-rails/config.rb
tableling-rails-0.0.22 lib/tableling-rails/config.rb
tableling-rails-0.0.21 lib/tableling-rails/config.rb
tableling-rails-0.0.20 lib/tableling-rails/config.rb
tableling-rails-0.0.19 lib/tableling-rails/config.rb
tableling-rails-0.0.18 lib/tableling-rails/config.rb
tableling-rails-0.0.17 lib/tableling-rails/config.rb
tableling-rails-0.0.16 lib/tableling-rails/config.rb
tableling-rails-0.0.15 lib/tableling-rails/config.rb
tableling-rails-0.0.14 lib/tableling-rails/config.rb
tableling-rails-0.0.13 lib/tableling-rails/config.rb
tableling-rails-0.0.12 lib/tableling-rails/config.rb