Module: Amazon

Defined in:
lib/amazon/aws/cache.rb,
lib/amazon.rb,
lib/amazon/aws.rb,
lib/amazon/aws/search.rb,
lib/amazon/aws/shoppingcart.rb

Overview

$Id: search.rb,v 1.26 2008/09/21 22:17:32 ianmacd Exp $

Defined Under Namespace

Modules: AWS Classes: AmazonError, Config

Constant Summary collapse

NAME =
'Ruby/Amazon'
@@config =
{}

Class Method Summary collapse

Class Method Details

.dprintf(format = '', *args) ⇒ Object

Prints debugging messages and works like printf, except that it prints only when Ruby is run with the -d switch.



20
21
22
# File 'lib/amazon.rb', line 20

def Amazon.dprintf(format='', *args)
  $stderr.printf( format + "\n", *args ) if $DEBUG
end

.rawurlencode(string) ⇒ Object



36
37
38
# File 'lib/amazon.rb', line 36

def Amazon.rawurlencode(string)
  CGI.escape(string).gsub("+", "%20")
end

.uncamelise(str) ⇒ Object

Convert a string from CamelCase to ruby_case.



43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/amazon.rb', line 43

def Amazon.uncamelise(str)
  # Avoid modifying by reference.
  #
  str = str.dup
  
  # Don't mess with string if all caps.
  #
  str.gsub!( /(.+?)(([A-Z][a-z]|[A-Z]+$))/, "\\1_\\2" ) if str =~ /[a-z]/
  
  # Convert to lower case.
  #
  str.downcase
end

.url_encode(string) ⇒ Object

Encode a string, such that it is suitable for HTTP transmission.



27
28
29
30
31
32
33
34
# File 'lib/amazon.rb', line 27

def Amazon.url_encode(string)

# Shamelessly plagiarised from Wakou Aoyama's cgi.rb.
#
string.gsub( /([^ a-zA-Z0-9_.-]+)/n ) do
  '%' + $1.unpack( 'H2' * $1.size ).join( '%' ).upcase
  end.tr( ' ', '+' )
end