Class: Range

Inherits:
Object show all
Defined in:
lib/decentworks/hexdigest_support/range.rb,
sig/decentworks/hexdigest_support/range.rbs

Instance Method Summary collapse

Instance Method Details

#to_hexdigest_source::String

ハッシュ値を求めるためのオリジナルの値

MEMO: 端点は文字列化せずそのままHashに渡す。先に#to_hexdigest_sourceで 文字列にしてしまうと型が落ちて、(1..3) と ("1".."3") が同じ値になってしまう

MEMO: 端点の取得に#first/#lastではなく#begin/#endを使う。#firstは始端のない範囲で、 #lastは終端のない範囲でRangeErrorになるため、(1..) や (..3) を扱えない。 #begin/#endは端点がなければnilを返すので、端点なしをNilClassとして表現できる

MEMO: 有界な範囲では#first/#lastと#begin/#endの戻り値は一致し、キー名もfirst/lastの ままとしているため、この実装で既存のダイジェストは変わらない

Returns:

  • (::String)


17
18
19
20
21
22
23
# File 'lib/decentworks/hexdigest_support/range.rb', line 17

def to_hexdigest_source
  {
    first:       self.begin,
    last:        self.end,
    exclude_end: exclude_end?
  }.to_hexdigest_source
end