Sha256: 587f468847ebe1fae8bf1ab241ec48fecce896440cfb334ad86ff927e601a722

Contents?: true

Size: 905 Bytes

Versions: 1

Compression:

Stored size: 905 Bytes

Contents

# encoding: utf-8
require_relative "base"

module Hexx
  module Helpers

    # @api hide
    # Adds setter and getter for the instance parameter.
    #
    # @example
    #   # Providing that MyClass#params returns a hash
    #   Parameter.add MyClass, :name
    #   object = MyClass.new
    #
    #   object.params["name"] # => nil
    #   object.name           # => nil
    #
    #   object.params["name"] = "Ivan"
    #   object.params["name"] # => "Ivan"
    #   object.name           # => "Ivan"
    #
    #   object.name = "Ivo"
    #   object.params["name"] # => "Ivo"
    #   object.name           # => "Ivo"
    class Parameter < Base

      private

      # @api hide
      def setter
        "private def #{ name }; params[\"#{ name }\"]; end"
      end

      # @api hide
      def getter
        "private def #{ name }=(value); params[\"#{ name }\"] = value; end"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
hexx-6.0.3 lib/hexx/helpers/parameter.rb