Class: Io::Flow::V0::Models::ItemFunction

Inherits:
ExpandableItemFunction show all
Defined in:
lib/flow_commerce/flow_api_v0_client.rb

Overview

Item Functions are javascript code used to calculate the localized price of an additional item. Each function can be associated with an optional query identifying the products to which the function applies. Flow selects the first function matching an item, then uses that function to calculate local prices whenever any data relevant to the item changes (e.g. on update in master catalog, on change in relevant exchange rate, etc.). Item functions are immutable once created.

Instance Attribute Summary collapse

Attributes inherited from ExpandableItemFunction

#discriminator

Instance Method Summary collapse

Methods inherited from ExpandableItemFunction

#to_hash

Constructor Details

#initialize(incoming = {}) ⇒ ItemFunction

Returns a new instance of ItemFunction.



14687
14688
14689
14690
14691
14692
14693
14694
14695
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14687

def initialize(incoming={})
  super(:discriminator => ExpandableItemFunction::Types::ITEM_FUNCTION)
  opts = HttpClient::Helper.symbolize_keys(incoming)
  HttpClient::Preconditions.require_keys(opts, [:id, :key, :description, :code], 'ItemFunction')
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
  @key = HttpClient::Preconditions.assert_class('key', opts.delete(:key), String)
  @description = HttpClient::Preconditions.assert_class('description', opts.delete(:description), String)
  @code = HttpClient::Preconditions.assert_class('code', opts.delete(:code), String)
end

Instance Attribute Details

#code ⇒ Object (readonly)

Returns the value of attribute code.



14685
14686
14687
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14685

def code
  @code
end

#description ⇒ Object (readonly)

Returns the value of attribute description.



14685
14686
14687
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14685

def description
  @description
end

#id ⇒ Object (readonly)

Returns the value of attribute id.



14685
14686
14687
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14685

def id
  @id
end

#key ⇒ Object (readonly)

Returns the value of attribute key.



14685
14686
14687
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14685

def key
  @key
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



14701
14702
14703
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14701

def copy(incoming={})
  ItemFunction.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
end

#subtype_to_hash ⇒ Object



14705
14706
14707
14708
14709
14710
14711
14712
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14705

def subtype_to_hash
  {
    :id => id,
    :key => key,
    :description => description,
    :code => code
  }
end

#to_json ⇒ Object



14697
14698
14699
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14697

def to_json
  JSON.dump(to_hash)
end