em-campfire 1.1.3 → 1.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZjdkZmM3ZmQyMjJmZWJlODBlNGFiZmRkNDU1MWI1ZGQ3ZTA0NWY5OQ==
5
- data.tar.gz: !binary |-
6
- ZTA3ODQ2NjNmZDgzMDE4NTFiZjdjOWM3ZTc5NDM2MjEwOWE3ZDljOA==
2
+ SHA1:
3
+ metadata.gz: bf1a5b37a9168bc545a846cf3711eac88cab638c
4
+ data.tar.gz: 3e63b30df129cd68330ef71bf54d8e1f87610a70
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YjA4ZjU3NjBmMmJkMmIwMzAwOTdkMzgwZTQ0MThmODg5NjBjNDJhMGY2MjEz
10
- ZjEwYTkzN2ZhYWYxZDA1YzE0ZTc0MjBiMzFkNzk5OWNkM2RjM2M3NDMyYThl
11
- YzUyMGIzY2Q4ZWRhMGRmMWUyZTgxN2Y4NWJmZjE3MDQ4MDNkZmQ=
12
- data.tar.gz: !binary |-
13
- MWNhNjQ5MzdkYzBhNTNlMDJlNGU3Y2QwYzc4NjA2MjZhYzQ1M2ZlM2ViNjJi
14
- ODdjNTRhNDMxOWY0YjY1MzAwZjUwNTNiYTY5MjdhMDVkOTU3ZGE2NzBmN2Zm
15
- M2JlMDM5NDgyZjUyNDQzMWM3OTNmYjY5NGM0MjhmY2E4MzlkYzM=
6
+ metadata.gz: 9d43e8055e0ae06c7a499f7d6afbe24c9b9948f87a87943c45d86beee10001ff5c0623258929c2009b58e41efbc5270135473e77ad1799f6f4c4e7d6c97eb5fa
7
+ data.tar.gz: b0c9e65911c33c4d9a20766df5b46449088437ab6f2c948e25ef9444f4db003edb267567d04b8e5831e0d4f5953201af4481a3c30e00871c1d34c28c24c6e7d5
data/README.md CHANGED
@@ -56,7 +56,8 @@ EM.run {
56
56
  :logger => Logger::Syslog.new('process_name', Syslog::LOG_PID | Syslog::LOG_CONS),
57
57
  :cache => custom_cache_object,
58
58
  :ignore_self => true,
59
- :ignore_timestamps => true
59
+ :ignore_timestamps => true,
60
+ :user_agent => "my bot"
60
61
  )
61
62
 
62
63
  # more code
@@ -85,6 +86,10 @@ em-campfire receives messages that it posted on it's streaming connections. By d
85
86
 
86
87
  Campfire sends periodic timestamp messages. They're useless for most applications, so set this option and they will be totally ignored.
87
88
 
89
+ #### :user_agent
90
+
91
+ Sets the User-Agent header for the EventMachine::HttpRequests to Campfire. Defaults to "em-campfire".
92
+
88
93
  ## Requirements
89
94
 
90
95
  I've tested it in Ruby >= 1.9.3.
@@ -23,7 +23,7 @@ module EventMachine
23
23
  end
24
24
 
25
25
  url = "https://#{subdomain}.campfirenow.com/room/#{room_id}/speak.json"
26
- http = EventMachine::HttpRequest.new(url).post :head => {'Content-Type' => 'application/json', 'authorization' => [api_key, 'X']}, :body => Yajl::Encoder.encode({:message => {:body => payload.to_s, :type => type}})
26
+ http = EventMachine::HttpRequest.new(url).post :head => {'Content-Type' => 'application/json', 'authorization' => [api_key, 'X'], 'user-agent' => user_agent}, :body => Yajl::Encoder.encode({:message => {:body => payload.to_s, :type => type}})
27
27
  http.errback { logger.error "Couldn't connect to #{url} to post message \"#{payload}\" to room #{room_id}" }
28
28
  http.callback {
29
29
  if [200,201].include? http.response_header.status
@@ -7,7 +7,7 @@ module EventMachine
7
7
  def join(room_id, &blk)
8
8
  logger.info "Joining room #{room_id}"
9
9
  url = "https://#{subdomain}.campfirenow.com/room/#{room_id}/join.json"
10
- http = EventMachine::HttpRequest.new(url).post :head => {'Content-Type' => 'application/json', 'authorization' => [api_key, 'X']}
10
+ http = EventMachine::HttpRequest.new(url).post :head => {'Content-Type' => 'application/json', 'authorization' => [api_key, 'X'], 'user-agent' => user_agent}
11
11
  http.errback { logger.error "Error joining room: #{room_id}" }
12
12
  http.callback {
13
13
  if http.response_header.status == 200
@@ -26,7 +26,7 @@ module EventMachine
26
26
 
27
27
  url = "https://streaming.campfirenow.com/room/#{room_id}/live.json"
28
28
  # Timeout per https://github.com/igrigorik/em-http-request/wiki/Redirects-and-Timeouts
29
- http = EventMachine::HttpRequest.new(url, :connect_timeout => 20, :inactivity_timeout => 4).get :head => {'authorization' => [api_key, 'X']}
29
+ http = EventMachine::HttpRequest.new(url, :connect_timeout => 20, :inactivity_timeout => 4).get :head => {'authorization' => [api_key, 'X'], 'user-agent' => user_agent}
30
30
  http.errback {
31
31
  logger.error "Couldn't stream room #{room_id} at url #{url}, error was #{http.error}"
32
32
  EM.next_tick {stream(room_id)}
@@ -59,7 +59,7 @@ module EventMachine
59
59
  etag_header = {"ETag" => cached_room_data["etag"]}
60
60
  end
61
61
 
62
- http = EventMachine::HttpRequest.new(url).get :head => {'authorization' => [api_key, 'X'], 'Content-Type'=>'application/json'}.merge(etag_header)
62
+ http = EventMachine::HttpRequest.new(url).get :head => {'authorization' => [api_key, 'X'], 'Content-Type'=>'application/json', 'user-agent' => user_agent}.merge(etag_header)
63
63
  http.errback { logger.error "Couldn't connect to url #{url} to fetch room data" }
64
64
  http.callback {
65
65
  if http.response_header.status == 200
@@ -84,7 +84,7 @@ module EventMachine
84
84
  etag_header = {"ETag" => cached_room_list_data["etag"]}
85
85
  end
86
86
 
87
- http = EventMachine::HttpRequest.new(url).get :head => {'Content-Type' => 'application/json', 'authorization' => [api_key, 'X']}.merge(etag_header)
87
+ http = EventMachine::HttpRequest.new(url).get :head => {'Content-Type' => 'application/json', 'authorization' => [api_key, 'X'], 'user-agent' => user_agent}.merge(etag_header)
88
88
 
89
89
  http.errback { logger.error "Error processing url #{url} to fetch room data: #{http.error}" }
90
90
  http.callback {
@@ -9,7 +9,7 @@ module EventMachine
9
9
  etag_header = {"ETag" => cached_user_data["etag"]}
10
10
  end
11
11
 
12
- http = EventMachine::HttpRequest.new(url).get(:head => {'authorization' => [api_key, 'X'], "Content-Type" => "application/json"}.merge(etag_header))
12
+ http = EventMachine::HttpRequest.new(url).get(:head => {'authorization' => [api_key, 'X'], "Content-Type" => "application/json", 'user-agent' => user_agent}.merge(etag_header))
13
13
 
14
14
  http.callback do
15
15
  if http.response_header.status == 200
@@ -37,7 +37,7 @@ module EventMachine
37
37
  etag_header = {"ETag" => cached_user_data["etag"]}
38
38
  end
39
39
 
40
- http = EventMachine::HttpRequest.new(url).get(:head => {'authorization' => [api_key, 'X'], "Content-Type" => "application/json"}) #.merge(etag_header)
40
+ http = EventMachine::HttpRequest.new(url).get(:head => {'authorization' => [api_key, 'X'], "Content-Type" => "application/json", 'user-agent' => user_agent}) #.merge(etag_header)
41
41
  http.callback do
42
42
  if http.response_header.status == 200
43
43
  logger.debug "Got the user data for self"
@@ -1,5 +1,5 @@
1
1
  module EventMachine
2
2
  class Campfire
3
- VERSION = "1.1.3"
3
+ VERSION = "1.2.3"
4
4
  end
5
5
  end
data/lib/em-campfire.rb CHANGED
@@ -12,7 +12,7 @@ require "em-campfire/cache"
12
12
 
13
13
  module EventMachine
14
14
  class Campfire
15
- attr_accessor :logger, :verbose, :subdomain, :api_key, :ignore_timestamps
15
+ attr_accessor :logger, :verbose, :subdomain, :api_key, :ignore_timestamps, :user_agent
16
16
 
17
17
  include Connection
18
18
  include Rooms
@@ -61,5 +61,9 @@ module EventMachine
61
61
  def ignore_timestamps?
62
62
  self.ignore_timestamps || false
63
63
  end
64
+
65
+ def user_agent
66
+ @user_agent || "em-campfire"
67
+ end
64
68
  end # Campfire
65
69
  end # EventMachine
@@ -95,5 +95,20 @@ describe EventMachine::Campfire do
95
95
  EM.run_block { a(EM::Campfire, :ignore_timestamps => true).ignore_timestamps?.should be_true }
96
96
  end
97
97
  end
98
+
99
+ describe "#user_agent" do
100
+ before :each do
101
+ EM.run_block { @adaptor = a EM::Campfire }
102
+ end
103
+
104
+ it "should default to em-campfire" do
105
+ @adaptor.user_agent.should eql("em-campfire")
106
+ end
107
+
108
+ it "should be overridable at initialization" do
109
+ @self_data_request_stub = stub_override_user_agent_self_data_request
110
+ EM.run_block { a(EM::Campfire, :user_agent => "testing/1.0").user_agent.should eql("testing/1.0") }
111
+ end
112
+ end
98
113
  end
99
114
 
@@ -4,6 +4,6 @@ require "rooms_helper"
4
4
  def stub_message_post_request(response_code = 201)
5
5
  message_post_url = "https://#{valid_params[:subdomain]}.campfirenow.com/room/123/speak.json"
6
6
  stub_request(:post, message_post_url).
7
- with(:headers => {'Authorization'=>[valid_params[:api_key], 'X'], 'Content-Type' => 'application/json'}).
7
+ with(:headers => {'Authorization'=>[valid_params[:api_key], 'X'], 'Content-Type' => 'application/json', 'User-Agent' => valid_params[:user_agent]}).
8
8
  to_return(:status => response_code, :body => "", :headers => {})
9
- end
9
+ end
data/spec/rooms_helper.rb CHANGED
@@ -20,7 +20,7 @@ end
20
20
  def stub_join_room_request(room, response_code = 200)
21
21
  url = "https://#{valid_params[:subdomain]}.campfirenow.com/room/#{room}/join.json"
22
22
  stub_request(:post, url).
23
- with(:headers => {'Authorization'=>[valid_params[:api_key], 'X'], 'Content-Type'=>'application/json'}).
23
+ with(:headers => {'Authorization'=>[valid_params[:api_key], 'X'], 'Content-Type'=>'application/json', 'User-Agent' => valid_params[:user_agent]}).
24
24
  to_return(:status => response_code, :body => "", :headers => {})
25
25
  end
26
26
 
@@ -32,13 +32,13 @@ end
32
32
 
33
33
  def stub_stream_room_request(room_id, body, response_code = 200)
34
34
  stub_request(:get, stream_url_for_room(room_id)).
35
- with(:headers => {'Authorization'=>[valid_params[:api_key], 'X']}).
35
+ with(:headers => {'Authorization'=>[valid_params[:api_key], 'X'], 'User-Agent' => valid_params[:user_agent]}).
36
36
  to_return(:status => response_code, :body => body, :headers => {})
37
37
  end
38
38
 
39
39
  def stub_timeout_stream_room_request(room_id)
40
40
  stub_request(:get, stream_url_for_room(room_id)).
41
- with(:headers => {'Authorization'=>[valid_params[:api_key], 'X']}).
41
+ with(:headers => {'Authorization'=>[valid_params[:api_key], 'X'], 'User-Agent' => valid_params[:user_agent]}).
42
42
  to_timeout
43
43
  end
44
44
 
@@ -59,13 +59,13 @@ end
59
59
  def stub_room_data_request(room_id, response_code = 200)
60
60
  body = response_code == 200 ? Yajl::Encoder.encode(:room => valid_room_cache_data[room_id]) : ""
61
61
  stub_request(:get, room_data_url(room_id)).
62
- with(:headers => {'Authorization'=>['6124d98749365e3db2c9e5b27ca04db6', 'X'], 'Content-Type'=>'application/json'}).
62
+ with(:headers => {'Authorization'=>['6124d98749365e3db2c9e5b27ca04db6', 'X'], 'Content-Type'=>'application/json', 'User-Agent' => valid_params[:user_agent]}).
63
63
  to_return(:status => response_code, :body => body, :headers => {:ETag => etag_for_data(valid_room_cache_data[room_id])})
64
64
  end
65
65
 
66
66
  def stub_timeout_room_data_request(room_id)
67
67
  stub_request(:get, room_data_url(room_id)).
68
- with(:headers => {'Authorization'=>['6124d98749365e3db2c9e5b27ca04db6', 'X']}).
68
+ with(:headers => {'Authorization'=>['6124d98749365e3db2c9e5b27ca04db6', 'X'], 'User-Agent' => valid_params[:user_agent]}).
69
69
  to_timeout
70
70
  end
71
71
 
@@ -79,13 +79,13 @@ def stub_room_list_data_request(response_code = 200)
79
79
  body = response_code == 200 ? Yajl::Encoder.encode(room_list_data_api_response) : ""
80
80
  etag_header = response_code == 200 ? {:ETag => 'new etag'} : {:ETag => etag_for_room_list_data}
81
81
  stub_request(:get, rooms_data_url).
82
- with(:headers => {'Authorization'=>['6124d98749365e3db2c9e5b27ca04db6', 'X'], 'Content-Type'=>'application/json', 'ETag' => etag_for_room_list_data}).
82
+ with(:headers => {'Authorization'=>['6124d98749365e3db2c9e5b27ca04db6', 'X'], 'Content-Type'=>'application/json', 'User-Agent' => valid_params[:user_agent], 'ETag' => etag_for_room_list_data}).
83
83
  to_return(:status => response_code, :body => body, :headers => etag_header)
84
84
  end
85
85
 
86
86
  def stub_timeout_room_list_data_request
87
87
  stub_request(:get, rooms_data_url).
88
- with(:headers => {'Authorization'=>['6124d98749365e3db2c9e5b27ca04db6', 'X'], 'Content-Type'=>'application/json'}).
88
+ with(:headers => {'Authorization'=>['6124d98749365e3db2c9e5b27ca04db6', 'X'], 'Content-Type'=>'application/json'}, 'User-Agent' => valid_params[:user_agent]).
89
89
  to_timeout
90
90
  end
91
91
 
@@ -95,4 +95,4 @@ end
95
95
 
96
96
  def etag_for_room_list_data
97
97
  etag_for_data(room_list_data_api_response)
98
- end
98
+ end
data/spec/spec_helper.rb CHANGED
@@ -37,10 +37,11 @@ def etag_for_data(data)
37
37
  end
38
38
 
39
39
  def valid_params
40
- {:api_key => "6124d98749365e3db2c9e5b27ca04db6", :subdomain => "oxygen", :ignore_self => false}
40
+ {:api_key => "6124d98749365e3db2c9e5b27ca04db6", :subdomain => "oxygen", :ignore_self => false, :user_agent => "em-campfire"}
41
41
  end
42
42
 
43
43
  class ModuleHarness
44
44
  def subdomain; valid_params[:subdomain]; end
45
45
  def api_key; valid_params[:api_key]; end
46
+ def user_agent; valid_params[:user_agent]; end
46
47
  end
data/spec/users_helper.rb CHANGED
@@ -9,13 +9,13 @@ end
9
9
  def stub_user_data_request(user_id, response_code = 200)
10
10
  body = response_code == 200 ? Yajl::Encoder.encode(:user => valid_user_cache_data[user_id]) : ""
11
11
  stub_request(:get, "https://#{valid_params[:subdomain]}.campfirenow.com/users/#{user_id}.json").
12
- with(:headers => {'Authorization'=>['6124d98749365e3db2c9e5b27ca04db6', 'X'], 'Content-Type'=>'application/json'}).
12
+ with(:headers => {'Authorization'=>['6124d98749365e3db2c9e5b27ca04db6', 'X'], 'Content-Type'=>'application/json', 'User-Agent' => valid_params[:user_agent]}).
13
13
  to_return(:status => response_code, :body => body, :headers => {:ETag => etag_for_data(valid_user_cache_data[user_id])})
14
14
  end
15
15
 
16
16
  def stub_timeout_user_data_request(user_id)
17
17
  stub_request(:get, "https://#{valid_params[:subdomain]}.campfirenow.com/users/#{user_id}.json").
18
- with(:headers => {'Authorization'=>['6124d98749365e3db2c9e5b27ca04db6', 'X'], 'Content-Type'=>'application/json'}).
18
+ with(:headers => {'Authorization'=>['6124d98749365e3db2c9e5b27ca04db6', 'X'], 'Content-Type'=>'application/json', 'User-Agent' => valid_params[:user_agent]}).
19
19
  to_timeout
20
20
  end
21
21
 
@@ -24,12 +24,19 @@ end
24
24
  def stub_self_data_request(response_code = 200)
25
25
  body = response_code == 200 ? Yajl::Encoder.encode(:user => valid_user_cache_data['me']) : ""
26
26
  stub_request(:get, "https://#{valid_params[:subdomain]}.campfirenow.com/users/me.json").
27
- with(:headers => {'Authorization'=>['6124d98749365e3db2c9e5b27ca04db6', 'X'], 'Content-Type'=>'application/json'}).
27
+ with(:headers => {'Authorization'=>['6124d98749365e3db2c9e5b27ca04db6', 'X'], 'Content-Type'=>'application/json', 'User-Agent' => valid_params[:user_agent]}).
28
+ to_return(:status => response_code, :body => body, :headers => {:ETag => etag_for_data(valid_user_cache_data['me'])})
29
+ end
30
+
31
+ def stub_override_user_agent_self_data_request(response_code = 200)
32
+ body = response_code == 200 ? Yajl::Encoder.encode(:user => valid_user_cache_data['me']) : ""
33
+ stub_request(:get, "https://#{valid_params[:subdomain]}.campfirenow.com/users/me.json").
34
+ with(:headers => {'Authorization'=>['6124d98749365e3db2c9e5b27ca04db6', 'X'], 'Content-Type'=>'application/json', 'User-Agent' => 'testing/1.0'}).
28
35
  to_return(:status => response_code, :body => body, :headers => {:ETag => etag_for_data(valid_user_cache_data['me'])})
29
36
  end
30
37
 
31
38
  def stub_timeout_self_data_request
32
39
  stub_request(:get, "https://#{valid_params[:subdomain]}.campfirenow.com/users/me.json").
33
- with(:headers => {'Authorization'=>['6124d98749365e3db2c9e5b27ca04db6', 'X'], 'Content-Type'=>'application/json'}).
40
+ with(:headers => {'Authorization'=>['6124d98749365e3db2c9e5b27ca04db6', 'X'], 'Content-Type'=>'application/json', 'User-Agent' => valid_params[:user_agent]}).
34
41
  to_timeout
35
- end
42
+ end
metadata CHANGED
@@ -1,125 +1,125 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: em-campfire
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Will Jessop
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-19 00:00:00.000000000 Z
11
+ date: 2014-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eventmachine
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.0'
20
20
  type: :runtime
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.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: yajl-ruby
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: em-http-request
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '2.11'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '2.11'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: mocha
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ~>
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0.12'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ~>
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0.12'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: webmock
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: 1.8.10
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: 1.8.10
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: simplecov
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ! '>='
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ! '>='
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  description: Eventmachine campfire API lib
@@ -129,7 +129,7 @@ executables: []
129
129
  extensions: []
130
130
  extra_rdoc_files: []
131
131
  files:
132
- - .gitignore
132
+ - ".gitignore"
133
133
  - CONTRIBUTING.md
134
134
  - Gemfile
135
135
  - LICENSE.md
@@ -163,12 +163,12 @@ require_paths:
163
163
  - lib
164
164
  required_ruby_version: !ruby/object:Gem::Requirement
165
165
  requirements:
166
- - - ! '>='
166
+ - - ">="
167
167
  - !ruby/object:Gem::Version
168
168
  version: '0'
169
169
  required_rubygems_version: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - ! '>='
171
+ - - ">="
172
172
  - !ruby/object:Gem::Version
173
173
  version: '0'
174
174
  requirements: []