twitch-api 0.4.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +130 -26
  3. data/lib/twitch/api_error.rb +5 -4
  4. data/lib/twitch/automod_message_status.rb +17 -0
  5. data/lib/twitch/bits_leader.rb +3 -1
  6. data/lib/twitch/category.rb +27 -0
  7. data/lib/twitch/channel.rb +46 -0
  8. data/lib/twitch/cheermote.rb +53 -0
  9. data/lib/twitch/cheermote_tier.rb +55 -0
  10. data/lib/twitch/cheermote_tier_image.rb +18 -0
  11. data/lib/twitch/cheermote_tier_images.rb +21 -0
  12. data/lib/twitch/client/custom_rewards.rb +35 -0
  13. data/lib/twitch/client/extensions.rb +20 -0
  14. data/lib/twitch/client/games.rb +20 -0
  15. data/lib/twitch/client/moderation.rb +28 -0
  16. data/lib/twitch/client/streams.rb +29 -0
  17. data/lib/twitch/client/subscriptions.rb +12 -0
  18. data/lib/twitch/client/users.rb +20 -0
  19. data/lib/twitch/client.rb +127 -100
  20. data/lib/twitch/clip.rb +5 -11
  21. data/lib/twitch/custom_reward.rb +91 -0
  22. data/lib/twitch/editor.rb +21 -0
  23. data/lib/twitch/entitlement_grant_url.rb +3 -2
  24. data/lib/twitch/extension.rb +37 -0
  25. data/lib/twitch/extensions_by_types.rb +32 -0
  26. data/lib/twitch/game.rb +4 -2
  27. data/lib/twitch/game_analytic.rb +4 -2
  28. data/lib/twitch/moderation_event.rb +33 -0
  29. data/lib/twitch/moderator.rb +20 -0
  30. data/lib/twitch/redemption.rb +35 -0
  31. data/lib/twitch/response.rb +42 -19
  32. data/lib/twitch/stream.rb +9 -11
  33. data/lib/twitch/stream_marker.rb +7 -8
  34. data/lib/twitch/stream_metadata.rb +27 -16
  35. data/lib/twitch/subscription.rb +28 -0
  36. data/lib/twitch/user.rb +8 -3
  37. data/lib/twitch/user_ban.rb +26 -0
  38. data/lib/twitch/user_follow.rb +4 -2
  39. data/lib/twitch/version.rb +3 -1
  40. data/lib/twitch/video.rb +7 -13
  41. data/lib/twitch-api.rb +3 -4
  42. metadata +57 -75
  43. data/.gitignore +0 -17
  44. data/.rspec +0 -3
  45. data/.travis.yml +0 -9
  46. data/Gemfile +0 -6
  47. data/Rakefile +0 -6
  48. data/bin/console +0 -14
  49. data/bin/setup +0 -8
  50. data/twitch-api.gemspec +0 -32
@@ -1,6 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Twitch
2
4
  # A compiled response from the API.
3
5
  class Response
6
+ extend Forwardable
7
+ def_delegators :@http_response, :body, :success?
8
+
4
9
  # The requested data.
5
10
  attr_reader :data
6
11
  # A total amount of entities.
@@ -10,10 +15,10 @@ module Twitch
10
15
  # Usually contains the keys start_date and end_date.
11
16
  # Applies to select endpoints.
12
17
  attr_reader :date_range
13
- # A hash containing a pagination token.
18
+ # A hash containing a pagination token.
14
19
  # Access it with
15
20
  # pagination['cursor']
16
- # Applies to select endpoints.
21
+ # Applies to select endpoints.
17
22
  attr_reader :pagination
18
23
  # The total amount of calls that can be used in
19
24
  # the rate limit period (one minute by default).
@@ -25,34 +30,52 @@ module Twitch
25
30
  # The total amount of clips that can be created in
26
31
  # the clip rate limit period (currently unknown).
27
32
  attr_reader :clip_rate_limit
28
- # The remaining amount of clips that can be created in
29
- # the clip rate limit period.
33
+ # The remaining amount of clips that can be created in
34
+ # the clip rate limit period.
30
35
  attr_reader :clip_rate_limit_remaining
31
36
  # The HTTP raw response
32
37
  attr_reader :raw
33
38
 
34
- def initialize(data_class, res)
35
- http_res = res[:http_res]
36
- @raw = http_res if res[:with_raw]
39
+ def initialize(data_class, http_response:)
40
+ @http_response = http_response
41
+ @raw = @http_response
42
+
43
+ @data = parse_data data_class
44
+
45
+ parse_rate_limits
46
+
47
+ @pagination = body['pagination']
48
+ @total = body['total']
49
+ @date_range = body['date_range']
50
+ end
51
+
52
+ private
37
53
 
38
- @data = http_res.body['data'].map { |d| data_class.new(d) }
54
+ def parse_data(data_class)
55
+ raw_data = body['data']
56
+ return raw_data unless data_class
39
57
 
40
- rate_limit_headers = Hash[http_res.headers.select do |k,v|
41
- k.to_s.downcase.match(/^ratelimit/)
42
- end.map { |k,v| [k.gsub('ratelimit-', '').to_sym, v] }]
58
+ if raw_data.is_a?(Array)
59
+ raw_data.map { |data_element| data_class.new(data_element) }
60
+ else
61
+ data_class.new(raw_data)
62
+ end
63
+ end
43
64
 
65
+ def parse_rate_limits
44
66
  @rate_limit = rate_limit_headers[:limit].to_i
45
67
  @rate_limit_remaining = rate_limit_headers[:remaining].to_i
46
68
  @rate_limit_resets_at = Time.at(rate_limit_headers[:reset].to_i)
47
69
 
48
- if rate_limit_headers.keys.any? { |k| k.to_s.start_with?('helixclipscreation') }
49
- @clip_rate_limit = rate_limit_headers[:'helixclipscreation-limit']
50
- @clip_rate_limit_remaining = rate_limit_headers[:'helixclipscreation-remaining']
51
- end
70
+ @clip_rate_limit = rate_limit_headers[:'helixclipscreation-limit']
71
+ @clip_rate_limit_remaining = rate_limit_headers[:'helixclipscreation-remaining']
72
+ end
52
73
 
53
- @pagination = http_res.body['pagination']
54
- @total = http_res.body['total']
55
- @date_range = http_res.body['date_range']
74
+ def rate_limit_headers
75
+ @rate_limit_headers ||=
76
+ @http_response.headers
77
+ .select { |key, _value| key.to_s.downcase.match(/^ratelimit/) }
78
+ .transform_keys { |key| key.gsub('ratelimit-', '').to_sym }
56
79
  end
57
80
  end
58
- end
81
+ end
data/lib/twitch/stream.rb CHANGED
@@ -1,11 +1,10 @@
1
- require "time"
1
+ # frozen_string_literal: true
2
+
3
+ require 'time'
2
4
 
3
5
  module Twitch
4
6
  # A user's broadcasting session.
5
7
  class Stream
6
- # Fields to be converted from ISO 8601 string to a typed date.
7
- DATE_ATTRIBUTES = [:started_at]
8
-
9
8
  # ID of the stream.
10
9
  attr_reader :id
11
10
  # ID of the user broadcasting.
@@ -14,6 +13,8 @@ module Twitch
14
13
  attr_reader :user_name
15
14
  # ID of the game being broadcast.
16
15
  attr_reader :game_id
16
+ # Name of the game being broadcast.
17
+ attr_reader :game_name
17
18
  # Associated community IDs for the broadcaster.
18
19
  attr_reader :community_ids
19
20
  # The type of broadcast
@@ -29,15 +30,12 @@ module Twitch
29
30
  attr_reader :language
30
31
  # URL of the latest thumbnail image for the broadcast.
31
32
  attr_reader :thumbnail_url
32
-
33
+ # Ids of tags on the live stream
34
+ attr_reader :tag_ids
33
35
 
34
36
  def initialize(attributes = {})
35
- attributes.each do |k, v|
36
- if DATE_ATTRIBUTES.include?(k.to_sym)
37
- instance_variable_set("@#{k}", Time.parse(v))
38
- else
39
- instance_variable_set("@#{k}", v)
40
- end
37
+ attributes.each do |key, value|
38
+ instance_variable_set "@#{key}", value
41
39
  end
42
40
  end
43
41
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Twitch
2
4
  # A point of time in a stream VOD that was marked while it is live.
3
5
  class StreamMarker
@@ -15,7 +17,7 @@ module Twitch
15
17
 
16
18
  def initialize(attributes = {})
17
19
  @id = attributes['id']
18
- @created_at = Time.parse(attributes['created_at'])
20
+ @created_at = attributes['created_at']
19
21
  @description = attributes['description']
20
22
  @position_seconds = attributes['position_seconds']
21
23
  @url = attributes['URL']
@@ -24,25 +26,22 @@ module Twitch
24
26
 
25
27
  # The response envelope for the "Get Stream Markers" endpoint.
26
28
  class StreamMarkerResponse
27
- attr_reader :user_id
28
- attr_reader :user_name
29
- attr_reader :videos
29
+ attr_reader :user_id, :user_name, :videos
30
30
 
31
31
  def initialize(attributes = {})
32
32
  @user_id = attributes['user_id']
33
33
  @user_name = attributes['user_name']
34
- @videos = attributes['videos'].map { |v| VideoStreamMarkers.new(v) }
34
+ @videos = attributes['videos'].map { |video| VideoStreamMarkers.new(video) }
35
35
  end
36
36
  end
37
37
 
38
38
  # A video with a list of markers.
39
39
  class VideoStreamMarkers
40
- attr_reader :video_id
41
- attr_reader :markers
40
+ attr_reader :video_id, :markers
42
41
 
43
42
  def initialize(attributes = {})
44
43
  @video_id = attributes['video_id']
45
- @markers = attributes['markers'].map{ |m| StreamMarker.new(m) }
44
+ @markers = attributes['markers'].map { |marker| StreamMarker.new(marker) }
46
45
  end
47
46
  end
48
47
  end
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Twitch
2
4
  # A set of metadata to provide additional information about a
3
- # game being streamed.
5
+ # game being streamed.
4
6
  # Additional getters are assigned at initialization time, e.g.
5
7
  # self.hearthstone
6
- # has data when Hearthstone is being streamed.
8
+ # has data when Hearthstone is being streamed.
7
9
  # Other games may be included, but will be set to nil
8
10
  # if they aren't the game currently being streamed.
9
11
  class StreamMetadata
@@ -11,22 +13,31 @@ module Twitch
11
13
  attr_reader :user_id
12
14
  # Display name of the streaming user.
13
15
  attr_reader :user_name
14
- # ID of the game being playead.
16
+ # ID of the game being played.
15
17
  attr_reader :game_id
16
18
 
17
19
  def initialize(attributes = {})
18
- @user_id = attributes['user_id']
19
- @user_name = attributes['user_name']
20
- @game_id = attributes['game_id']
21
-
22
- # Since more games can be supported in the future,
23
- # this will ensure they will all be available.
24
- attributes.each do |k, v|
25
- unless instance_variables.include?("@#{k}".to_sym)
26
- self.class.send(:attr_reader, k.to_sym)
27
- instance_variable_set("@#{k}", v)
28
- end
29
- end
20
+ @attributes = attributes
21
+
22
+ @user_id = @attributes['user_id']
23
+ @user_name = @attributes['user_name']
24
+ @game_id = @attributes['game_id']
25
+ end
26
+
27
+ # Since more games can be supported in the future,
28
+ # this will ensure they will all be available.
29
+ def method_missing(name, *args)
30
+ name = name.to_s
31
+
32
+ return super unless @attributes.key?(name)
33
+
34
+ @attributes[name]
35
+ end
36
+
37
+ def respond_to_missing?(name)
38
+ name = name.to_s
39
+
40
+ @attributes.key?(name) ? true : super
30
41
  end
31
42
  end
32
- end
43
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Twitch
4
+ # A user's voluntary contribution to a streamer
5
+ class Subscription
6
+ # ID of the user being subscribed to.
7
+ attr_reader :broadcaster_id
8
+ # Username of the user being subscribed to.
9
+ attr_reader :broadcaster_name
10
+ # Whether the subscription was received as a gift.
11
+ attr_reader :is_gift
12
+ # Tier of the subscription.
13
+ # 1000 = Tier 1, 2000 = Tier 2, 3000 = Tier 3
14
+ attr_reader :tier
15
+ # Descriptive name of the subscription.
16
+ attr_reader :plan_name
17
+ # ID of the subscribing user.
18
+ attr_reader :user_id
19
+ # Username of the subscribing user.
20
+ attr_reader :user_name
21
+
22
+ def initialize(attributes = {})
23
+ attributes.each do |key, value|
24
+ instance_variable_set "@#{key}", value
25
+ end
26
+ end
27
+ end
28
+ end
data/lib/twitch/user.rb CHANGED
@@ -1,4 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Twitch
4
+ # Data object for Twitch users
2
5
  class User
3
6
  # ID of the user.
4
7
  attr_reader :id
@@ -10,7 +13,7 @@ module Twitch
10
13
  # (global mod, admin, staff)
11
14
  attr_reader :type
12
15
  # Represents a special broadcaster role of a user.
13
- # (partner, affilaite)
16
+ # (partner, affiliate)
14
17
  attr_reader :broadcaster_type
15
18
  # Description/biographical info of a user.
16
19
  attr_reader :description
@@ -21,10 +24,12 @@ module Twitch
21
24
  attr_reader :offline_image_url
22
25
  # Total number of visits to the user's stream page.
23
26
  attr_reader :view_count
27
+ # The UTC date and time that the user’s account was created. The timestamp is in RFC3339 format.
28
+ attr_reader :created_at
24
29
 
25
30
  def initialize(attributes = {})
26
- attributes.each do |k, v|
27
- instance_variable_set("@#{k}", v)
31
+ attributes.each do |key, value|
32
+ instance_variable_set "@#{key}", value
28
33
  end
29
34
  end
30
35
  end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Twitch
4
+ # Ban information for a user.
5
+ class UserBan
6
+ # Fields to be converted from ISO 8601 string to a typed date.
7
+ DATE_ATTRIBUTES = %i[expires_at].freeze
8
+
9
+ # ID of the banned/timed-out user.
10
+ attr_reader :user_id
11
+ # Username of the banned/timed-out user.
12
+ attr_reader :user_name
13
+ # Date of when the time-out will expire (nil for permanent bans)
14
+ attr_reader :expires_at
15
+
16
+ def initialize(attributes = {})
17
+ attributes.each do |key, value|
18
+ if DATE_ATTRIBUTES.include?(key.to_sym)
19
+ instance_variable_set "@#{key}", Time.parse(value)
20
+ else
21
+ instance_variable_set "@#{key}", value
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Twitch
2
4
  # Represents a relationship of one user following another.
3
5
  class UserFollow
@@ -17,7 +19,7 @@ module Twitch
17
19
  @from_name = attributes['from_name']
18
20
  @to_id = attributes['to_id']
19
21
  @to_name = attributes['to_name']
20
- @followed_at = Time.iso8601(attributes['followed_at'])
22
+ @followed_at = attributes['followed_at']
21
23
  end
22
24
  end
23
- end
25
+ end
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Twitch
2
4
  # Library version.
3
- VERSION = "0.4.0"
5
+ VERSION = '1.0.0'
4
6
  end
data/lib/twitch/video.rb CHANGED
@@ -1,10 +1,10 @@
1
- require "time"
1
+ # frozen_string_literal: true
2
+
3
+ require 'time'
2
4
 
3
5
  module Twitch
4
6
  # A captured broadcast or portion of a broadcast.
5
7
  class Video
6
- DATE_ATTRIBUTES = [:created_at, :published_at]
7
-
8
8
  # ID of the video.
9
9
  attr_reader :id
10
10
  # Title of the video.
@@ -13,7 +13,7 @@ module Twitch
13
13
  attr_reader :description
14
14
  # Language of the video.
15
15
  attr_reader :language
16
- # Number of views
16
+ # Number of views
17
17
  attr_reader :view_count
18
18
  # Date the video was created.
19
19
  attr_reader :created_at
@@ -31,19 +31,13 @@ module Twitch
31
31
  attr_reader :user_name
32
32
  # Viewability of the video (public or private)
33
33
  attr_reader :viewable
34
- # Duration of the video, in the format
35
- # 0h0m0s
34
+ # Duration of the video, in the format `0h0m0s`
36
35
  attr_reader :duration
37
36
 
38
37
  def initialize(attributes = {})
39
- attributes.each do |k, v|
40
- if DATE_ATTRIBUTES.include?(k.to_sym)
41
- instance_variable_set("@#{k}", Time.parse(v))
42
- else
43
- instance_variable_set("@#{k}", v)
44
- end
38
+ attributes.each do |key, value|
39
+ instance_variable_set("@#{key}", value)
45
40
  end
46
41
  end
47
-
48
42
  end
49
43
  end
data/lib/twitch-api.rb CHANGED
@@ -1,5 +1,4 @@
1
- require "twitch/version"
2
- require "twitch/client"
1
+ # frozen_string_literal: true
3
2
 
4
- module Twitch
5
- end
3
+ require_relative 'twitch/version'
4
+ require_relative 'twitch/client'
metadata CHANGED
@@ -1,151 +1,131 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twitch-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maurice Wahba
8
- autorequire:
9
- bindir: exe
8
+ - Alexander Popov
9
+ autorequire:
10
+ bindir: bin
10
11
  cert_chain: []
11
- date: 2019-01-03 00:00:00.000000000 Z
12
+ date: 2023-08-17 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: faraday
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 0.12.2
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: 0.12.2
27
- - !ruby/object:Gem::Dependency
28
- name: faraday_middleware
29
16
  requirement: !ruby/object:Gem::Requirement
30
17
  requirements:
31
18
  - - "~>"
32
19
  - !ruby/object:Gem::Version
33
- version: '0.12'
20
+ version: '2.3'
34
21
  type: :runtime
35
22
  prerelease: false
36
23
  version_requirements: !ruby/object:Gem::Requirement
37
24
  requirements:
38
25
  - - "~>"
39
26
  - !ruby/object:Gem::Version
40
- version: '0.12'
27
+ version: '2.3'
41
28
  - !ruby/object:Gem::Dependency
42
- name: bundler
29
+ name: faraday-parse_dates
43
30
  requirement: !ruby/object:Gem::Requirement
44
31
  requirements:
45
32
  - - "~>"
46
33
  - !ruby/object:Gem::Version
47
- version: '1.16'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '1.16'
55
- - !ruby/object:Gem::Dependency
56
- name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '10.0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '10.0'
69
- - !ruby/object:Gem::Dependency
70
- name: rspec
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '3.0'
76
- type: :development
34
+ version: 0.1.1
35
+ type: :runtime
77
36
  prerelease: false
78
37
  version_requirements: !ruby/object:Gem::Requirement
79
38
  requirements:
80
39
  - - "~>"
81
40
  - !ruby/object:Gem::Version
82
- version: '3.0'
41
+ version: 0.1.1
83
42
  - !ruby/object:Gem::Dependency
84
- name: webmock
43
+ name: faraday-retry
85
44
  requirement: !ruby/object:Gem::Requirement
86
45
  requirements:
87
46
  - - "~>"
88
47
  - !ruby/object:Gem::Version
89
- version: '3.1'
90
- type: :development
48
+ version: '2.0'
49
+ type: :runtime
91
50
  prerelease: false
92
51
  version_requirements: !ruby/object:Gem::Requirement
93
52
  requirements:
94
53
  - - "~>"
95
54
  - !ruby/object:Gem::Version
96
- version: '3.1'
55
+ version: '2.0'
97
56
  - !ruby/object:Gem::Dependency
98
- name: vcr
57
+ name: twitch_oauth2
99
58
  requirement: !ruby/object:Gem::Requirement
100
59
  requirements:
101
60
  - - "~>"
102
61
  - !ruby/object:Gem::Version
103
- version: '3.0'
104
- type: :development
62
+ version: 0.5.0
63
+ type: :runtime
105
64
  prerelease: false
106
65
  version_requirements: !ruby/object:Gem::Requirement
107
66
  requirements:
108
67
  - - "~>"
109
68
  - !ruby/object:Gem::Version
110
- version: '3.0'
111
- description:
69
+ version: 0.5.0
70
+ description:
112
71
  email:
113
72
  - maurice.wahba@gmail.com
73
+ - alex.wayfer@gmail.com
114
74
  executables: []
115
75
  extensions: []
116
76
  extra_rdoc_files: []
117
77
  files:
118
- - ".gitignore"
119
- - ".rspec"
120
- - ".travis.yml"
121
- - Gemfile
122
78
  - LICENSE.txt
123
79
  - README.md
124
- - Rakefile
125
- - bin/console
126
- - bin/setup
127
80
  - lib/twitch-api.rb
128
81
  - lib/twitch/api_error.rb
82
+ - lib/twitch/automod_message_status.rb
129
83
  - lib/twitch/bits_leader.rb
84
+ - lib/twitch/category.rb
85
+ - lib/twitch/channel.rb
86
+ - lib/twitch/cheermote.rb
87
+ - lib/twitch/cheermote_tier.rb
88
+ - lib/twitch/cheermote_tier_image.rb
89
+ - lib/twitch/cheermote_tier_images.rb
130
90
  - lib/twitch/client.rb
91
+ - lib/twitch/client/custom_rewards.rb
92
+ - lib/twitch/client/extensions.rb
93
+ - lib/twitch/client/games.rb
94
+ - lib/twitch/client/moderation.rb
95
+ - lib/twitch/client/streams.rb
96
+ - lib/twitch/client/subscriptions.rb
97
+ - lib/twitch/client/users.rb
131
98
  - lib/twitch/clip.rb
99
+ - lib/twitch/custom_reward.rb
100
+ - lib/twitch/editor.rb
132
101
  - lib/twitch/entitlement_grant_url.rb
102
+ - lib/twitch/extension.rb
103
+ - lib/twitch/extensions_by_types.rb
133
104
  - lib/twitch/game.rb
134
105
  - lib/twitch/game_analytic.rb
106
+ - lib/twitch/moderation_event.rb
107
+ - lib/twitch/moderator.rb
108
+ - lib/twitch/redemption.rb
135
109
  - lib/twitch/response.rb
136
110
  - lib/twitch/stream.rb
137
111
  - lib/twitch/stream_marker.rb
138
112
  - lib/twitch/stream_metadata.rb
113
+ - lib/twitch/subscription.rb
139
114
  - lib/twitch/user.rb
115
+ - lib/twitch/user_ban.rb
140
116
  - lib/twitch/user_follow.rb
141
117
  - lib/twitch/version.rb
142
118
  - lib/twitch/video.rb
143
- - twitch-api.gemspec
144
119
  homepage: https://github.com/mauricew/ruby-twitch-api
145
120
  licenses:
146
121
  - MIT
147
- metadata: {}
148
- post_install_message:
122
+ metadata:
123
+ bug_tracker_uri: https://github.com/mauricew/ruby-twitch-api/issues
124
+ documentation_uri: http://www.rubydoc.info/gems/twitch-api/1.0.0
125
+ homepage_uri: https://github.com/mauricew/ruby-twitch-api
126
+ rubygems_mfa_required: 'true'
127
+ source_code_uri: https://github.com/mauricew/ruby-twitch-api
128
+ post_install_message:
149
129
  rdoc_options: []
150
130
  require_paths:
151
131
  - lib
@@ -153,16 +133,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
153
133
  requirements:
154
134
  - - ">="
155
135
  - !ruby/object:Gem::Version
156
- version: '2.0'
136
+ version: '2.7'
137
+ - - "<"
138
+ - !ruby/object:Gem::Version
139
+ version: '4'
157
140
  required_rubygems_version: !ruby/object:Gem::Requirement
158
141
  requirements:
159
142
  - - ">="
160
143
  - !ruby/object:Gem::Version
161
144
  version: '0'
162
145
  requirements: []
163
- rubyforge_project:
164
- rubygems_version: 2.7.7
165
- signing_key:
146
+ rubygems_version: 3.4.17
147
+ signing_key:
166
148
  specification_version: 4
167
149
  summary: Ruby client for the Twitch Helix API.
168
150
  test_files: []
data/.gitignore DELETED
@@ -1,17 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
9
-
10
- # rspec failure tracking
11
- .rspec_status
12
-
13
- # for a library or gem, you might want to ignore these files since the code is
14
- # intended to run in multiple environments; otherwise, check them in:
15
- Gemfile.lock
16
- .ruby-version
17
- .ruby-gemset
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
data/.travis.yml DELETED
@@ -1,9 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.3.8
5
- - 2.4.5
6
- - 2.5.3
7
- env:
8
- - TWITCH_CLIENT_ID=test
9
- before_install: gem install bundler -v 1.16.0
data/Gemfile DELETED
@@ -1,6 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
-
5
- # Specify your gem's dependencies in twitch-api.gemspec
6
- gemspec