module Redlics::Granularity

Granularity namespace

Public Instance Methods

default(context) click to toggle source

Get default granularities by given context.

@param context [Hash] the hash of a context defined in Redlics::CONTEXTS @return [Array] includes all valid default granularities

# File lib/redlics/granularity.rb, line 23
def default(context)
  check(Redlics.config["#{context[:long]}_granularity"]) || [Redlics.config.granularities.keys.first]
end
validate(context, granularities) click to toggle source

Validate granularities by given context.

@param context [Hash] the hash of a context defined in Redlics::CONTEXTS @param granularities [Range] granularity range @param granularities [String] single granularity @param granularities [Array] granularity array @return [Array] includes all valid granularities

# File lib/redlics/granularity.rb, line 15
def validate(context, granularities)
  check(granularities) || default(context)
end

Private Instance Methods

check(granularities) click to toggle source

Check if granularities are defined in the configuration.

@param granularities [Range] granularity range @param granularities [String] single granularity @param granularities [Array] granularity array @return [Array] includes all valid granularities

# File lib/redlics/granularity.rb, line 35
def check(granularities)
  keys = Redlics.config.granularities.keys
  checked = case granularities
            when Range
              keys[keys.index(granularities.first.to_sym)..keys.index(granularities.last.to_sym)]
            when Array
              [granularities.map(&:to_sym)].flatten & keys
            else
              [granularities && granularities.to_sym].flatten & keys
            end
  checked.any? ? checked : nil
end