twitter 5.13.0 → 5.14.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5ac32438db7519853d565182ecedbd9e7415fe2e
4
- data.tar.gz: 490c6967d1ad7cbc9242274dd81fbd3e053705b0
3
+ metadata.gz: 8d6e26a619945618f7765e590a90debefc4ae1a3
4
+ data.tar.gz: 704ea457d4e963094a28314c3683ddd36f7565d4
5
5
  SHA512:
6
- metadata.gz: a19f77b9d88cf2aa0a62e8c73a409e53a5d408905532ea1cfe962cbd51860a5197111595095fcd1aa7bf9dbc8f87528a104b81f4bfaa78df8a74e954f7adfc06
7
- data.tar.gz: 55f3dab2b04e6685fe6cc3b831870680eac59637590d8d04543f85b2a4b8cdea8e37d14a45e66eda23827171b749bde6091e082ab7f2ca854da711d093bcd5c0
6
+ metadata.gz: 9831e99f3e7a8244581cd5328ca118e9180039076ef82d1295c6b219472b26287a85e686b84faa9810bba9fe3e773afb466eccfb7f9e97791336d6b05538d659
7
+ data.tar.gz: 6e5943dad0b823655e33af044fabb2ba40354baf143c3dce735ef4a0c1ea33f230ac73afd325d48ba1a9e91207f9ab5c37b19d547a15515bb473793f857a0e5c
@@ -1,3 +1,9 @@
1
+ 5.14.0
2
+ ------
3
+ * [Add `Twitter::NullObject#respond_to?`](https://github.com/sferik/twitter/commit/438e311d93f382960650e20898203c880ade6b25)
4
+ * [Add `Twitter::Media::Video`, `Twitter::Media::VideoInfo`, and `Twitter::Media::Variant`](https://github.com/sferik/twitter/commit/158193f85843ebac7b3188bbad26d73907577f6a)
5
+ * [Add `Twitter::Media::AnimatedGif` media entity](https://github.com/sferik/twitter/commit/76cb6645a54969edc7c9195e9e27e3728f5fd683) ([@nidev](https://twitter.com/nidev))
6
+
1
7
  5.13.0
2
8
  ------
3
9
  * [Deprecate `Twitter::REST::Client#get` and `Twitter::REST::Client#post`](https://github.com/sferik/twitter/commit/65773c7d741098490f4164fae9e4433365cd4292)
@@ -0,0 +1,8 @@
1
+ require 'twitter/media/video'
2
+
3
+ module Twitter
4
+ module Media
5
+ class AnimatedGif < Video
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,32 @@
1
+ require 'twitter/identity'
2
+ require 'twitter/media/video_info'
3
+
4
+ module Twitter
5
+ module Media
6
+ class Video < Twitter::Identity
7
+ # @return [Array<Integer>]
8
+ attr_reader :indices
9
+ display_uri_attr_reader
10
+ uri_attr_reader :expanded_uri, :media_uri, :media_uri_https, :uri
11
+
12
+ # Returns an array of photo sizes
13
+ #
14
+ # @return [Array<Twitter::Size>]
15
+ def sizes
16
+ @attrs.fetch(:sizes, []).inject({}) do |object, (key, value)|
17
+ object[key] = Size.new(value)
18
+ object
19
+ end
20
+ end
21
+ memoize :sizes
22
+
23
+ # Returns video info
24
+ #
25
+ # @return [Twitter::Media::VideoInfo]
26
+ def video_info
27
+ VideoInfo.new(@attrs[:video_info]) unless @attrs[:video_info].nil?
28
+ end
29
+ memoize :video_info
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,23 @@
1
+ require 'twitter/variant'
2
+
3
+ module Twitter
4
+ module Media
5
+ class VideoInfo < Twitter::Base
6
+ # @return [Array<Integer]
7
+ attr_reader :aspect_ratio
8
+
9
+ # @return [Integer]
10
+ attr_reader :duration_millis
11
+
12
+ # Returns an array of video variants
13
+ #
14
+ # @return [Array<Twitter::Variant>]
15
+ def variants
16
+ @attrs.fetch(:variants, []).map do |variant|
17
+ Variant.new(variant)
18
+ end
19
+ end
20
+ memoize :variants
21
+ end
22
+ end
23
+ end
@@ -1,5 +1,7 @@
1
1
  require 'twitter/factory'
2
+ require 'twitter/media/animated_gif'
2
3
  require 'twitter/media/photo'
4
+ require 'twitter/media/video'
3
5
 
4
6
  module Twitter
5
7
  class MediaFactory < Twitter::Factory
@@ -14,6 +14,10 @@ module Twitter
14
14
  # true
15
15
  # end
16
16
 
17
+ def respond_to?(*)
18
+ true
19
+ end
20
+
17
21
  def instance_of?(klass)
18
22
  fail(TypeError.new('class or module required')) unless klass.is_a?(Class)
19
23
  self.class == klass
@@ -0,0 +1,40 @@
1
+ module Twitter
2
+ class Value
3
+ def self.new(*fields, &block)
4
+ Class.new do
5
+ attr_reader(:hash, *fields)
6
+
7
+ const_set :VALUE_ATTRS, fields
8
+
9
+ define_method(:initialize) do |hash|
10
+ unexpected_keys = hash.keys - self::VALUE_ATTRS
11
+ if unexpected_keys.any?
12
+ fail ArgumentError.new("Unexpected hash keys: #{unexpected_keys}")
13
+ end
14
+
15
+ hash.values_at(*self::VALUE_ATTRS).zip(hash.values) do |field, value|
16
+ instance_variable_set(:"@#{field}", value)
17
+ end
18
+
19
+ @hash = self.class.hash ^ hash.values.hash
20
+
21
+ freeze
22
+ end
23
+
24
+ def ==(other)
25
+ eql?(other)
26
+ end
27
+
28
+ def eql?(other)
29
+ self.class == other.class && values == other.values
30
+ end
31
+
32
+ def values
33
+ self.class::VALUE_ATTRS.map { |field| send(field) }
34
+ end
35
+
36
+ class_eval(&block) if block
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,12 @@
1
+ require 'twitter/base'
2
+
3
+ module Twitter
4
+ class Variant < Twitter::Base
5
+ # @return [Integer]
6
+ attr_reader :bitrate
7
+
8
+ # @return [String]
9
+ attr_reader :content_type
10
+ uri_attr_reader :uri
11
+ end
12
+ end
@@ -1,7 +1,7 @@
1
1
  module Twitter
2
2
  class Version
3
3
  MAJOR = 5
4
- MINOR = 13
4
+ MINOR = 14
5
5
  PATCH = 0
6
6
  PRE = nil
7
7
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twitter
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.13.0
4
+ version: 5.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Michaels-Ober
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2014-11-08 00:00:00.000000000 Z
15
+ date: 2015-02-14 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: addressable
@@ -207,7 +207,10 @@ files:
207
207
  - lib/twitter/identity.rb
208
208
  - lib/twitter/language.rb
209
209
  - lib/twitter/list.rb
210
+ - lib/twitter/media/animated_gif.rb
210
211
  - lib/twitter/media/photo.rb
212
+ - lib/twitter/media/video.rb
213
+ - lib/twitter/media/video_info.rb
211
214
  - lib/twitter/media_factory.rb
212
215
  - lib/twitter/metadata.rb
213
216
  - lib/twitter/null_object.rb
@@ -263,6 +266,8 @@ files:
263
266
  - lib/twitter/tweet.rb
264
267
  - lib/twitter/user.rb
265
268
  - lib/twitter/utils.rb
269
+ - lib/twitter/value.rb
270
+ - lib/twitter/variant.rb
266
271
  - lib/twitter/version.rb
267
272
  - twitter.gemspec
268
273
  homepage: http://sferik.github.com/twitter/
@@ -285,7 +290,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
285
290
  version: 1.3.5
286
291
  requirements: []
287
292
  rubyforge_project:
288
- rubygems_version: 2.2.2
293
+ rubygems_version: 2.4.5
289
294
  signing_key:
290
295
  specification_version: 4
291
296
  summary: A Ruby interface to the Twitter API.