lib/octoparts/representer/aggregate_request_representer.rb in octoparts-0.0.1 vs lib/octoparts/representer/aggregate_request_representer.rb in octoparts-0.0.2
- old
+ new
@@ -1,21 +1,34 @@
+require 'active_support/core_ext/string/inflections'
+
module Octoparts
module Representer
+ class Camelizer
+ include Uber::Callable
+ def initialize(camelcase)
+ @camelcase = camelcase
+ end
+
+ def call(_represented, args)
+ args[:camelize] ? @camelcase : @camelcase.underscore
+ end
+ end
+
module AggregateRequestRepresenter
include Representable::JSON
- property :request_meta, as: :requestMeta, class: Model::RequestMeta do
+ property :request_meta, as: Camelizer.new('requestMeta'), class: Model::RequestMeta do
property :id
- property :service_id, as: :serviceId
- property :user_id, as: :userId
- property :session_id, as: :sessionId
- property :request_url, as: :requestUrl
- property :user_agent, as: :userAgent
+ property :service_id, as: Camelizer.new('serviceId')
+ property :user_id, as: Camelizer.new('userId')
+ property :session_id, as: Camelizer.new('sessionId')
+ property :request_url, as: Camelizer.new('requestUrl')
+ property :user_agent, as: Camelizer.new('userAgent')
property :timeout
end
collection :requests, class: Model::PartRequest do
- property :part_id, as: :partId
+ property :part_id, as: Camelizer.new('partId')
property :id
collection :params, class: Model::PartRequestParam do
property :key
property :value
end