Sha256: f91738e64dbf44aea5a21fef5086deb8fe4abc1de430e80aba272cfc37f15d06

Contents?: true

Size: 701 Bytes

Versions: 30

Compression:

Stored size: 701 Bytes

Contents

class Betterdocs::Dsl::Representer
  def initialize(representer, name, options, &block)
    set_context @representer = representer
    @name = name.to_sym
    @options = options | {
      if:      -> { true },
      unless:  -> { false },
    }
    block and instance_eval(&block)
  end

  attr_reader :name

  attr_reader :representer

  def assign?(object)
    object.instance_exec(&@options[:if]) &&
      !object.instance_exec(&@options[:unless])
  end

  def assign(result, object)
    raise NotImplementedError, 'assign needs to be implemented in subclass'
  end

  def add_to_collector(collector)
    raise NotImplementedError, 'add_to_collector needs to be implemented in subclass'
  end
end

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
betterdocs-0.14.0 lib/betterdocs/dsl/representer.rb
betterdocs-0.13.0 lib/betterdocs/dsl/representer.rb
betterdocs-0.12.5 lib/betterdocs/dsl/representer.rb
betterdocs-0.12.4 lib/betterdocs/dsl/representer.rb
betterdocs-0.12.3 lib/betterdocs/dsl/representer.rb
betterdocs-0.12.2 lib/betterdocs/dsl/representer.rb
betterdocs-0.12.1 lib/betterdocs/dsl/representer.rb
betterdocs-0.12.0 lib/betterdocs/dsl/representer.rb
betterdocs-0.11.0 lib/betterdocs/dsl/representer.rb
betterdocs-0.10.0 lib/betterdocs/dsl/representer.rb
betterdocs-0.9.2 lib/betterdocs/dsl/representer.rb
betterdocs-0.9.1 lib/betterdocs/dsl/representer.rb
betterdocs-0.9.0 lib/betterdocs/dsl/representer.rb
betterdocs-0.8.1 lib/betterdocs/dsl/representer.rb
betterdocs-0.8.0 lib/betterdocs/dsl/representer.rb
betterdocs-0.7.1 lib/betterdocs/dsl/representer.rb
betterdocs-0.7.0 lib/betterdocs/dsl/representer.rb
betterdocs-0.6.8 lib/betterdocs/dsl/representer.rb
betterdocs-0.6.7 lib/betterdocs/dsl/representer.rb
betterdocs-0.6.6 lib/betterdocs/dsl/representer.rb