Module: Killbill::Plugin::PropertiesHelper

Included in:
ActiveMerchant::PaymentPlugin, ActiveMerchant::RSpec
Defined in:
lib/killbill/helpers/properties_helper.rb

Instance Method Summary collapse

Instance Method Details

#build_property(key, value = nil) ⇒ Object



33
34
35
36
37
38
# File 'lib/killbill/helpers/properties_helper.rb', line 33

def build_property(key, value = nil)
  prop = ::Killbill::Plugin::Model::PluginProperty.new
  prop.key = key
  prop.value = value
  prop
end

#find_value_from_properties(properties, key = nil) ⇒ Object



5
6
7
8
9
# File 'lib/killbill/helpers/properties_helper.rb', line 5

def find_value_from_properties(properties, key = nil)
  return nil if key.nil?
  prop = (properties.find { |kv| kv.key.to_s == key.to_s })
  prop.nil? ? nil : prop.value
end

#hash_to_properties(options = {}) ⇒ Object



11
12
13
# File 'lib/killbill/helpers/properties_helper.rb', line 11

def hash_to_properties(options = {})
  merge_properties([], options)
end

#merge_properties(properties, options = {}) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/killbill/helpers/properties_helper.rb', line 23

def merge_properties(properties, options = {})
  merged = properties_to_hash(properties, options)

  properties = []
  merged.each do |k, v|
    properties << build_property(k, v)
  end
  properties
end

#properties_to_hash(properties, options = {}) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/killbill/helpers/properties_helper.rb', line 15

def properties_to_hash(properties, options = {})
  merged = {}
  (properties || []).each do |p|
    merged[p.key.to_sym] = p.value
  end
  merged.merge(options)
end