Sha256: 13d7cca0b5506dd99a4803f64387209bdddb973751b22fcf3aeedc5388556617

Contents?: true

Size: 626 Bytes

Versions: 9

Compression:

Stored size: 626 Bytes

Contents

module Tableling

  class Settings

    def initialize parent = nil
      @parent = parent
      @type_serializers = []
    end

    def configure &block
      instance_eval &block if block
    end

    def serialize_type type, &block
      @type_serializers << TypeSerializer.new(type, block)
    end

    def type_serializers
      (@parent ? @parent.type_serializers : []) + @type_serializers
    end

    def dsl
      m = Module.new do

        def serialize_type type, &block
          @settings.serialize_type type, &block
        end
      end
      m.instance_variable_set :@settings, self
      m
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
tableling-rails-0.0.26 lib/tableling-rails/settings.rb
tableling-rails-0.0.25 lib/tableling-rails/settings.rb
tableling-rails-0.0.24 lib/tableling-rails/settings.rb
tableling-rails-0.0.23 lib/tableling-rails/settings.rb
tableling-rails-0.0.22 lib/tableling-rails/settings.rb
tableling-rails-0.0.21 lib/tableling-rails/settings.rb
tableling-rails-0.0.20 lib/tableling-rails/settings.rb
tableling-rails-0.0.19 lib/tableling-rails/settings.rb
tableling-rails-0.0.18 lib/tableling-rails/settings.rb