Sha256: 4fbc363d93d39f544b955322e3ce03c2c9318fcd55a8bb477ae8f4bae4608ecb

Contents?: true

Size: 667 Bytes

Versions: 2

Compression:

Stored size: 667 Bytes

Contents

require 'concern_builder'
require 'bidu/core_ext'

class Danica::Function
  class VariablesBuilder < ::ConcernBuilder
    attr_reader :instance

    def init
      attr_names.each do |name|
        add_setter(name)
        add_reader(name)
        instance.send(:variables_names) << name
      end
    end

    private

    def add_setter(name)
      code = <<-CODE
        variables_hash[:#{name}] = wrap_value(value)
        @variables = variables_hash.values
      CODE
      add_method("#{name}=(value)", code)
    end

    def add_reader(name)
      code = <<-CODE
        variables_hash[:#{name}]
      CODE
      add_method("#{name}", code)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
danica-1.2.0 lib/danica/function/variables_builder.rb
danica-1.1.0 lib/danica/function/variables_builder.rb