Class: RestClient::Payload::Base
- Inherits:
-
Object
- Object
- RestClient::Payload::Base
- Defined in:
- lib/restclient/payload.rb
Direct Known Subclasses
Instance Method Summary collapse
- #build_stream(params) ⇒ Object
- #close ⇒ Object
- #escape(v) ⇒ Object
-
#flatten_params(params, parent_key = nil) ⇒ Object
Flatten parameters by converting hashes of hashes to flat hashes => {keys2 => value} will be transformed into => value.
- #headers ⇒ Object
-
#initialize(params) ⇒ Base
constructor
A new instance of Base.
- #inspect ⇒ Object
- #read(bytes = nil) ⇒ Object (also: #to_s)
- #short_inspect ⇒ Object
- #size ⇒ Object (also: #length)
Constructor Details
#initialize(params) ⇒ Base
Returns a new instance of Base.
35 36 37 |
# File 'lib/restclient/payload.rb', line 35 def initialize(params) build_stream(params) end |
Instance Method Details
#build_stream(params) ⇒ Object
39 40 41 42 |
# File 'lib/restclient/payload.rb', line 39 def build_stream(params) @stream = StringIO.new(params) @stream.seek(0) end |
#close ⇒ Object
80 81 82 |
# File 'lib/restclient/payload.rb', line 80 def close @stream.close end |
#escape(v) ⇒ Object
50 51 52 |
# File 'lib/restclient/payload.rb', line 50 def escape(v) URI.escape(v.to_s, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]")) end |
#flatten_params(params, parent_key = nil) ⇒ Object
Flatten parameters by converting hashes of hashes to flat hashes => {keys2 => value} will be transformed into => value
56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/restclient/payload.rb', line 56 def flatten_params(params, parent_key = nil) result = {} params.keys.map do |key| calculated_key = parent_key ? "#{parent_key}[#{escape key}]" : escape(key) value = params[key] if value.is_a? Hash result.merge!(flatten_params(value, calculated_key)) else result[calculated_key] = value end end result end |
#headers ⇒ Object
70 71 72 |
# File 'lib/restclient/payload.rb', line 70 def headers { 'Content-Length' => size.to_s } end |
#inspect ⇒ Object
84 85 86 87 88 |
# File 'lib/restclient/payload.rb', line 84 def inspect result = to_s.inspect @stream.seek(0) result end |
#read(bytes = nil) ⇒ Object Also known as: to_s
44 45 46 |
# File 'lib/restclient/payload.rb', line 44 def read(bytes=nil) @stream.read(bytes) end |
#short_inspect ⇒ Object
90 91 92 |
# File 'lib/restclient/payload.rb', line 90 def short_inspect (size > 100 ? "#{size} byte length" : inspect) end |
#size ⇒ Object Also known as: length
74 75 76 |
# File 'lib/restclient/payload.rb', line 74 def size @stream.size end |