Sha256: 31170bfce81c87860d42321b0a797d81902c0b1e2858d5b0e28125f5ac06a23a

Contents?: true

Size: 607 Bytes

Versions: 4

Compression:

Stored size: 607 Bytes

Contents

require 'parameters/class_methods'

module Parameters
  module ModuleMethods
    #
    # Ensures that the module will re-extend Parameters::ClassMethods,
    # when included.
    #
    def included(base)
      base.extend ClassMethods

      if base.kind_of?(Module)
        # re-extend the ModuleMethods
        base.extend ModuleMethods
      end
    end

    #
    # Ensures that the module will initialize parameters, when extended
    # into an Object.
    #
    def extended(object)
      each_param do |param|
        object.params[param.name] = param.to_instance(object)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
parameters-0.4.4 lib/parameters/module_methods.rb
parameters-0.4.3 lib/parameters/module_methods.rb
parameters-0.4.2 lib/parameters/module_methods.rb
parameters-0.4.0 lib/parameters/module_methods.rb