twitch-api 0.4.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 +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