class SimpleFeed::Providers::Key
Here is a meta key for a given user ID:
user 'm' for meta ↓ ↓ "ff|u.f23098.m" ↑ ↑ namespace consumer(base62)
Constants
- SERIALIZED_DATA_TEMPLATE
- SERIALIZED_META_TEMPLATE
Attributes
consumer[R]
data_key_transformer[R]
meta_key_transformer[R]
namespace[R]
Public Class Methods
new(consumer, namespace: nil, data_key_transformer: nil, meta_key_transformer: nil)
click to toggle source
# File lib/simplefeed/providers/key.rb, line 29 def initialize(consumer, namespace: nil, data_key_transformer: nil, meta_key_transformer: nil) @consumer = consumer @namespace = namespace @data_key_transformer = data_key_transformer @meta_key_transformer = meta_key_transformer end
rot13(value)
click to toggle source
# File lib/simplefeed/providers/key.rb, line 18 def rot13(value) value.tr('abcdefghijklmnopqrstuvwxyz', 'nopqrstuvwxyzabcdefghijklm') end
Public Instance Methods
data()
click to toggle source
# File lib/simplefeed/providers/key.rb, line 39 def data @data ||= render(SERIALIZED_DATA_TEMPLATE) end
inspect()
click to toggle source
Calls superclass method
# File lib/simplefeed/providers/key.rb, line 55 def inspect super + key_params.inspect end
keys()
click to toggle source
# File lib/simplefeed/providers/key.rb, line 47 def keys [data, meta] end
meta()
click to toggle source
# File lib/simplefeed/providers/key.rb, line 43 def meta @meta ||= render(SERIALIZED_META_TEMPLATE) end
to_s()
click to toggle source
Calls superclass method
# File lib/simplefeed/providers/key.rb, line 51 def to_s super + key_params.to_s end
Private Instance Methods
data_id()
click to toggle source
# File lib/simplefeed/providers/key.rb, line 91 def data_id data_key_transformer&.call(consumer) || consumer end
key_params()
click to toggle source
# File lib/simplefeed/providers/key.rb, line 79 def key_params @key_params ||= Hashie::Mash.new( namespace: namespace ? "#{namespace}|" : '', data_id: obscure_value(data_id), meta_id: obscure_value(meta_id) ) end
meta_id()
click to toggle source
# File lib/simplefeed/providers/key.rb, line 87 def meta_id meta_key_transformer&.call(consumer) || consumer end
obscure_value(id)
click to toggle source
# File lib/simplefeed/providers/key.rb, line 69 def obscure_value(id) id = id.to_i if id.is_a?(String) && id =~ /^[\d]+$/ if id.is_a?(Numeric) ::Base62.encode(id) else self.class.rot13(id.to_s) end end
render(template)
click to toggle source
# File lib/simplefeed/providers/key.rb, line 61 def render(template) template.dup.tap do |output| key_params.each_pair do |key, value| output.gsub!(/{{#{key}}}/, value.to_s) end end end