statuspageio 0.1.5 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c94e53b439a9509a7bb2d66d4935f6d7fc4264155ef471de82cb36660a226715
4
- data.tar.gz: 39b2b3672117b309391f9cb1cb3bc6d4edb4a4836f288ab7b527572014967b69
3
+ metadata.gz: f43cbc28350fdc2b5afccd05f3d1e2019afd66628194aebee9be946f8fdca91f
4
+ data.tar.gz: '095dd6153b9dab01037d0158b1baeb7e52dfb71d8b3d040d1284d8ad42ad2536'
5
5
  SHA512:
6
- metadata.gz: 0fa4e7c17f275c7d40e7064109b662534fc3460450d2e351b1154cdd1254dce9ec54c8a42395031211c46aafa109e7de9652e3ed484c293d3373ab2ff60be26f
7
- data.tar.gz: 0dc970cf730beabc42b60455850ceec989b2a1d1d47eeac9411b4b84d751f6892ae71e69d442ad3e81092ff17056dcd8d78511b509e0df4d2b44635af714b535
6
+ metadata.gz: 4ac50e89b3f18e9ba6eb5715889fb5320057f1496811509b8942fa15b568f3dfa24e1b931a29b73ecd52de0df3dd150593e879906d0fb556505bb378091a4d11
7
+ data.tar.gz: d992c244e59e3f4eed5e086e4fbe4ff59d2e7b0687654b431283d134d558fa9de010848df6f6b07940e36ab0c172ce90f624f917e685250cb4cbea8c785c14a1
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --require spec_helper
data/.travis.yml ADDED
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.7
data/Gemfile.lock CHANGED
@@ -1,24 +1,76 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- statuspageio (0.1.0)
5
- httparty (~> 0.15.6)
4
+ statuspageio (0.2.0)
5
+ httparty (~> 0.17)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- httparty (0.15.6)
10
+ addressable (2.8.1)
11
+ public_suffix (>= 2.0.2, < 6.0)
12
+ ast (2.4.2)
13
+ crack (0.4.5)
14
+ rexml
15
+ diff-lcs (1.4.4)
16
+ hashdiff (1.0.1)
17
+ httparty (0.18.1)
18
+ mime-types (~> 3.0)
11
19
  multi_xml (>= 0.5.2)
20
+ mime-types (3.3.1)
21
+ mime-types-data (~> 3.2015)
22
+ mime-types-data (3.2021.0901)
12
23
  multi_xml (0.6.0)
13
- rake (10.5.0)
24
+ parallel (1.20.1)
25
+ parser (3.0.1.1)
26
+ ast (~> 2.4.1)
27
+ public_suffix (5.0.0)
28
+ rainbow (3.0.0)
29
+ rake (12.3.3)
30
+ regexp_parser (2.1.1)
31
+ rexml (3.2.5)
32
+ rspec (3.10.0)
33
+ rspec-core (~> 3.10.0)
34
+ rspec-expectations (~> 3.10.0)
35
+ rspec-mocks (~> 3.10.0)
36
+ rspec-core (3.10.1)
37
+ rspec-support (~> 3.10.0)
38
+ rspec-expectations (3.10.1)
39
+ diff-lcs (>= 1.2.0, < 2.0)
40
+ rspec-support (~> 3.10.0)
41
+ rspec-mocks (3.10.2)
42
+ diff-lcs (>= 1.2.0, < 2.0)
43
+ rspec-support (~> 3.10.0)
44
+ rspec-support (3.10.2)
45
+ rubocop (1.18.2)
46
+ parallel (~> 1.10)
47
+ parser (>= 3.0.0.0)
48
+ rainbow (>= 2.2.2, < 4.0)
49
+ regexp_parser (>= 1.8, < 3.0)
50
+ rexml
51
+ rubocop-ast (>= 1.7.0, < 2.0)
52
+ ruby-progressbar (~> 1.7)
53
+ unicode-display_width (>= 1.4.0, < 3.0)
54
+ rubocop-ast (1.7.0)
55
+ parser (>= 3.0.1.1)
56
+ ruby-progressbar (1.11.0)
57
+ unicode-display_width (2.0.0)
58
+ webmock (3.13.0)
59
+ addressable (>= 2.3.6)
60
+ crack (>= 0.3.2)
61
+ hashdiff (>= 0.4.0, < 2.0.0)
14
62
 
15
63
  PLATFORMS
16
64
  ruby
65
+ x86_64-darwin-19
17
66
 
18
67
  DEPENDENCIES
19
- bundler (~> 1.16)
20
- rake (~> 10.0)
68
+ bundler (~> 2.1, >= 2.1.0)
69
+ rake (~> 12.3, >= 12.3.3)
70
+ rspec (~> 3.10.0)
71
+ rubocop (~> 1.18)
21
72
  statuspageio!
73
+ webmock (~> 3.13.0)
22
74
 
23
75
  BUNDLED WITH
24
- 1.16.0
76
+ 2.2.17
data/README.md CHANGED
@@ -1,3 +1,6 @@
1
+ [![Build Status](https://travis-ci.com/dasnixon/statuspageio.svg?branch=master)](https://travis-ci.com/dasnixon/statuspageio)
2
+ [![Maintainability](https://api.codeclimate.com/v1/badges/bc9c8c9d3bcad2438f10/maintainability)](https://codeclimate.com/github/dasnixon/statuspageio/maintainability)
3
+
1
4
  # Statuspageio
2
5
 
3
6
  Ruby gem for the [Statuspage REST API](https://developer.statuspage.io).
@@ -20,14 +23,70 @@ Or install it yourself as:
20
23
 
21
24
  ## Usage
22
25
 
23
- ##### In plain Ruby
26
+ #### Initializing a client
24
27
 
25
28
  ```ruby
26
29
  client = Statuspageio::Client.new(api_key: '<your_api_key>', page_id: '<your_page_id>')
27
- client.incidents(:all) # get a list of all your incidents
30
+
31
+ client.incidents
32
+ ```
33
+
34
+ #### Incidents
35
+
36
+ ```ruby
37
+ # get a list of all your incidents
38
+ client.incidents
39
+
40
+ # get incidents scoped by their status
41
+ client.incidents(:active_maintenance)
42
+ client.incidents(:scheduled)
43
+ client.incidents(:unresolved)
44
+ client.incidents(:upcoming)
45
+
46
+ # pagination support
47
+ client.incidents(limit: 20, page: 2)
48
+
49
+ # query support
50
+ client.incidents(query: 'AWS is down')
51
+
52
+ # fetch an incident
53
+ client.incident(<incident_id>)
54
+
55
+ # create an incident (see https://developer.statuspage.io for payload options)
56
+ client.create_incident(<incident payload>)
57
+
58
+ # update an incident
59
+ client.update_incident(<incident_id>, payload)
60
+
61
+ # delete an incident
62
+ client.delete_incident(<incident_id>)
63
+
64
+ ```
65
+
66
+ #### Subscribers
67
+
68
+ ```ruby
69
+ # get a list of all your subscribers
70
+ client.subscribers
71
+
72
+ # get a list of all your subscribers per incident
73
+ client.subscribers(incident_id: <incident_id>)
74
+
75
+ # query support
76
+ client.subscribers(query: 'Albert Einstein')
77
+
78
+ # create a subscriber (see https://developer.statuspage.io for payload options)
79
+ client.create_subscriber(<subscriber payload>)
80
+
81
+ # delete a subscriber
82
+ client.delete_subscriber(<subscriber_id>)
83
+
84
+ # delete a subscriber for an incident
85
+ client.delete_subscriber(<subscriber_id>, incident_id: <incident_id>)
86
+
28
87
  ```
29
88
 
30
- ##### In Rails you can configure using an initializer
89
+ #### In Rails you can configure using an initializer
31
90
 
32
91
  `config/intializers/statuspage.rb`
33
92
 
@@ -46,7 +105,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
46
105
 
47
106
  ## Contributing
48
107
 
49
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/statuspageio.
108
+ Bug reports and pull requests are welcome on GitHub at https://github.com/dasnixon/statuspageio.
50
109
 
51
110
  ## License
52
111
 
@@ -1,22 +1,85 @@
1
+ # frozen_string_literal: true
2
+
3
+ # https://developer.statuspage.io/#tag/incidents
1
4
  module Statuspageio
2
5
  class Client
3
6
  module Incident
4
- def incidents(scope = :all)
5
- case scope
6
- when :all
7
- get("/pages/#{self.page_id}/incidents")
8
- when :unresolved
9
- get("/pages/#{self.page_id}/incidents/unresolved")
10
- when :scheduled
11
- get("/pages/#{self.page_id}/incidents/scheduled")
12
- else
13
- get("/pages/#{self.page_id}/incidents")
14
- end
7
+ extend Gem::Deprecate
8
+
9
+ INCIDENT_TYPES = %w[
10
+ active_maintenance
11
+ scheduled
12
+ unresolved
13
+ upcoming
14
+ ].freeze
15
+
16
+ VALID_INCIDENT_OPTIONS = %i[
17
+ auto_transition_deliver_notifications_at_end
18
+ auto_transition_deliver_notifications_at_start
19
+ auto_transition_to_maintenance_state
20
+ auto_transition_to_operational_state
21
+ auto_tweet_at_beginning
22
+ auto_tweet_on_completion
23
+ auto_tweet_on_creation
24
+ auto_tweet_one_hour_before
25
+ backfill_date
26
+ backfilled
27
+ body
28
+ components
29
+ component_ids
30
+ deliver_notifications
31
+ impact_override
32
+ metadata
33
+ name
34
+ status
35
+ scheduled_auto_completed
36
+ scheduled_auto_transition
37
+ scheduled_auto_in_progress
38
+ scheduled_for
39
+ scheduled_remind_prior
40
+ scheduled_until
41
+ ].freeze
42
+
43
+ def incidents(scope = :all, limit: 100, page: 1, query: nil)
44
+ query_opts = { limit: limit, page: page, query: query }.compact
45
+
46
+ return get("/pages/#{page_id}/incidents/#{scope}", query_opts) if INCIDENT_TYPES.include?(scope&.to_s)
47
+
48
+ get("/pages/#{page_id}/incidents", query_opts)
15
49
  end
16
50
 
17
- def search_incidents(q)
18
- return incidents if q.nil? || q.empty?
19
- get("/pages/#{self.page_id}/incidents", { q: q })
51
+ def incident(incident_id)
52
+ get("/pages/#{page_id}/incidents/#{incident_id}")
53
+ end
54
+
55
+ def search_incidents(query)
56
+ incidents(query: query)
57
+ end
58
+
59
+ deprecate :search_incidents, :incidents, 2021, 7
60
+
61
+ def delete_incident(incident_id)
62
+ delete("/pages/#{page_id}/incidents/#{incident_id}")
63
+ end
64
+
65
+ def create_incident(opts = {})
66
+ create_opts = allowlist_opts(symbolize_keys(opts))
67
+
68
+ raise ArgumentError, 'name is required' if create_opts[:name].nil? || create_opts[:name].empty?
69
+
70
+ post("/pages/#{page_id}/incidents", incident: create_opts)
71
+ end
72
+
73
+ def update_incident(incident_id, opts = {})
74
+ update_opts = allowlist_opts(symbolize_keys(opts))
75
+
76
+ put("/pages/#{page_id}/incidents/#{incident_id}", incident: update_opts)
77
+ end
78
+
79
+ private
80
+
81
+ def allowlist_opts(opts)
82
+ opts.slice(*VALID_INCIDENT_OPTIONS)
20
83
  end
21
84
  end
22
85
  end
@@ -1,51 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ # https://developer.statuspage.io/#tag/subscribers
1
4
  module Statuspageio
2
5
  class Client
3
6
  module Subscriber
4
- SUBSCRIBER_OPTIONS = %i(
7
+ extend Gem::Deprecate
8
+
9
+ SUBSCRIBER_OPTIONS = %i[
10
+ component_ids
5
11
  email
6
12
  endpoint
13
+ page_access_user
7
14
  phone_country
8
15
  phone_number
9
16
  skip_confirmation_notification
10
- page_access_user
11
- component_ids
12
- )
17
+ ].freeze
18
+
19
+ def subscribers(incident_id: nil, query: nil)
20
+ query_opts = { q: query }.compact
13
21
 
14
- def subscribers(incident_id: nil)
15
22
  if incident_id
16
- get("/pages/#{self.page_id}/incidents/#{incident_id}/subscribers")
23
+ get("/pages/#{page_id}/incidents/#{incident_id}/subscribers", query_opts)
17
24
  else
18
- get("/pages/#{self.page_id}/subscribers")
25
+ get("/pages/#{page_id}/subscribers", query_opts)
19
26
  end
20
27
  end
21
28
 
22
- def search_subscribers(q)
23
- return subscribers if q.nil? || q.empty?
24
- get("/pages/#{self.page_id}/subscribers", { q: q })
29
+ def search_subscribers(query)
30
+ subscribers(query: query)
25
31
  end
26
32
 
33
+ deprecate :search_subscribers, :subscribers, 2021, 7
34
+
27
35
  def create_subscriber(options)
28
- create_options = options.dup.slice(*SUBSCRIBER_OPTIONS)
36
+ create_options = symbolize_keys(options).slice(*SUBSCRIBER_OPTIONS)
29
37
 
30
38
  if valid_for_subscribing?(create_options)
31
- post("/pages/#{self.page_id}/subscribers", { subscriber: create_options })
39
+ post("/pages/#{page_id}/subscribers", subscriber: create_options)
32
40
  else
33
- raise ArgumentError, 'An email address or phone number with the two digit country code is required'
41
+ raise ArgumentError, 'An email address or phone number with the two digit country code '\
42
+ 'is required'
34
43
  end
35
44
  end
36
45
 
37
46
  def delete_subscriber(subscriber_id, incident_id: nil)
38
47
  if incident_id
39
- delete("/pages/#{self.page_id}/incidents/#{incident_id}/subscribers/#{subscriber_id}")
48
+ delete("/pages/#{page_id}/incidents/#{incident_id}/subscribers/#{subscriber_id}")
40
49
  else
41
- delete("/pages/#{self.page_id}/subscribers/#{subscriber_id}")
50
+ delete("/pages/#{page_id}/subscribers/#{subscriber_id}")
42
51
  end
43
52
  end
44
53
 
45
54
  private
46
55
 
47
56
  def valid_for_subscribing?(options)
48
- !(options[:email].empty? && (options[:phone_country].empty? || options[:phone_number].empty?))
57
+ !(options[:email].empty? &&
58
+ (options[:phone_country].empty? || options[:phone_number].empty?))
49
59
  end
50
60
  end
51
61
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'httparty'
2
4
  require 'statuspageio/configuration'
3
5
  require 'statuspageio/response_error'
@@ -31,9 +33,8 @@ module Statuspageio
31
33
  end
32
34
 
33
35
  def self.bad_response(response)
34
- if response.class == HTTParty::Response
35
- raise ResponseError, response
36
- end
36
+ raise ResponseError, response if response.instance_of?(HTTParty::Response)
37
+
37
38
  raise StandardError, 'Unknown error'
38
39
  end
39
40
 
@@ -55,10 +56,18 @@ module Statuspageio
55
56
 
56
57
  private
57
58
 
59
+ def symbolize_keys(opts)
60
+ opts.transform_keys do |key|
61
+ key.to_sym
62
+ rescue StandardError
63
+ key
64
+ end
65
+ end
66
+
58
67
  def headers
59
68
  {
60
- 'Authorization' => "OAuth #{self.api_key}",
61
- 'Content-Type' => 'application/json'
69
+ 'Authorization' => "OAuth #{api_key}",
70
+ 'Content-Type' => 'application/json'
62
71
  }
63
72
  end
64
73
  end
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Statuspageio
2
4
  module Configuration
3
5
  # An array of valid keys in the options hash when configuring a {Gems::Client}
4
- VALID_OPTIONS_KEYS = [
5
- :api_key,
6
- :page_id
6
+ VALID_OPTIONS_KEYS = %i[
7
+ api_key
8
+ page_id
7
9
  ].freeze
8
10
 
9
11
  attr_accessor(*VALID_OPTIONS_KEYS)
@@ -1,35 +1,40 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Statuspageio
2
4
  class ResponseError < StandardError
3
-
4
- attr_reader :response, :code, :errors
5
+ attr_accessor :response, :code, :errors
5
6
 
6
7
  def initialize(res)
7
- @response = res.response
8
- @code = res.code
8
+ self.response = res.response
9
+ self.code = res.code
9
10
  begin
10
- @errors = parse_errors(res.parsed_response)
11
+ self.errors = parse_errors(res.parsed_response)
11
12
  rescue JSON::ParserError
12
- @errors = [res.response.body]
13
+ self.errors = [res.response.body]
13
14
  end
14
15
  end
15
16
 
16
17
  def to_s
17
- "#{code.to_s} #{response.msg}".strip
18
+ [code.to_s, response.msg, inlined_errors].compact.map(&:strip).join(' ')
18
19
  end
19
20
 
20
21
  private
21
22
 
22
23
  def parse_errors(errors)
23
- return case errors
24
- when Hash
25
- errors.collect{|k,v| "#{k}: #{v}"}
26
- when String
27
- [errors]
28
- when Array
29
- errors
30
- else
31
- []
24
+ case errors
25
+ when Hash
26
+ errors.collect { |k, v| "#{k}: #{v}" }
27
+ when String
28
+ [errors]
29
+ when Array
30
+ errors
31
+ else
32
+ []
32
33
  end
33
34
  end
35
+
36
+ def inlined_errors
37
+ errors&.join(', ')
38
+ end
34
39
  end
35
40
  end
@@ -1,3 +1,3 @@
1
1
  module Statuspageio
2
- VERSION = '0.1.5'
2
+ VERSION = '0.2.0'
3
3
  end
data/lib/statuspageio.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'statuspageio/client'
2
4
  require 'statuspageio/configuration'
3
5
 
@@ -11,6 +13,7 @@ module Statuspageio
11
13
 
12
14
  def method_missing(method, *args, &block)
13
15
  return super unless new.respond_to?(method)
16
+
14
17
  new.send(method, *args, &block)
15
18
  end
16
19
 
data/rubocop.yml ADDED
@@ -0,0 +1,43 @@
1
+ # This explicitly enables all new cops
2
+ # We should just have to adjust where we deviate from the defaults
3
+ AllCops:
4
+ NewCops: enable
5
+ SuggestExtensions: false
6
+
7
+ Layout/HashAlignment:
8
+ EnforcedColonStyle: table
9
+ EnforcedHashRocketStyle: table
10
+
11
+ Metrics/BlockLength:
12
+ Exclude:
13
+ - '*.gemspec'
14
+ - 'Rakefile'
15
+ - '**/*.rake'
16
+ - 'spec/**/*.rb'
17
+ - 'test/**/*.rb'
18
+
19
+ Layout/LineLength:
20
+ Max: 100
21
+
22
+ Style/Documentation:
23
+ Enabled: false
24
+
25
+ Layout/EmptyLinesAroundAttributeAccessor:
26
+ AllowAliasSyntax: true
27
+ Enabled: true
28
+
29
+ Lint/EmptyConditionalBody:
30
+ AllowComments: true
31
+ Enabled: true
32
+
33
+ Lint/RaiseException:
34
+ AllowedImplicitNamespaces: true
35
+ Enabled: true
36
+
37
+ Style/ExponentialNotation:
38
+ EnforcedStyle: scientific
39
+ Enabled: true
40
+
41
+ Style/HashAsLastArrayItem:
42
+ Enabled: true
43
+ EnforcedStyle: braces
data/statuspageio.gemspec CHANGED
@@ -1,4 +1,3 @@
1
-
2
1
  lib = File.expand_path("../lib", __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require "statuspageio/version"
@@ -29,8 +28,11 @@ Gem::Specification.new do |spec|
29
28
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
30
29
  spec.require_paths = ["lib"]
31
30
 
32
- spec.add_dependency "httparty", "~> 0.16.4"
31
+ spec.add_dependency "httparty", "~> 0.17"
33
32
 
34
- spec.add_development_dependency "bundler", "~> 1.16"
35
- spec.add_development_dependency "rake", "~> 10.0"
33
+ spec.add_development_dependency 'bundler', '~> 2.1', '>= 2.1.0'
34
+ spec.add_development_dependency 'rake', '~> 12.3', '>= 12.3.3'
35
+ spec.add_development_dependency 'rspec', '~> 3.10.0'
36
+ spec.add_development_dependency 'rubocop', '~> 1.18'
37
+ spec.add_development_dependency 'webmock', '~> 3.13.0'
36
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: statuspageio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Nixon
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-09-25 00:00:00.000000000 Z
11
+ date: 2023-11-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -16,43 +16,97 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.16.4
19
+ version: '0.17'
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
- version: 0.16.4
26
+ version: '0.17'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.16'
33
+ version: '2.1'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 2.1.0
34
37
  type: :development
35
38
  prerelease: false
36
39
  version_requirements: !ruby/object:Gem::Requirement
37
40
  requirements:
38
41
  - - "~>"
39
42
  - !ruby/object:Gem::Version
40
- version: '1.16'
43
+ version: '2.1'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 2.1.0
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: rake
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '10.0'
53
+ version: '12.3'
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 12.3.3
57
+ type: :development
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '12.3'
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 12.3.3
67
+ - !ruby/object:Gem::Dependency
68
+ name: rspec
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: 3.10.0
74
+ type: :development
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: 3.10.0
81
+ - !ruby/object:Gem::Dependency
82
+ name: rubocop
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '1.18'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '1.18'
95
+ - !ruby/object:Gem::Dependency
96
+ name: webmock
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: 3.13.0
48
102
  type: :development
49
103
  prerelease: false
50
104
  version_requirements: !ruby/object:Gem::Requirement
51
105
  requirements:
52
106
  - - "~>"
53
107
  - !ruby/object:Gem::Version
54
- version: '10.0'
55
- description:
108
+ version: 3.13.0
109
+ description:
56
110
  email:
57
111
  - chris.d.nixon@gmail.com
58
112
  executables: []
@@ -60,6 +114,8 @@ extensions: []
60
114
  extra_rdoc_files: []
61
115
  files:
62
116
  - ".gitignore"
117
+ - ".rspec"
118
+ - ".travis.yml"
63
119
  - Gemfile
64
120
  - Gemfile.lock
65
121
  - LICENSE.txt
@@ -74,12 +130,13 @@ files:
74
130
  - lib/statuspageio/configuration.rb
75
131
  - lib/statuspageio/response_error.rb
76
132
  - lib/statuspageio/version.rb
133
+ - rubocop.yml
77
134
  - statuspageio.gemspec
78
135
  homepage: https://github.com/dasnixon/statuspageio
79
136
  licenses:
80
137
  - MIT
81
138
  metadata: {}
82
- post_install_message:
139
+ post_install_message:
83
140
  rdoc_options: []
84
141
  require_paths:
85
142
  - lib
@@ -94,8 +151,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
151
  - !ruby/object:Gem::Version
95
152
  version: '0'
96
153
  requirements: []
97
- rubygems_version: 3.0.3
98
- signing_key:
154
+ rubygems_version: 3.4.18
155
+ signing_key:
99
156
  specification_version: 4
100
157
  summary: Ruby API wrapper for Statuspage.io.
101
158
  test_files: []