Class: EasyPing::Base

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Utils
Defined in:
lib/easy_ping/base.rb

Constant Summary collapse

DEFAULTS =
{
  'api_base' => 'https://api.pingplusplus.com',
  'currency' => 'cny'
}

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Utils

#indifferent_hash, #indifferent_params

Constructor Details

#initialize(options = {}) ⇒ Base

Returns a new instance of Base.



10
11
12
13
14
# File 'lib/easy_ping/base.rb', line 10

def initialize(options={})
  @config = EasyPing::Config.new(
    DEFAULTS.merge indifferent_hash(options)
  )
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



4
5
6
# File 'lib/easy_ping/base.rb', line 4

def config
  @config
end

Instance Method Details

#charge_instanceObject



24
25
26
# File 'lib/easy_ping/base.rb', line 24

def charge_instance
  EasyPing::Charge.new(config)
end

#configure {|config| ... } ⇒ Object

Yields:



16
17
18
# File 'lib/easy_ping/base.rb', line 16

def configure
  yield config
end

#find(*args) ⇒ Object Also known as: get, find_charge, find_refund



32
33
34
35
36
37
38
39
40
41
# File 'lib/easy_ping/base.rb', line 32

def find(*args)
  params = indifferent_params(args, 'charge_id', 'refund_id')
  if params['charge_id'] && params['refund_id']
    refund_instance.find(params)
  elsif params['charge_id']
    charge_instance.find(params)
  else
    raise ArgumentInvalid, "missing charge_id"
  end
end

#from_notification(params) ⇒ Object



43
44
45
# File 'lib/easy_ping/base.rb', line 43

def from_notification(params)
  EasyPing::Action.new(config).from_notification(params)
end

#refund_instanceObject



28
29
30
# File 'lib/easy_ping/base.rb', line 28

def refund_instance
  EasyPing::Refund.new(config)
end

#settingsObject



20
21
22
# File 'lib/easy_ping/base.rb', line 20

def settings
  config.to_options
end