Class: Zakuro::Merchant

Inherits:
Object
  • Object
show all
Defined in:
lib/zakuro/merchant.rb

Overview

Merchant ざくろ商人

東西の暦を取引する、素敵な笑顔の持ち主

Constant Summary collapse

LOGGER =

Returns ロガー.

Returns:

Output::Logger.new(location: Merchant)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(condition: {}) ⇒ Merchant

初期化

Parameters:

  • condition (Hash<Symbol, Object>) (defaults to: {})

    条件

Raises:



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

def initialize(condition: {})
  failed = Parameter::Condition.validate(hash: condition)
  raise Exception.get(presets: failed) unless failed.empty?

  @condition = Parameter::Condition.new(hash: condition)
rescue Exception::ZakuroError => e
  raise e
rescue StandardError => e
  make_internal_error(error: e)
end

Instance Attribute Details

#conditionParameter::Condition (readonly)

Returns 条件.

Returns:



23
24
25
# File 'lib/zakuro/merchant.rb', line 23

def condition
  @condition
end

Instance Method Details

#commitResult::SingleDay, Result::Range

承諾する

Returns:

  • (Result::SingleDay)

    和暦日

  • (Result::Range)

    和暦日範囲

Raises:



73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/zakuro/merchant.rb', line 73

def commit
  context = Context::Context.new(options: condition.options)

  result = get(context: context)

  return result.get unless result.invalid?

  make_uncommitable_error
rescue Exception::ZakuroError => e
  raise e
rescue StandardError => e
  make_internal_error(error: e)
end

#offer(condition: {}) ⇒ Merchant

条件提示する

Parameters:

  • condition (Hash<Symbol, Object>) (defaults to: {})

    条件

Returns:

Raises:



52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/zakuro/merchant.rb', line 52

def offer(condition: {})
  failed = Parameter::Condition.validate(hash: condition)
  raise Exception.get(presets: failed) unless failed.empty?

  condition.rewrite(hash: condition)

  self
rescue Exception::ZakuroError => e
  raise e
rescue StandardError => e
  make_internal_error(error: e)
end