fake_sns 0.0.5 → 0.1.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: f7ee25d3164e85ff5a4fcf4ad5002293fc61137f
4
- data.tar.gz: 28a8dc1d79018fb669e4a935f5079ef8a5e1b7b6
3
+ metadata.gz: ffde4a95debaff16dc02f2c053f8be69b021c9a7
4
+ data.tar.gz: 36d70df4346c8dbeacc361bc7e6dc06f951893e4
5
5
  SHA512:
6
- metadata.gz: 0481806ac3b03bc6b88d4a52998202c44152c27e2b1e1bbedda12c0a185d43ea343c2c445465445699bfd89d5536a01e36169c94a999ffb705dfc1e2d20855d3
7
- data.tar.gz: eee801999500fc8576f124a9a984e1fe029a86e47d96d4bfcc85aceba3b57026386f89fd37eede10591ac5e124542bf8ef68672b02f99295c85c9e45327196da
6
+ metadata.gz: 953fe54060d0729600f835530c839c4a1b01351c44786b11492aa7880e1f474a0d66157ccd0f916539889df7e74cf547bbd05418d8136d46c171b6c3e46ce865
7
+ data.tar.gz: 89858490229ba262f4803cb9a6e63c04de9c854f5f6b4d93a4f106e2a8b1de8568906ff550b4b615f18b34d707c1c5c11c8dbc5e4998ae4c3cdd227072dda5cb
@@ -21,13 +21,13 @@ Gem::Specification.new do |spec|
21
21
  spec.add_dependency "virtus", "~> 1.0"
22
22
  spec.add_dependency "verbose_hash_fetch"
23
23
  spec.add_dependency "faraday", "~> 0.8"
24
- spec.add_dependency 'aws-sdk', '~> 1.30'
24
+ spec.add_dependency 'aws-sdk', '~> 2.0'
25
25
 
26
26
  spec.add_development_dependency "bundler"
27
27
  spec.add_development_dependency "rake"
28
28
  spec.add_development_dependency "rspec"
29
29
  spec.add_development_dependency "pry"
30
- spec.add_development_dependency "fake_sqs", "~> 0.0.9"
30
+ spec.add_development_dependency "fake_sqs", "~> 0.2"
31
31
  spec.add_development_dependency "json_expressions"
32
32
 
33
33
  end
@@ -34,9 +34,14 @@ module FakeSNS
34
34
 
35
35
  def sqs
36
36
  queue_name = endpoint.split(":").last
37
- sqs = AWS::SQS.new(config["aws_config"] || {})
38
- queue = sqs.queues.named(queue_name)
39
- queue.send_message(message_contents)
37
+ sqs = Aws::SQS::Client.new(
38
+ region: config.fetch("region"),
39
+ credentials: Aws::Credentials.new(config.fetch("access_key_id"), config.fetch("secret_access_key")),
40
+ ).tap { |client|
41
+ client.config.endpoint = URI(config.fetch("sqs_endpoint"))
42
+ }
43
+ queue_url = sqs.get_queue_url(queue_name: queue_name).queue_url
44
+ sqs.send_message(queue_url: queue_url, message_body: message_contents)
40
45
  end
41
46
 
42
47
  def http
@@ -8,6 +8,8 @@ module FakeSNS
8
8
  json = Class.new(Virtus::Attribute) do
9
9
  def coerce(value)
10
10
  value.is_a?(::Hash) ? value : JSON.parse(value)
11
+ rescue
12
+ value
11
13
  end
12
14
  end
13
15
 
@@ -51,17 +51,23 @@ module FakeSNS
51
51
  end
52
52
 
53
53
  post "/drain" do
54
- database.transaction do
55
- config = JSON.parse(request.body.read)
56
- database.each_deliverable_message do |subscription, message|
57
- DeliverMessage.call(subscription: subscription, message: message, request: request, config: config)
54
+ config = JSON.parse(request.body.read.to_s)
55
+ begin
56
+ database.transaction do
57
+ database.each_deliverable_message do |subscription, message|
58
+ DeliverMessage.call(subscription: subscription, message: message, request: request, config: config)
59
+ end
58
60
  end
61
+ rescue => e
62
+ status 500
63
+ "#{e.class}: #{e}\n\n#{e.backtrace.join("\n")}"
64
+ else
65
+ 200
59
66
  end
60
- 200
61
67
  end
62
68
 
63
69
  post "/drain/:message_id" do |message_id|
64
- config = JSON.parse(request.body.read)
70
+ config = JSON.parse(request.body.read.to_s)
65
71
  database.transaction do
66
72
  database.each_deliverable_message do |subscription, message|
67
73
  if message.id == message_id
@@ -1,3 +1,4 @@
1
+ require "yaml"
1
2
  require "faraday"
2
3
  require "timeout"
3
4
 
@@ -62,7 +63,11 @@ module FakeSNS
62
63
 
63
64
  def drain(message_id = nil, options = {})
64
65
  path = message_id ? "/drain/#{message_id}" : "/drain"
65
- default = { aws_config: AWS.config.send(:supplied) }
66
+ default = {
67
+ region: Aws.config[:region],
68
+ access_key_id: Aws.config[:credentials].access_key_id,
69
+ secret_access_key: Aws.config[:credentials].secret_access_key,
70
+ }
66
71
  body = default.merge(options).to_json
67
72
  result = connection.post(path, body)
68
73
  if result.success?
@@ -83,7 +88,7 @@ module FakeSNS
83
88
  end
84
89
 
85
90
  def option(key)
86
- options.fetch(key) { AWS.config.public_send(key) }
91
+ options.fetch(key)
87
92
  end
88
93
 
89
94
 
@@ -17,7 +17,6 @@ module FakeSNS
17
17
  end
18
18
 
19
19
  def each(*args, &block)
20
- p @store.to_yaml
21
20
  collection.map { |item| Topic.new(item) }.each(*args, &block)
22
21
  end
23
22
 
@@ -1,3 +1,3 @@
1
1
  module FakeSNS
2
- VERSION = "0.0.5"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -4,26 +4,35 @@ require 'json_expressions/rspec'
4
4
  RSpec.describe "Drain messages", :sqs do
5
5
 
6
6
  it "works for SQS" do
7
- topic = sns.topics.create("my-topic")
8
- queue = sqs.queues.create("my-queue")
9
- topic.subscribe(queue)
7
+ queue_url = sqs.create_queue(queue_name: "my-queue").queue_url
8
+ queue_arn = sqs.get_queue_attributes(queue_url: queue_url, attribute_names: ["QueueArn"]).attributes.fetch("QueueArn")
9
+ topic_arn = sns.create_topic(name: "my-topic").topic_arn
10
10
 
11
- topic.publish("X")
11
+ _subscription_arn = sns.subscribe(topic_arn: topic_arn, protocol: "sqs", endpoint: queue_arn).subscription_arn
12
12
 
13
- $fake_sns.drain
14
- expect(queue.visible_messages).to eq 1
13
+ sns.publish(topic_arn: topic_arn, message: { sqs: "hallo" }.to_json)
14
+
15
+ $fake_sns.drain(nil, sqs_endpoint: sqs.config.endpoint.to_s)
16
+
17
+ attributes = sqs.get_queue_attributes(queue_url: queue_url, attribute_names: ["ApproximateNumberOfMessages"]).attributes
18
+ expect(attributes.fetch("ApproximateNumberOfMessages")).to eq "1"
15
19
  end
16
20
 
17
21
  it "works for SQS with a single message" do
18
- topic = sns.topics.create("my-topic")
19
- queue = sqs.queues.create("my-queue")
20
- topic.subscribe(queue)
21
22
 
22
- message_id = topic.publish("X")
23
- topic.publish("Y")
23
+ queue_url = sqs.create_queue(queue_name: "my-queue").queue_url
24
+ queue_arn = sqs.get_queue_attributes(queue_url: queue_url, attribute_names: ["QueueArn"]).attributes.fetch("QueueArn")
25
+ topic_arn = sns.create_topic(name: "my-topic").topic_arn
26
+
27
+ _subscription_arn = sns.subscribe(topic_arn: topic_arn, protocol: "sqs", endpoint: queue_arn).subscription_arn
24
28
 
25
- $fake_sns.drain(message_id)
26
- expect(queue.visible_messages).to eq 1
29
+ message_id = sns.publish(topic_arn: topic_arn, message: { sqs: "hallo" }.to_json).message_id
30
+ sns.publish(topic_arn: topic_arn, message: { sqs: "world" }.to_json)
31
+
32
+ $fake_sns.drain(message_id, sqs_endpoint: sqs.config.endpoint.to_s)
33
+
34
+ attributes = sqs.get_queue_attributes(queue_url: queue_url, attribute_names: ["ApproximateNumberOfMessages"]).attributes
35
+ expect(attributes.fetch("ApproximateNumberOfMessages")).to eq "1"
27
36
  end
28
37
 
29
38
  it "works for HTTP" do
@@ -43,28 +52,29 @@ RSpec.describe "Drain messages", :sqs do
43
52
  target_app.run!
44
53
  end
45
54
 
46
- topic = sns.topics.create("my-topic")
47
- subscription = topic.subscribe("http://localhost:5051/endpoint")
55
+ topic_arn = sns.create_topic(name: "my-topic").topic_arn
56
+
57
+ subscription_arn = sns.subscribe(topic_arn: topic_arn, protocol: "http", endpoint: "http://localhost:5051/endpoint").subscription_arn
48
58
 
49
- message_id = topic.publish("X")
59
+ message_id = sns.publish(topic_arn: topic_arn, message: { default: "hallo" }.to_json).message_id
50
60
 
51
61
  wait_for { Faraday.new("http://localhost:5051").get("/").success? rescue false }
52
62
 
53
- $fake_sns.drain
63
+ $fake_sns.drain(nil, sqs_endpoint: sqs.config.endpoint.to_s)
54
64
 
55
65
  app_runner.kill
56
66
 
57
67
  expect(requests.size).to eq 1
58
68
  expect(requests.first).to match_json_expression(
59
69
  "Type" => "Notification",
60
- "Message" => "X",
70
+ "Message" => "hallo",
61
71
  "MessageId" => message_id,
62
72
  "Signature" => "Fake",
63
73
  "SignatureVersion" => "1",
64
74
  "SigningCertURL" => "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem",
65
75
  "Subject" => nil,
66
76
  "Timestamp" => anything,
67
- "TopicArn" => topic.arn,
77
+ "TopicArn" => topic_arn,
68
78
  "Type" => "Notification",
69
79
  "UnsubscribeURL" => "",
70
80
  )
@@ -73,8 +83,8 @@ RSpec.describe "Drain messages", :sqs do
73
83
  expect(_headers.first).to match_json_expression({
74
84
  "HTTP_X_AMZ_SNS_MESSAGE_TYPE" => "Notification",
75
85
  "HTTP_X_AMZ_SNS_MESSAGE_ID" => message_id,
76
- "HTTP_X_AMZ_SNS_TOPIC_ARN" => topic.arn,
77
- "HTTP_X_AMZ_SNS_SUBSCRIPTION_ARN" => subscription.arn,
86
+ "HTTP_X_AMZ_SNS_TOPIC_ARN" => topic_arn,
87
+ "HTTP_X_AMZ_SNS_SUBSCRIPTION_ARN" => subscription_arn,
78
88
  }.ignore_extra_keys!)
79
89
 
80
90
  end
@@ -1,9 +1,9 @@
1
1
  RSpec.describe "Publishing" do
2
2
 
3
- let(:existing_topic) { sns.topics.create("my-topic") }
3
+ let(:existing_topic) { sns.create_topic(name: "my-topic").topic_arn }
4
4
 
5
5
  it "remembers published messages" do
6
- message_id = existing_topic.publish("hallo")
6
+ message_id = sns.publish(topic_arn: existing_topic, message: "hallo").message_id
7
7
  messages = $fake_sns.data.fetch("messages")
8
8
  expect(messages.size).to eq 1
9
9
  message = messages.first
@@ -11,16 +11,16 @@ RSpec.describe "Publishing" do
11
11
  end
12
12
 
13
13
  it "needs an existing topic" do
14
- topic = sns.topics["arn:aws:sns:us-east-1:5068edfd0f7ee3ea9ccc1e73cbb17569:not-exist"]
14
+ non_existing = "arn:aws:sns:us-east-1:5068edfd0f7ee3ea9ccc1e73cbb17569:not-exist"
15
15
  expect {
16
- topic.publish("hallo")
17
- }.to raise_error AWS::SNS::Errors::InvalidParameterValue
16
+ sns.publish(topic_arn: non_existing, message: "hallo")
17
+ }.to raise_error Aws::SNS::Errors::InvalidParameterValue
18
18
  end
19
19
 
20
20
  it "doesn't allow messages that are too big" do
21
21
  expect {
22
- existing_topic.publish("A" * 262145)
23
- }.to raise_error AWS::SNS::Errors::InvalidParameterValue
22
+ sns.publish(topic_arn: existing_topic, message: "A" * 262145)
23
+ }.to raise_error Aws::SNS::Errors::InvalidParameterValue
24
24
  end
25
25
 
26
26
  end
@@ -1,12 +1,12 @@
1
1
  RSpec.describe "Replacing the data" do
2
2
 
3
3
  it "works by submitting new YAML" do
4
- topic = sns.topics.create("my-topic")
4
+ topic_arn = sns.create_topic(name: "my-topic").topic_arn
5
5
  previous_data = $fake_sns.data.to_yaml
6
6
  apply_change = lambda { |data| data.gsub("my-topic", "your-topic") }
7
7
  new_data = apply_change.call(previous_data)
8
8
  $fake_sns.connection.put("/", new_data)
9
- expect(sns.topics.map(&:arn)).to eq [apply_change.call(topic.arn)]
9
+ expect(sns.list_topics.topics.map(&:topic_arn)).to eq [apply_change.call(topic_arn)]
10
10
  end
11
11
 
12
12
  end
@@ -1,42 +1,49 @@
1
1
  RSpec.describe "Subscribing", :sqs do
2
2
 
3
3
  it "lists subscriptions globally" do
4
- topic = sns.topics.create("my-topic")
5
- subscription = topic.subscribe("http://example.com")
6
- expect(sns.subscriptions.map(&:topic_arn)).to eq [topic.arn]
7
- expect(sns.subscriptions.map(&:arn)).to eq [subscription.arn]
4
+ topic_arn = sns.create_topic(name: "my-topic").topic_arn
5
+ subscription_arn = sns.subscribe(topic_arn: topic_arn, protocol: "http", endpoint: "http://example.com").subscription_arn
8
6
 
9
- subscription.raw_message_delivery = true
7
+ subscriptions = sns.list_subscriptions.subscriptions
8
+ expect(subscriptions.map(&:topic_arn)).to eq [topic_arn]
9
+ expect(subscriptions.map(&:subscription_arn)).to eq [subscription_arn]
10
10
  end
11
11
 
12
12
  it "filters by topic" do
13
- topic = sns.topics.create("my-topic")
14
- other_topic = sns.topics.create("my-topic-2")
15
- subscription = topic.subscribe("http://example.com")
16
- expect(topic.subscriptions.map(&:topic_arn)).to eq [topic.arn]
17
- expect(topic.subscriptions.map(&:arn)).to eq [subscription.arn]
18
- expect(other_topic.subscriptions.map(&:arn)).to eq []
13
+ topic_arn = sns.create_topic(name: "my-topic").topic_arn
14
+ _other_topic_arn = sns.create_topic(name: "my-topic-2").topic_arn
15
+
16
+ subscription_arn = sns.subscribe(topic_arn: topic_arn, protocol: "http", endpoint: "http://example.com").subscription_arn
17
+ subscriptions = sns.list_subscriptions.subscriptions
18
+ expect(subscriptions.map(&:topic_arn)).to eq [topic_arn]
19
+ expect(subscriptions.map(&:subscription_arn)).to eq [subscription_arn]
19
20
  end
20
21
 
21
22
  it "needs an existing topic" do
22
- topic = sns.topics["arn:aws:sns:us-east-1:5068edfd0f7ee3ea9ccc1e73cbb17569:not-exist"]
23
+ topic_arn = "arn:aws:sns:us-east-1:5068edfd0f7ee3ea9ccc1e73cbb17569:not-exist"
23
24
  expect {
24
- topic.subscribe("http://example.com")
25
- }.to raise_error AWS::SNS::Errors::InvalidParameterValue
25
+ sns.subscribe(topic_arn: topic_arn, protocol: "http", endpoint: "http://example.com")
26
+ }.to raise_error Aws::SNS::Errors::InvalidParameterValue
26
27
  end
27
28
 
28
29
  it "can subscribe to a SQS queue" do
29
- queue = AWS::SQS.new.queues.create("my-queue")
30
- topic = sns.topics.create("my-topic")
31
- topic.subscribe(queue)
30
+ queue_url = sqs.create_queue(queue_name: "my-queue").queue_url
31
+ queue_arn = sqs.get_queue_attributes(queue_url: queue_url, attribute_names: ["QueueArn"]).attributes.fetch("QueueArn")
32
+ topic_arn = sns.create_topic(name: "my-topic").topic_arn
33
+ sns.subscribe(topic_arn: topic_arn, protocol: "sqs", endpoint: queue_arn)
32
34
  end
33
35
 
34
36
  it "won't subscribe twice to the same endpoint" do
35
- queue = AWS::SQS.new.queues.create("my-queue")
36
- topic = sns.topics.create("my-topic")
37
- topic.subscribe(queue)
38
- topic.subscribe(queue)
39
- expect(sns.subscriptions.to_a.size).to eq 1
37
+ queue_url = sqs.create_queue(queue_name: "my-queue").queue_url
38
+ queue_arn = sqs.get_queue_attributes(queue_url: queue_url, attribute_names: ["QueueArn"]).attributes.fetch("QueueArn")
39
+ topic_arn = sns.create_topic(name: "my-topic").topic_arn
40
+
41
+ 2.times do
42
+ sns.subscribe(topic_arn: topic_arn, protocol: "sqs", endpoint: queue_arn)
43
+ end
44
+
45
+ subscriptions = sns.list_subscriptions.subscriptions
46
+ expect(subscriptions.size).to eq 1
40
47
  end
41
48
 
42
49
  end
@@ -2,41 +2,41 @@ RSpec.describe "Topics" do
2
2
 
3
3
  it "rejects invalid characters in topic names" do
4
4
  expect {
5
- sns.topics.create("dot.dot")
6
- }.to raise_error(AWS::SNS::Errors::InvalidParameterValue)
5
+ sns.create_topic(name: "dot.dot")
6
+ }.to raise_error(Aws::SNS::Errors::InvalidParameterValue)
7
7
  end
8
8
 
9
9
  it "creates a new topic" do
10
- topic = sns.topics.create("my-topic")
11
- expect(topic.arn).to match(/arn:aws:sns:us-east-1:(\w+):my-topic/)
10
+ topic_arn = sns.create_topic(name: "my-topic").topic_arn
11
+ expect(topic_arn).to match(/arn:aws:sns:us-east-1:(\w+):my-topic/)
12
12
 
13
- new_topic = sns.topics.create("other-topic")
14
- expect(new_topic.arn).not_to eq topic.arn
13
+ new_topic_arn = sns.create_topic(name: "other-topic").topic_arn
14
+ expect(new_topic_arn).not_to eq topic_arn
15
15
 
16
- existing_topic = sns.topics.create("my-topic")
17
- expect(existing_topic.arn).to eq topic.arn
16
+ existing_topic_arn = sns.create_topic(name: "my-topic").topic_arn
17
+ expect(existing_topic_arn).to eq topic_arn
18
18
  end
19
19
 
20
20
  it "lists topics" do
21
- topic1 = sns.topics.create("my-topic-1")
22
- topic2 = sns.topics.create("my-topic-2")
21
+ topic1_arn = sns.create_topic(name: "my-topic-1").topic_arn
22
+ topic2_arn = sns.create_topic(name: "my-topic-2").topic_arn
23
23
 
24
- expect(sns.topics.map(&:arn)).to match_array [topic1.arn, topic2.arn]
24
+ expect(sns.list_topics.topics.map(&:topic_arn)).to match_array [topic1_arn, topic2_arn]
25
25
  end
26
26
 
27
27
  it "deletes topics" do
28
- topic = sns.topics.create("my-topic")
29
- expect(sns.topics.map(&:arn)).to eq [topic.arn]
30
- sns.topics[topic.arn].delete
31
- expect(sns.topics.map(&:arn)).to eq []
28
+ topic_arn = sns.create_topic(name: "my-topic").topic_arn
29
+ expect(sns.list_topics.topics.map(&:topic_arn)).to eq [topic_arn]
30
+ sns.delete_topic(topic_arn: topic_arn)
31
+ expect(sns.list_topics.topics.map(&:topic_arn)).to eq []
32
32
  end
33
33
 
34
34
  it "can set and read attributes" do
35
- topic = sns.topics.create("my-topic")
36
- expect(topic.display_name).to eq "my-topic"
37
- topic.display_name = "the display name"
38
- expect(topic.display_name).to eq "the display name"
39
- expect(topic.name).to eq "my-topic"
35
+ topic_arn = sns.create_topic(name: "my-topic").topic_arn
36
+ expect(sns.get_topic_attributes(topic_arn: topic_arn).attributes["DisplayName"]).to eq nil
37
+
38
+ sns.set_topic_attributes(topic_arn: topic_arn, attribute_name: "DisplayName", attribute_value: "the display name")
39
+ expect(sns.get_topic_attributes(topic_arn: topic_arn).attributes["DisplayName"]).to eq "the display name"
40
40
  end
41
41
 
42
42
  end
@@ -10,30 +10,47 @@ require "fake_sns/test_integration"
10
10
  require "fake_sqs/test_integration"
11
11
 
12
12
 
13
- AWS.config(
14
- use_ssl: false,
15
- sqs_endpoint: "localhost",
16
- sqs_port: 4568,
17
- sns_endpoint: "localhost",
18
- sns_port: 9293,
19
- access_key_id: "fake access key",
20
- secret_access_key: "fake secret key",
13
+ Aws.config.update(
14
+ region: "us-east-1",
15
+ credentials: Aws::Credentials.new("fake", "fake"),
21
16
  )
17
+ # Aws.config(
18
+ # use_ssl: false,
19
+ # sqs_endpoint: "localhost",
20
+ # sqs_port: 4568,
21
+ # sns_endpoint: "localhost",
22
+ # sns_port: 9293,
23
+ # access_key_id: "fake access key",
24
+ # secret_access_key: "fake secret key",
25
+ # )
22
26
 
23
27
  db = ENV["SNS_DATABASE"]
24
28
  db = ":memory:" if ENV["SNS_DATABASE"].to_s == ""
25
29
 
26
30
  puts "Running tests with database stored in #{db}"
27
31
 
28
- $fake_sns = FakeSNS::TestIntegration.new(database: db)
29
- $fake_sqs = FakeSQS::TestIntegration.new(database: ":memory:")
32
+ $fake_sns = FakeSNS::TestIntegration.new(
33
+ database: db,
34
+ sns_endpoint: "localhost",
35
+ sns_port: 9293,
36
+ )
37
+
38
+ $fake_sqs = FakeSQS::TestIntegration.new(
39
+ database: ":memory:",
40
+ sqs_endpoint: "localhost",
41
+ sqs_port: 4568,
42
+ )
30
43
 
31
44
  module SpecHelper
32
45
  def sns
33
- AWS::SNS.new
46
+ Aws::SNS::Client.new.tap { |client|
47
+ client.config.endpoint = URI("http://localhost:9293")
48
+ }
34
49
  end
35
50
  def sqs
36
- AWS::SQS.new
51
+ Aws::SQS::Client.new.tap { |client|
52
+ client.config.endpoint = URI("http://localhost:4568")
53
+ }
37
54
  end
38
55
  end
39
56
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fake_sns
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - iain
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-24 00:00:00.000000000 Z
11
+ date: 2015-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sinatra
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.30'
75
+ version: '2.0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.30'
82
+ version: '2.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: bundler
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 0.0.9
145
+ version: '0.2'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 0.0.9
152
+ version: '0.2'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: json_expressions
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -246,7 +246,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
246
246
  version: '0'
247
247
  requirements: []
248
248
  rubyforge_project:
249
- rubygems_version: 2.2.2
249
+ rubygems_version: 2.4.5
250
250
  signing_key:
251
251
  specification_version: 4
252
252
  summary: Small Fake version of SNS