Sha256: 6377415b6e2eaa68286518147ec040204c8812024777ff7c94de1b4c4aed7ef2
Contents?: true
Size: 754 Bytes
Versions: 2
Compression:
Stored size: 754 Bytes
Contents
# Proxy class for simplified more user friendly render # # UserApi.render.login(123, foo: 'bar') -> UserApi.render :login, id: 133, params: { foo: 'bar' } # # spec/tests/proxy_spec.rb # UserApi.render.login(user: 'foo', pass: 'bar') # CompanyApi.render.show(1) class Joshua class RenderProxy def initialize api @api = api end def method_missing method_name, *args # if first param present, it must be resource ID api_id = args.shift unless args.first.is_a?(Hash) # convinience, second param is params hash, options follw params, opts = [args[0], args[1] || {}] # merge id and params to options opts.merge! params: params, id: api_id @api.render method_name, opts end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
joshua-0.2.7 | ./lib/joshua/render_proxy.rb |
joshua-0.2.4 | ./lib/joshua/render_proxy.rb |