Module: MockChargebee::Util
- Defined in:
- lib/mock_chargebee/util.rb
Defined Under Namespace
Classes: ParsedPath
Class Method Summary collapse
- .deep_transform_values!(hash) ⇒ Object
- .generate_id(resource_prefix) ⇒ Object
- .parse_params(params) ⇒ Object
- .parse_path_from_url(url) ⇒ Object
Class Method Details
.deep_transform_values!(hash) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/mock_chargebee/util.rb', line 24 def self.deep_transform_values!(hash) hash.each_with_object({}) do |pair, hash| key, val = pair next hash.store(key, val) if key.match?(/id/) case val when Hash transformed_val = deep_transform_values!(val) hash.store(key, transformed_val) when "true" hash.store(key, true) when "false" hash.store(key, false) when /^\d+\.\d+$/ hash.store(key, val.to_f) when /^\d+$/ hash.store(key, val.to_i) else hash.store(key, val) end end end |
.generate_id(resource_prefix) ⇒ Object
20 21 22 |
# File 'lib/mock_chargebee/util.rb', line 20 def self.generate_id(resource_prefix) "__TEST__#{resource_prefix}__#{SecureRandom.uuid}" end |
.parse_params(params) ⇒ Object
9 10 11 12 |
# File 'lib/mock_chargebee/util.rb', line 9 def self.parse_params(params) params = Rack::Utils.parse_nested_query(params.to_query) deep_transform_values!(params) end |
.parse_path_from_url(url) ⇒ Object
5 6 7 |
# File 'lib/mock_chargebee/util.rb', line 5 def self.parse_path_from_url(url) ParsedPath.new(*url.delete_prefix("/").split("/")) end |