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 =
"1.4.0"

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#aws_access_key_idObject



119
120
121
# File 'lib/jeff.rb', line 119

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

#aws_endpointObject

Returns the value of attribute aws_endpoint.



115
116
117
# File 'lib/jeff.rb', line 115

def aws_endpoint
  @aws_endpoint
end

#aws_secret_access_keyObject



123
124
125
# File 'lib/jeff.rb', line 123

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
# 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 }
  )
end

Instance Method Details

#connectionObject

A reusable HTTP connection.



107
108
109
# File 'lib/jeff.rb', line 107

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

#connection_paramsObject



111
112
113
# File 'lib/jeff.rb', line 111

def connection_params
  @connection_params ||= default_connection_params
end