Module: Jeff

Defined in:
lib/jeff.rb,
lib/jeff/version.rb

Overview

Jeff mixes in client behaviour for Amazon Web Services (AWS) that require Signature version 2 authentication.

Defined Under Namespace

Modules: ClassMethods, Utils Classes: Content, Query, Signature, Signer

Constant Summary collapse

VERSION =
'2.0.2'

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#aws_access_key_idObject



121
122
123
# File 'lib/jeff.rb', line 121

def aws_access_key_id
  @aws_access_key_id || ENV['AWS_ACCESS_KEY_ID']
end

#aws_endpointObject

Returns the value of attribute aws_endpoint.



117
118
119
# File 'lib/jeff.rb', line 117

def aws_endpoint
  @aws_endpoint
end

#aws_secret_access_keyObject



125
126
127
# File 'lib/jeff.rb', line 125

def aws_secret_access_key
  @aws_secret_access_key || ENV['AWS_SECRET_ACCESS_KEY']
end

Class Method Details

.included(base) ⇒ Object



91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/jeff.rb', line 91

def self.included(base)
  base.extend(ClassMethods)

  # Common parameters required by all AWS requests.
  #
  # Add other common parameters using `Jeff.params` if required in your
  # implementation.
  base.params(
    'AWSAccessKeyId' => -> { aws_access_key_id },
    'SignatureVersion' => '2',
    'SignatureMethod' => 'HmacSHA256',
    'Timestamp' => -> { Time.now.utc.iso8601 }
  )

  super
end

Instance Method Details

#connectionObject

A reusable HTTP connection.



109
110
111
# File 'lib/jeff.rb', line 109

def connection
  @connection ||= Excon.new(aws_endpoint, connection_params)
end

#connection_paramsObject



113
114
115
# File 'lib/jeff.rb', line 113

def connection_params
  @connection_params ||= default_connection_params
end

#proxy=(url) ⇒ Object



129
130
131
# File 'lib/jeff.rb', line 129

def proxy=(url)
  connection_params.store(:proxy, url)
end