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