Class: Zakuro::Parameter::Condition

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

Overview

Condition 条件

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(hash: {}) ⇒ Condition

初期化

Parameters:

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

    パラメータ

Options Hash (hash:):

  • :date (Date)

    基準日

  • :range (Hash<Symbol, Date>)

    範囲

  • :columns (Array<String>)

  • :options (Hash<String, Object>)

    オプション



36
37
38
39
40
41
# File 'lib/zakuro/parameter/condition.rb', line 36

def initialize(hash: {})
  @date = hash[:date]
  @range = hash[:range]
  @columns = hash[:columns]
  @options = hash[:options] || {}
end

Instance Attribute Details

#columnsArray<String> (readonly)

Returns 列.

Returns:

  • (Array<String>)



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

def columns
  @columns
end

#dateDate (readonly)

Returns 基準日.

Returns:

  • (Date)

    基準日



19
20
21
# File 'lib/zakuro/parameter/condition.rb', line 19

def date
  @date
end

#optionsHash<String, Object> (readonly)

Returns オプション.

Returns:

  • (Hash<String, Object>)

    オプション



25
26
27
# File 'lib/zakuro/parameter/condition.rb', line 25

def options
  @options
end

#rangeHash<Symbol, Date> (readonly)

Returns 範囲.

Returns:

  • (Hash<Symbol, Date>)

    範囲



21
22
23
# File 'lib/zakuro/parameter/condition.rb', line 21

def range
  @range
end

Class Method Details

.validate(hash:) ⇒ Array<Exception::Case::Preset>

検証する

Parameters:

  • hash (Hash<Symbol, Object>)

    パラメータ

Returns:



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/zakuro/parameter/condition.rb', line 69

def validate(hash:)
  failed = []

  unless hash.is_a?(Hash)
    failed.push(
      Exception::Case::Preset.new(
        hash.class,
        template: Exception::Case::Pattern::INVALID_CONDITION_TYPE
      )
    )
    return failed
  end

  failed.concat(validate_hash(hash: hash))

  failed
end

Instance Method Details

#rewrite(hash: {}) ⇒ Object

上書きする

Parameters:

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

    パラメータ



48
49
50
51
52
53
54
55
56
57
# File 'lib/zakuro/parameter/condition.rb', line 48

def rewrite(hash: {})
  instance_variables.each do |var|
    key = var.to_s.delete('@')
    val = hash[key.intern]

    next unless val

    instance_variable_set(var, val)
  end
end