class Zakuro::Condition

Condition 条件

Attributes

columns[R]

@return [Array<String>] 列

date[R]

@return [Date] 基準日

options[R]

@return [Array<String>] オプション

range[R]

@return [Hash<Symbol, Date>] 範囲

Public Class Methods

new(hash: {}) click to toggle source

初期化

@param [Hash<Symbol, Object>] hash パラメータ @option hash [Date] :date 基準日 @option hash [Hash<Symbol, Date>] :range 範囲 @option hash [Array<String>] :columns 列 @option hash [Array<String>] :options オプション

# File lib/zakuro/condition.rb, line 195
def initialize(hash: {})
  @date = hash[:date]
  @range = hash[:range]
  @columns = hash[:columns]
  @options = hash[:options]
end
validate(hash:) click to toggle source

検証する

@param [Hash<Symbol, Object>] hash パラメータ

@return [Array<String>] エラーメッセージ

# File lib/zakuro/condition.rb, line 211
def self.validate(hash:)
  failed = []

  unless hash.is_a?(Hash)
    failed.push("invalid condition type. #{hash}. should be hash")
    return failed
  end

  failed.concat(Catalog::BasisDate.validate(date: hash[:date]))
  failed.concat(Catalog::Range.validate(hash: hash[:range]))
  failed.concat(Catalog::Columns.validate(columns: hash[:columns]))
  failed.concat(Catalog::Options.validate(options: hash[:options]))

  failed
end

Public Instance Methods

rewrite(hash: {}) click to toggle source

上書きする

@param [Hash<Symbol, Object>] hash パラメータ

# File lib/zakuro/condition.rb, line 232
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