Sha256: 734c3ef2c647f67c9db0a0edc7541b7a47842518dc26395311a98f06f774f156

Contents?: true

Size: 850 Bytes

Versions: 7

Compression:

Stored size: 850 Bytes

Contents

module WorkflowKit

  module Parameterable
    def has_many_parameters
      
      has_many :parameters, as: :parameterable, dependent: :destroy, autosave: true

      include ParameterableInstanceMethods

    end
  end

  module ParameterableInstanceMethods

    # returns the associated parameters as hash
    def parameters_to_hash
      WorkflowKit::Parameter.to_hash( parameters )
    end

    def parameter_hash
      parameters_to_hash
    end

    def parameters=( new_parameter_hash )
            
      return super( new_parameter_hash ) if not new_parameter_hash.kind_of? Hash # original method
      
      parameters.destroy_all # delete previous parameters
      if new_parameter_hash
        new_parameter_hash.each do |key, value|
          self.parameters.build( key: key, value: value )
        end
      end

    end

  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
workflow_kit-0.0.8 app/models/workflow_kit/parameterable.rb
workflow_kit-0.0.7 app/models/workflow_kit/parameterable.rb
workflow_kit-0.0.6.alpha app/models/workflow_kit/parameterable.rb
workflow_kit-0.0.4.alpha app/models/workflow_kit/parameterable.rb
workflow_kit-0.0.3.alpha app/models/workflow_kit/parameterable.rb
workflow_kit-0.0.2.alpha app/models/workflow_kit/parameterable.rb
workflow_kit-0.0.1.apha app/models/workflow_kit/parameterable.rb