lib/when_exe/calendarnote.rb in when_exe-0.4.6 vs lib/when_exe/calendarnote.rb in when_exe-0.5.0
- old
+ new
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
=begin
- Copyright (C) 2011-2015 Takashi SUGA
+ Copyright (C) 2011-2021 Takashi SUGA
You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
=end
module When
@@ -106,23 +106,27 @@
# @param [Boolean] compact 余分な nil や空配列を除去するか否か
# @param [Symbol] symbol 取り出したいハッシュ要素(:note, :value, etc.)
#
# @return [Array] ハッシュ要素からなる配列(元の構造が配列であった場合)
#
- # @note 引数 symbol が Integer の場合は添え字とみなして元の配列の要素を取り出す
+ # @note 引数 symbol が Symbol でも String でもない場合は添え字とみなして元の配列の要素を取り出す
#
def value(compact=true, symbol=:value)
if kind_of?(Hash) && !key?(:note)
# Persistent NotesContainer
sliced = {}
each_pair do |key, val|
sliced[key] = val[symbol]
end
else
# Non-Persistent NotesContainer
- return _bless(slice(symbol)) if symbol.kind_of?(Integer)
- sliced = _dig(self) {|target| target.fetch(symbol, nil)}
+ case symbol
+ when Symbol, String
+ sliced = _dig(self) {|target| target.fetch(symbol, nil)}
+ else
+ return _bless(slice(symbol))
+ end
end
sliced = _bless(sliced)
compact ? sliced.simplify : sliced
end
@@ -323,10 +327,10 @@
# 暦注サブクラスの場合、暦注要素が増えたり、:note の暦注要素の型が変わったりすることがある。
#
def notes(date, options={})
dates, indices, notes, persistence, conditions, options = _parse_note(date, options)
retrieved = NotesContainer.retrieve(persistence, date.to_i)
- return retrieved unless retrieved == false
+ return retrieved if retrieved
NotesContainer.register(indices.map {|i|
next [] unless i <= date.precision
_note_values(dates, notes[i-1], _all_keys[i-1], _elements[i-1]) do |dates, focused_notes, notes_hash|
focused_notes.each do |note|
notes_hash[note] ||= _note_element(note, i, conditions, dates)