class GlassOctopus::Middleware::JsonParser
Public Class Methods
new(app, options={})
click to toggle source
# File lib/glass_octopus/middleware/json_parser.rb, line 7 def initialize(app, options={}) @app = app @klass = options.delete(:class) @encoding = options.delete(:encoding) @options = options end
Public Instance Methods
call(ctx)
click to toggle source
# File lib/glass_octopus/middleware/json_parser.rb, line 14 def call(ctx) message = parse(ensure_encoding(ctx.message.value)) ctx = ContextWithJsonParsedMessage.new(ctx, message) @app.call(ctx) end
Private Instance Methods
ensure_encoding(value)
click to toggle source
# File lib/glass_octopus/middleware/json_parser.rb, line 27 def ensure_encoding(value) return value unless @encoding value.encode(@encoding, invalid: :replace, undef: :replace, replace: '') end
parse(str)
click to toggle source
# File lib/glass_octopus/middleware/json_parser.rb, line 22 def parse(str) hash = JSON.parse(str, { :create_additions => false }.merge(@options)) @klass ? @klass.new(hash) : hash end