spurious-ruby-awssdk-helper 0.2.4 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2c81d258107cec71268b9225fc1b0c15a33eeed1
4
- data.tar.gz: 11c9e8dee50768286df55051432b977b6feededd
3
+ metadata.gz: a2d7747ebd65c39785b7dfabbbd1356afe588900
4
+ data.tar.gz: 34bd39dbdc36f85d4dbef058e8fd4294a02ca3de
5
5
  SHA512:
6
- metadata.gz: 64709e8d94cbfab2dbb08bdf92a5e7e0d75739ac93be87cb15fa72ffc18f3ad16e015a5229a9162d33b35caf13d9802e444f4929b3316c284f46275033307cc5
7
- data.tar.gz: de423bf9a666b95da9e50240f2994b3aed3c16c2f7dde0b3b42da708bfc5aaa6ad6582fccdf7754b6da6c7cde60c86a25c42af0ba5eb1c2873f3ed493a96f0e2
6
+ metadata.gz: 3451f77cc7b875fdaffc61a93045e4101ea3840df06c9a65efbd669c4ff11e3a9358c0b5b6ed430a968d0a13866bbd2db88598328b8789d0eeb95a46fabdf125
7
+ data.tar.gz: 46841663c1e0d5ffbb49cdf290264c121c74f05128b0f723810bd3b7a5f0dc0f434f8d858b782f94ad86c6bb0b35324dba3c3c1489eb163156f6c68ae01dc76d
data/README.md CHANGED
@@ -20,6 +20,12 @@ Or install it yourself as:
20
20
 
21
21
  $ gem install spurious-ruby-awssdk-helper
22
22
 
23
+ ## AWS SDK Versions
24
+
25
+ - The gem supports using both `~v1` and `~v2` of the `aws-sdk` gem.
26
+ - The gem uses `~v1` before it's `v1.0.0` release.
27
+ - The gem uses `~v2` past it's `v1.0.0+` release.
28
+
23
29
  ## Usage
24
30
 
25
31
  You can configure the `aws-sdk` two different ways:
@@ -45,8 +51,8 @@ If you're running you application in a container on the same host
45
51
  as spurious then you can pass in the following linked containers:
46
52
 
47
53
  ```bash
48
- docker run ... --link sprious-s3:s3.spurious.localhost --link spurious
49
- -sqs:sqs.spurious.localhost --link spurious-dynamodb:dynamodb.spurious.localhost
54
+ docker run ... --link spurious-s3:s3.spurious.localhost --link spurious
55
+ -sqs:sqs.spurious.localhost --link spurious-dynamo:dynamodb.spurious.localhost
50
56
  ```
51
57
 
52
58
  then inside your application:
@@ -52,7 +52,6 @@ module Spurious
52
52
  strategy ||= Spurious::Ruby::Awssdk::Strategy.new(true)
53
53
  strategy.apply(config(type))
54
54
  end
55
-
56
55
  end
57
56
  end
58
57
  end
@@ -2,7 +2,7 @@ module Spurious
2
2
  module Ruby
3
3
  module Awssdk
4
4
  module Helper
5
- VERSION = "0.2.4"
5
+ VERSION = "1.0.0"
6
6
  end
7
7
  end
8
8
  end
@@ -5,52 +5,52 @@ module Spurious
5
5
  module Ruby
6
6
  module Awssdk
7
7
  class Strategy
8
- attr_accessor :mapping
9
-
10
8
  def initialize(set_all = false)
11
9
  @mapping = {}
12
- if set_all then
13
- dynamo
14
- sqs
15
- s3
10
+ return unless set_all
11
+
12
+ dynamo
13
+ sqs
14
+ s3
15
+ end
16
+
17
+ def apply(config)
18
+ mapping.each do |type, mappings|
19
+ ports = config[type]
20
+ Aws.config.update("#{mappings['identifier']}_port".to_sym => ports.first["HostPort"]) if mappings["port"]
21
+ Aws.config.update("#{mappings['identifier']}_endpoint".to_sym => ports.first["Host"]) if mappings["ip"]
16
22
  end
23
+
24
+ Aws.config.update(:use_ssl => false, :s3_force_path_style => true)
17
25
  end
18
26
 
19
27
  def dynamo(port = true, ip = true)
20
- mapping['spurious-dynamo'] = {
21
- 'port' => port,
22
- 'ip' => ip,
23
- 'identifier' => 'dynamo_db'
28
+ mapping["spurious-dynamo"] = {
29
+ "port" => port,
30
+ "ip" => ip,
31
+ "identifier" => "dynamo_db"
24
32
  }
25
33
  end
26
34
 
27
- def sqs(port = true, ip = true)
28
- mapping['spurious-sqs'] = {
29
- 'port' => port,
30
- 'ip' => ip,
31
- 'identifier' => 'sqs'
35
+ def s3(port = true, ip = true)
36
+ mapping["spurious-s3"] = {
37
+ "port" => port,
38
+ "ip" => ip,
39
+ "identifier" => "s3"
32
40
  }
33
41
  end
34
42
 
35
- def s3(port = true, ip = true)
36
- mapping['spurious-s3'] = {
37
- 'port' => port,
38
- 'ip' => ip,
39
- 'identifier' => 's3'
43
+ def sqs(port = true, ip = true)
44
+ mapping["spurious-sqs"] = {
45
+ "port" => port,
46
+ "ip" => ip,
47
+ "identifier" => "sqs"
40
48
  }
41
49
  end
42
50
 
43
- def apply(config)
44
- mapping.each do |type, mappings|
45
- ports = config[type]
46
- AWS.config("#{mappings['identifier']}_port".to_sym => ports.first['HostPort']) if mappings['port']
47
- AWS.config("#{mappings['identifier']}_endpoint".to_sym => ports.first['Host']) if mappings['ip']
48
- end
49
-
50
- AWS.config(:use_ssl => false, :s3_force_path_style => true)
51
-
52
- end
51
+ private
53
52
 
53
+ attr_reader :mapping
54
54
  end
55
55
  end
56
56
  end
@@ -1,4 +1,3 @@
1
- $: << File.join(File.dirname(__FILE__), '..', 'lib')
1
+ $: << File.join(File.dirname(__FILE__), "..", "lib")
2
2
 
3
- require 'spurious/ruby/awssdk/helper'
4
- require 'spurious/ruby/awssdk/strategy'
3
+ require "pry"
@@ -1,61 +1,134 @@
1
- require 'helper'
1
+ require "helper"
2
+ require "spurious/ruby/awssdk/strategy"
2
3
 
3
4
  describe Spurious::Ruby::Awssdk::Strategy do
5
+ subject { described_class.new set_all }
4
6
 
5
- describe "#apply" do
6
- let(:config) {
7
- {
8
- 'spurious-sqs' => [
9
- {
10
- 'GuestPort' => 123,
11
- 'HostPort' => 456,
12
- 'Host' => 'foo'
13
- }
14
- ],
15
- 'spurious-s3' => [
16
- {
17
- 'GuestPort' => 789,
18
- 'HostPort' => 101,
19
- 'Host' => 'foo'
20
- }
21
- ],
22
- 'spurious-dynamo' => [
23
- {
24
- 'GuestPort' => 121,
25
- 'HostPort' => 314,
26
- 'Host' => 'foo'
27
- }
28
- ]
29
- }
7
+ before do
8
+ allow(Aws).to receive(:config).with(no_args) { mock_config }
9
+ end
10
+
11
+ let(:config) do
12
+ {
13
+ "spurious-sqs" => [
14
+ {
15
+ "GuestPort" => 123,
16
+ "HostPort" => 456,
17
+ "Host" => "foo"
18
+ }
19
+ ],
20
+ "spurious-s3" => [
21
+ {
22
+ "GuestPort" => 789,
23
+ "HostPort" => 101,
24
+ "Host" => "foo"
25
+ }
26
+ ],
27
+ "spurious-dynamo" => [
28
+ {
29
+ "GuestPort" => 121,
30
+ "HostPort" => 314,
31
+ "Host" => "foo"
32
+ }
33
+ ]
30
34
  }
35
+ end
36
+ let(:mock_config) do
37
+ instance_double(
38
+ "Hash",
39
+ :update => nil
40
+ )
41
+ end
42
+ let(:set_all) { true }
31
43
 
32
- it "applys ports from config" do
33
- subject.dynamo
34
- subject.sqs
35
- subject.s3
44
+ describe "#apply" do
45
+ context "applys ports to all services" do
46
+ specify do
47
+ expect(mock_config).to receive(:update).exactly(7).times
48
+ subject.apply config
49
+ end
50
+ end
36
51
 
37
- expect(AWS).to receive(:config).exactly(7).times
38
- subject.apply(config)
52
+ context "applys ports to 0 services" do
53
+ let(:set_all) { false }
54
+ specify do
55
+ expect(mock_config).to receive(:update).exactly(1).times
56
+ subject.apply config
57
+ end
58
+ end
39
59
 
60
+ specify do
61
+ expect(mock_config).to receive(:update).with({
62
+ :use_ssl => false,
63
+ :s3_force_path_style => true
64
+ }).once
65
+ subject.apply config
40
66
  end
67
+ end
41
68
 
42
- it "only applys a subset of the options" do
43
- subject.dynamo(true, true)
69
+ describe "#dynamo" do
70
+ let(:set_all) { false }
71
+ before { subject.dynamo(true, true) }
44
72
 
45
- expect(AWS).to receive(:config).exactly(3).times
46
- subject.apply(config)
73
+ context "sets ports just for this service" do
74
+ specify do
75
+ expect(mock_config).to receive(:update).exactly(3).times
76
+ subject.apply config
77
+ end
78
+ end
47
79
 
80
+ specify do
81
+ expect(mock_config).to receive(:update).with(:dynamo_db_port => 314).once
82
+ subject.apply config
48
83
  end
49
84
 
50
- it "only sets the port for one service" do
51
- subject.dynamo(true)
85
+ specify do
86
+ expect(mock_config).to receive(:update).with(:dynamo_db_endpoint => "foo").once
87
+ subject.apply config
88
+ end
89
+ end
52
90
 
53
- expect(AWS).to receive(:config).with(:dynamo_db_port => 314)
54
- expect(AWS).to receive(:config).with(:dynamo_db_endpoint => "foo")
55
- expect(AWS).to receive(:config).with({:use_ssl=>false, :s3_force_path_style=>true})
56
- subject.apply(config)
91
+ describe "#s3" do
92
+ let(:set_all) { false }
93
+ before { subject.s3(true, true) }
57
94
 
95
+ context "sets ports just for this service" do
96
+ specify do
97
+ expect(mock_config).to receive(:update).exactly(3).times
98
+ subject.apply config
99
+ end
58
100
  end
59
101
 
102
+ specify do
103
+ expect(mock_config).to receive(:update).with(:s3_port => 101).once
104
+ subject.apply config
105
+ end
106
+
107
+ specify do
108
+ expect(mock_config).to receive(:update).with(:s3_endpoint => "foo").once
109
+ subject.apply config
110
+ end
111
+ end
112
+
113
+ describe "#sqs" do
114
+ let(:set_all) { false }
115
+ before { subject.sqs(true, true) }
116
+
117
+ context "sets ports just for this service" do
118
+ specify do
119
+ expect(mock_config).to receive(:update).exactly(3).times
120
+ subject.apply config
121
+ end
122
+ end
123
+
124
+ specify do
125
+ expect(mock_config).to receive(:update).with(:sqs_port => 456).once
126
+ subject.apply config
127
+ end
128
+
129
+ specify do
130
+ expect(mock_config).to receive(:update).with(:sqs_endpoint => "foo").once
131
+ subject.apply config
132
+ end
60
133
  end
61
134
  end
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["stevenmajack@gmail.com"]
11
11
  spec.summary = %q{Helper gem for configuring the AWS ruby SDK with spurious details}
12
12
  spec.description = %q{Helper gem for configuring the AWS ruby SDK with spurious details}
13
- spec.homepage = ""
13
+ spec.homepage = "https://github.com/spurious-io/ruby-awssdk-helper"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
@@ -19,8 +19,9 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.6"
22
+ spec.add_development_dependency "pry"
22
23
  spec.add_development_dependency "rake"
23
24
  spec.add_development_dependency "rake-rspec", ">= 0.0.2"
24
25
 
25
- spec.add_runtime_dependency "aws-sdk", "~> 1"
26
+ spec.add_runtime_dependency "aws-sdk", "~> 2"
26
27
  end
metadata CHANGED
@@ -1,71 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spurious-ruby-awssdk-helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Jack
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-09 00:00:00.000000000 Z
11
+ date: 2016-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.6'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: pry
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rake
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - '>='
45
+ - - ">="
32
46
  - !ruby/object:Gem::Version
33
47
  version: '0'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - '>='
52
+ - - ">="
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rake-rspec
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - '>='
59
+ - - ">="
46
60
  - !ruby/object:Gem::Version
47
61
  version: 0.0.2
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - '>='
66
+ - - ">="
53
67
  - !ruby/object:Gem::Version
54
68
  version: 0.0.2
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: aws-sdk
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - ~>
73
+ - - "~>"
60
74
  - !ruby/object:Gem::Version
61
- version: '1'
75
+ version: '2'
62
76
  type: :runtime
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - ~>
80
+ - - "~>"
67
81
  - !ruby/object:Gem::Version
68
- version: '1'
82
+ version: '2'
69
83
  description: Helper gem for configuring the AWS ruby SDK with spurious details
70
84
  email:
71
85
  - stevenmajack@gmail.com
@@ -73,8 +87,8 @@ executables: []
73
87
  extensions: []
74
88
  extra_rdoc_files: []
75
89
  files:
76
- - .gitignore
77
- - .travis.yml
90
+ - ".gitignore"
91
+ - ".travis.yml"
78
92
  - Gemfile
79
93
  - LICENSE.txt
80
94
  - README.md
@@ -85,7 +99,7 @@ files:
85
99
  - spec/helper.rb
86
100
  - spec/strategy_spec.rb
87
101
  - spurious-ruby-awssdk-helper.gemspec
88
- homepage: ''
102
+ homepage: https://github.com/spurious-io/ruby-awssdk-helper
89
103
  licenses:
90
104
  - MIT
91
105
  metadata: {}
@@ -95,17 +109,17 @@ require_paths:
95
109
  - lib
96
110
  required_ruby_version: !ruby/object:Gem::Requirement
97
111
  requirements:
98
- - - '>='
112
+ - - ">="
99
113
  - !ruby/object:Gem::Version
100
114
  version: '0'
101
115
  required_rubygems_version: !ruby/object:Gem::Requirement
102
116
  requirements:
103
- - - '>='
117
+ - - ">="
104
118
  - !ruby/object:Gem::Version
105
119
  version: '0'
106
120
  requirements: []
107
121
  rubyforge_project:
108
- rubygems_version: 2.2.2
122
+ rubygems_version: 2.4.6
109
123
  signing_key:
110
124
  specification_version: 4
111
125
  summary: Helper gem for configuring the AWS ruby SDK with spurious details