twitch-api 0.3.0 → 1.0.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.
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 +6 -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 +128 -92
  20. data/lib/twitch/clip.rb +10 -12
  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 +12 -12
  33. data/lib/twitch/stream_marker.rb +47 -0
  34. data/lib/twitch/stream_metadata.rb +29 -15
  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 +10 -2
  39. data/lib/twitch/version.rb +3 -1
  40. data/lib/twitch/video.rb +9 -13
  41. data/lib/twitch-api.rb +3 -4
  42. metadata +58 -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,17 +1,20 @@
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.
12
11
  attr_reader :user_id
12
+ # Username of the user broadcasting.
13
+ attr_reader :user_name
13
14
  # ID of the game being broadcast.
14
15
  attr_reader :game_id
16
+ # Name of the game being broadcast.
17
+ attr_reader :game_name
15
18
  # Associated community IDs for the broadcaster.
16
19
  attr_reader :community_ids
17
20
  # The type of broadcast
@@ -27,16 +30,13 @@ module Twitch
27
30
  attr_reader :language
28
31
  # URL of the latest thumbnail image for the broadcast.
29
32
  attr_reader :thumbnail_url
30
-
33
+ # Ids of tags on the live stream
34
+ attr_reader :tag_ids
31
35
 
32
36
  def initialize(attributes = {})
33
- attributes.each do |k, v|
34
- if DATE_ATTRIBUTES.include?(k.to_sym)
35
- instance_variable_set("@#{k}", Time.parse(v))
36
- else
37
- instance_variable_set("@#{k}", v)
38
- end
37
+ attributes.each do |key, value|
38
+ instance_variable_set "@#{key}", value
39
39
  end
40
40
  end
41
41
  end
42
- end
42
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Twitch
4
+ # A point of time in a stream VOD that was marked while it is live.
5
+ class StreamMarker
6
+ # ID of the stream marker.
7
+ attr_reader :id
8
+ # Date at which the stream marker was created.
9
+ attr_reader :created_at
10
+ # Description of the stream marker.
11
+ attr_reader :description
12
+ # Elapsed time in the VOD in seconds at which the stream marker was created.
13
+ attr_reader :position_seconds
14
+ # URL pointing to the video and timestamp of the stream marker.
15
+ # Not returned upon creation.
16
+ attr_reader :url
17
+
18
+ def initialize(attributes = {})
19
+ @id = attributes['id']
20
+ @created_at = attributes['created_at']
21
+ @description = attributes['description']
22
+ @position_seconds = attributes['position_seconds']
23
+ @url = attributes['URL']
24
+ end
25
+ end
26
+
27
+ # The response envelope for the "Get Stream Markers" endpoint.
28
+ class StreamMarkerResponse
29
+ attr_reader :user_id, :user_name, :videos
30
+
31
+ def initialize(attributes = {})
32
+ @user_id = attributes['user_id']
33
+ @user_name = attributes['user_name']
34
+ @videos = attributes['videos'].map { |video| VideoStreamMarkers.new(video) }
35
+ end
36
+ end
37
+
38
+ # A video with a list of markers.
39
+ class VideoStreamMarkers
40
+ attr_reader :video_id, :markers
41
+
42
+ def initialize(attributes = {})
43
+ @video_id = attributes['video_id']
44
+ @markers = attributes['markers'].map { |marker| StreamMarker.new(marker) }
45
+ end
46
+ end
47
+ end
@@ -1,29 +1,43 @@
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
10
12
  # ID of the streaming user.
11
13
  attr_reader :user_id
12
- # ID of the game being playead.
14
+ # Display name of the streaming user.
15
+ attr_reader :user_name
16
+ # ID of the game being played.
13
17
  attr_reader :game_id
14
18
 
15
19
  def initialize(attributes = {})
16
- @user_id = attributes['user_id']
17
- @game_id = attributes['game_id']
18
-
19
- # Since more games can be supported in the future,
20
- # this will ensure they will all be available.
21
- attributes.each do |k, v|
22
- unless instance_variables.include?("@#{k}".to_sym)
23
- self.class.send(:attr_reader, k.to_sym)
24
- instance_variable_set("@#{k}", v)
25
- end
26
- 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
27
41
  end
28
42
  end
29
- 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,17 +1,25 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Twitch
2
4
  # Represents a relationship of one user following another.
3
5
  class UserFollow
4
6
  # User ID of the *following* user.
5
7
  attr_reader :from_id
8
+ # Display name of the *following* user.
9
+ attr_reader :from_name
6
10
  # User ID of the *followed* user.
7
11
  attr_reader :to_id
12
+ # User name of the *followed* user.
13
+ attr_reader :to_name
8
14
  # Date at which the follow action was performed.
9
15
  attr_reader :followed_at
10
16
 
11
17
  def initialize(attributes = {})
12
18
  @from_id = attributes['from_id']
19
+ @from_name = attributes['from_name']
13
20
  @to_id = attributes['to_id']
14
- @followed_at = Time.iso8601(attributes['followed_at'])
21
+ @to_name = attributes['to_name']
22
+ @followed_at = attributes['followed_at']
15
23
  end
16
24
  end
17
- end
25
+ end
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Twitch
2
4
  # Library version.
3
- VERSION = "0.3.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
@@ -27,21 +27,17 @@ module Twitch
27
27
  attr_reader :url
28
28
  # ID of the user who uploaded/broadcasted the video.
29
29
  attr_reader :user_id
30
+ # Display name of the user who uploaded/broadcasted the video.
31
+ attr_reader :user_name
30
32
  # Viewability of the video (public or private)
31
33
  attr_reader :viewable
32
- # Duration of the video, in the format
33
- # 0h0m0s
34
+ # Duration of the video, in the format `0h0m0s`
34
35
  attr_reader :duration
35
36
 
36
37
  def initialize(attributes = {})
37
- attributes.each do |k, v|
38
- if DATE_ATTRIBUTES.include?(k.to_sym)
39
- instance_variable_set("@#{k}", Time.parse(v))
40
- else
41
- instance_variable_set("@#{k}", v)
42
- end
38
+ attributes.each do |key, value|
39
+ instance_variable_set("@#{key}", value)
43
40
  end
44
41
  end
45
-
46
42
  end
47
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,150 +1,131 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twitch-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.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: 2018-06-17 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
111
+ - lib/twitch/stream_marker.rb
137
112
  - lib/twitch/stream_metadata.rb
113
+ - lib/twitch/subscription.rb
138
114
  - lib/twitch/user.rb
115
+ - lib/twitch/user_ban.rb
139
116
  - lib/twitch/user_follow.rb
140
117
  - lib/twitch/version.rb
141
118
  - lib/twitch/video.rb
142
- - twitch-api.gemspec
143
119
  homepage: https://github.com/mauricew/ruby-twitch-api
144
120
  licenses:
145
121
  - MIT
146
- metadata: {}
147
- 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:
148
129
  rdoc_options: []
149
130
  require_paths:
150
131
  - lib
@@ -152,16 +133,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
152
133
  requirements:
153
134
  - - ">="
154
135
  - !ruby/object:Gem::Version
155
- version: '2.0'
136
+ version: '2.7'
137
+ - - "<"
138
+ - !ruby/object:Gem::Version
139
+ version: '4'
156
140
  required_rubygems_version: !ruby/object:Gem::Requirement
157
141
  requirements:
158
142
  - - ">="
159
143
  - !ruby/object:Gem::Version
160
144
  version: '0'
161
145
  requirements: []
162
- rubyforge_project:
163
- rubygems_version: 2.7.1
164
- signing_key:
146
+ rubygems_version: 3.4.17
147
+ signing_key:
165
148
  specification_version: 4
166
149
  summary: Ruby client for the Twitch Helix API.
167
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