class TwitterWithAutoPagination::Serializer

Public Class Methods

coder() click to toggle source
# File lib/twitter_with_auto_pagination/serializer.rb, line 16
def coder
  @@coder ||= JsonCoder.new(JSON)
end
coder=(coder) click to toggle source
# File lib/twitter_with_auto_pagination/serializer.rb, line 20
def coder=(coder)
  @@coder = Coder.instance(coder)
end
decode(str, options = {}) click to toggle source
# File lib/twitter_with_auto_pagination/serializer.rb, line 10
def decode(str, options = {})
  instrument(options) do
    str.kind_of?(String) ? coder.decode(str) : str
  end
end
encode(obj, options = {}) click to toggle source
# File lib/twitter_with_auto_pagination/serializer.rb, line 4
def encode(obj, options = {})
  instrument(options) do
    (!!obj == obj) ? obj : coder.encode(obj)
  end
end

Private Class Methods

instrument(options) { |payload| ... } click to toggle source
# File lib/twitter_with_auto_pagination/serializer.rb, line 26
def instrument(options, &block)
  parent = caller[0][/`([^']*)'/, 1]
  payload = {operation: parent, args: options[:args]}
  ActiveSupport::Notifications.instrument("#{payload[:operation]}.twitter", payload) { yield(payload) }
end