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 +4 -4
- data/CHANGELOG.md +6 -0
- data/lib/twitter/media/animated_gif.rb +8 -0
- data/lib/twitter/media/video.rb +32 -0
- data/lib/twitter/media/video_info.rb +23 -0
- data/lib/twitter/media_factory.rb +2 -0
- data/lib/twitter/null_object.rb +4 -0
- data/lib/twitter/value.rb +40 -0
- data/lib/twitter/variant.rb +12 -0
- data/lib/twitter/version.rb +1 -1
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8d6e26a619945618f7765e590a90debefc4ae1a3
|
4
|
+
data.tar.gz: 704ea457d4e963094a28314c3683ddd36f7565d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9831e99f3e7a8244581cd5328ca118e9180039076ef82d1295c6b219472b26287a85e686b84faa9810bba9fe3e773afb466eccfb7f9e97791336d6b05538d659
|
7
|
+
data.tar.gz: 6e5943dad0b823655e33af044fabb2ba40354baf143c3dce735ef4a0c1ea33f230ac73afd325d48ba1a9e91207f9ab5c37b19d547a15515bb473793f857a0e5c
|
data/CHANGELOG.md
CHANGED
@@ -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,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
|
data/lib/twitter/null_object.rb
CHANGED
@@ -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
|
data/lib/twitter/version.rb
CHANGED
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.
|
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:
|
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.
|
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.
|