yourub 1.1.0 → 1.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1abdb3a08466ff7da5f4ddc52cb6ec2311591f4c
4
- data.tar.gz: 7e507b9abd815340037e56a91ed4f5443f64fb03
3
+ metadata.gz: f4ebd119d0c0ca1c91826ac02c6fd172fc0f9119
4
+ data.tar.gz: 5c4ceed6b992398e35b173e44a3b29f31b065ca0
5
5
  SHA512:
6
- metadata.gz: 1d3d2990a51f5a5df76c24a46ca33c2f03de4f8255be3d2da18459724e8a6f128f5fa2c4c165dce05cdfc89d4f7f987f093a5f0fceef314f30cfaa9ec2cf41ee
7
- data.tar.gz: 759145a2596186cceb2c3a592ab3ec7c8d484224ec35c65ab6e32ed170dfeaeae1d38fefd44ae60021ae48c9867ddd83f69642b407d756bb788bc812bee21e7e
6
+ metadata.gz: 4a460508012396828652e043c2f2bc5f90c61651145a78117e2f962b3a6ad545fe79722c188037f8430802eaa4209f99543b932db574c669aa5b931eb72f31a7
7
+ data.tar.gz: 947f855feac11c2ce095c102dbd01a42898750dae9f3411afb0c2fbf354928c6c5a073b41c5b1b0911c38cd9eebcc1595ca21193cb7251bb4a27d0e213f9a280
data/README.md CHANGED
@@ -73,39 +73,33 @@ client = Yourub::Client.new
73
73
  client.search(query: "aliens")
74
74
  client.videos
75
75
  ```
76
-
77
- ### Extend Info
78
- As default Yourub will give you back few values, example:
79
-
80
- ```ruby
81
- client = Yourub::Client.new
82
- client.search(id: "mN0Dbj-xHY0")
83
- ```
84
- will report id, title, the default thumb, and the url where you can watch the video
76
+ that is the content of the response:
85
77
  ```
86
- [{"id"=>"mN0Dbj-xHY0", "title"=>"GoPro: Hiero Day", "thumb"=>"https://i1.ytimg.com/vi/mN0Dbj-xHY0/default.jpg", "url"=>"https://www.youtube.com/watch?v=mN0Dbj-xHY0"}]
78
+ [{"kind"=>"youtube#video", "etag"=>"\"N5Eg36Gl054SUNiWWc-Su3t5O-k/U6AzLXvcnZt2WFqpnq9_dksV7DA\"", "id"=>"NisCkxU544c", "snippet"=>{"publishedAt"=>"2009-04-05T05:20:10.000Z", "channelId"=>"UCCHcEUksSVKsRDH86j77Ntg", "title"=>"Like A Boss (ft. Seth Rogen) - Uncensored Version", "description"=>"http://www.itunes.com/thelonelyisland\r\n\r\nThe new single from The Lonely Island's debut album \"INCREDIBAD\" In stores now!\r\n\r\nFeaturing Seth Rogen.\r\n\r\nThe Lonely Island is Andy Samberg, Akiva Schaffer & Jorma Taccone.", "thumbnails"=>{"default"=>{"url"=>"https://i1.ytimg.com/vi/NisCkxU544c/default.jpg", "width"=>120, "height"=>90}, "medium"=>{"url"=>"https://i1.ytimg.com/vi/NisCkxU544c/mqdefault.jpg", "width"=>320, "height"=>180}, "high"=>{"url"=>"https://i1.ytimg.com/vi/NisCkxU544c/hqdefault.jpg", "width"=>480, "height"=>360}, "standard"=>{"url"=>"https://i1.ytimg.com/vi/NisCkxU544c/sddefault.jpg", "width"=>640, "height"=>480}, "maxres"=>{"url"=>"https://i1.ytimg.com/vi/NisCkxU544c/maxresdefault.jpg", "width"=>1280, "height"=>720}}, "channelTitle"=>"thelonelyisland", "categoryId"=>"23", "liveBroadcastContent"=>"none"}, "statistics"=>{"viewCount"=>"120176425", "likeCount"=>"594592", "dislikeCount"=>"15121", "favoriteCount"=>"0", "commentCount"=>"208109"}}]
87
79
  ```
88
80
 
89
- To have more values back, use the option `extended_info`
81
+ ### Methods
82
+ `search`, search youtube videos for the given parameters
90
83
  ```ruby
91
84
  client = Yourub::Client.new
92
- client.extended_info = true
93
85
  client.search(id: "NisCkxU544c")
94
86
  ```
95
- It will give you much more information
96
- ```
97
- [{"kind"=>"youtube#video", "etag"=>"\"N5Eg36Gl054SUNiWWc-Su3t5O-k/U6AzLXvcnZt2WFqpnq9_dksV7DA\"", "id"=>"NisCkxU544c", "snippet"=>{"publishedAt"=>"2009-04-05T05:20:10.000Z", "channelId"=>"UCCHcEUksSVKsRDH86j77Ntg", "title"=>"Like A Boss (ft. Seth Rogen) - Uncensored Version", "description"=>"http://www.itunes.com/thelonelyisland\r\n\r\nThe new single from The Lonely Island's debut album \"INCREDIBAD\" In stores now!\r\n\r\nFeaturing Seth Rogen.\r\n\r\nThe Lonely Island is Andy Samberg, Akiva Schaffer & Jorma Taccone.", "thumbnails"=>{"default"=>{"url"=>"https://i1.ytimg.com/vi/NisCkxU544c/default.jpg", "width"=>120, "height"=>90}, "medium"=>{"url"=>"https://i1.ytimg.com/vi/NisCkxU544c/mqdefault.jpg", "width"=>320, "height"=>180}, "high"=>{"url"=>"https://i1.ytimg.com/vi/NisCkxU544c/hqdefault.jpg", "width"=>480, "height"=>360}, "standard"=>{"url"=>"https://i1.ytimg.com/vi/NisCkxU544c/sddefault.jpg", "width"=>640, "height"=>480}, "maxres"=>{"url"=>"https://i1.ytimg.com/vi/NisCkxU544c/maxresdefault.jpg", "width"=>1280, "height"=>720}}, "channelTitle"=>"thelonelyisland", "categoryId"=>"23", "liveBroadcastContent"=>"none"}, "statistics"=>{"viewCount"=>"120176425", "likeCount"=>"594592", "dislikeCount"=>"15121", "favoriteCount"=>"0", "commentCount"=>"208109"}}]
98
- ```
99
87
 
100
- To simply get the number of views for a given video, use `get_views`
88
+ `get_views`
89
+ retrieves the number of views for the given videos id
101
90
  ```ruby
102
91
  client = Yourub::Client.new
103
92
  client.get_views("G2b0OIkTraI")
104
93
  ```
105
94
 
95
+
96
+ To have more values back, use the option `extended_info`
106
97
  ##TODO
107
98
 
108
99
  1. adding a CLI
100
+ 2. the result should be yield, and not saved in an instance variable
101
+ 3. replace GoogleApiClient
102
+ 4. Implementing playlist
109
103
 
110
104
  ## Contributing
111
105
 
data/config/yourub.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  yourub_defaults: &yourub_defaults
2
- developer_key: 'YoUrDevEl0PerKey'
2
+ developer_key: 'YOURDEVELOPERKEY'
3
3
  youtube_api_service_name: 'youtube'
4
4
  youtube_api_version: 'v3'
5
5
  application_name: "yourub"
data/lib/yourub/client.rb CHANGED
@@ -1,19 +1,21 @@
1
+ require 'yourub/rest/api'
2
+ require 'google/api_client'
3
+
1
4
  module Yourub
2
- class Client
5
+ class Client < Google::APIClient
6
+ include Yourub::REST::API
3
7
 
4
8
  attr_reader :videos
5
- attr_accessor :config, :extended_info
9
+ attr_accessor :config
6
10
 
7
11
  def initialize()
8
- @extended_info = false
9
- @categories, @videos = [], []
10
- @count_filter = {}
11
- @api_options= {
12
- :part => 'snippet',
13
- :type => 'video',
14
- :order => 'relevance',
15
- :safeSearch => 'none',
12
+ args = {
13
+ :key => config.developer_key,
14
+ :application_name => config.application_name,
15
+ :application_version => config.application_version,
16
+ :authorization => nil
16
17
  }
18
+ super(args)
17
19
  end
18
20
 
19
21
  def config
@@ -24,178 +26,10 @@ module Yourub
24
26
  Yourub::Validator.available_countries
25
27
  end
26
28
 
27
- def client
28
- @client ||= Google::APIClient.new(
29
- :key => config.developer_key,
30
- :application_name => config.application_name,
31
- :application_version => config.application_version,
32
- :authorization => nil,
33
- )
34
- end
35
-
36
- def youtube
37
- @youtube ||= client.discovered_api(config.youtube_api_service_name,
29
+ def youtube_api
30
+ @youtube_api ||= self.discovered_api(config.youtube_api_service_name,
38
31
  config.youtube_api_version)
39
32
  end
40
33
 
41
- def search(criteria)
42
- begin
43
- @videos = []
44
- @criteria = Yourub::Validator.confirm(criteria)
45
- search_by_criteria
46
- rescue ArgumentError => e
47
- Yourub.logger.error "#{e}"
48
- end
49
- end
50
-
51
- def search_by_criteria
52
- if @criteria.has_key? :id
53
- search_by_id
54
- else
55
- merge_criteria_with_api_options
56
- retrieve_categories
57
- retrieve_videos
58
- end
59
- end
60
-
61
- def search_by_id
62
- params = {
63
- :id => @criteria[:id],
64
- :part => 'snippet,statistics',
65
- }
66
- video_response = client.execute!(
67
- :api_method => youtube.videos.list,
68
- :parameters => params
69
- )
70
- entry = Yourub::Reader.parse_videos(video_response)
71
- add_video_to_search_result(entry.first) unless entry.nil?
72
- end
73
-
74
- def merge_criteria_with_api_options
75
- mappings = {query: :q, max_results: :maxResults, country: :regionCode}
76
- @api_options.merge! @criteria
77
- @api_options.keys.each do |k|
78
- @api_options[ mappings[k] ] = @api_options.delete(k) if mappings[k]
79
- end
80
- end
81
-
82
- def retrieve_categories
83
- if @criteria.has_key? :category
84
- get_categories_for_country(@criteria[:country])
85
- @categories = Yourub::Validator.valid_category(@categories, @criteria[:category])
86
- end
87
- end
88
-
89
- def get_categories_for_country(country)
90
- categories_list = video_categories_list_request(country)
91
- categories_list.data.items.each do |cat_result|
92
- category_name = parse_name(cat_result["snippet"]["title"])
93
- @categories.push(cat_result["id"] => category_name)
94
- end
95
- end
96
-
97
- def retrieve_videos
98
- consume_criteria do |criteria|
99
- begin
100
- req = search_list_request(criteria)
101
- if @extended_info || Yourub::CountFilter.filter
102
- get_details_and_store req
103
- else
104
- videos = Yourub::Reader.parse_videos(req)
105
- videos.each{ |v| add_video_to_search_result(v) }
106
- end
107
- rescue StandardError => e
108
- Yourub.logger.error "Error #{e} retrieving videos for the criteria: #{criteria.to_s}"
109
- end
110
- end
111
- end
112
-
113
- def consume_criteria
114
- to_consume = @api_options
115
- if @criteria[:country]
116
- @criteria[:country].each do |country|
117
- to_consume[:regionCode] = country
118
- consume_categories(to_consume) do |cat|
119
- yield cat
120
- end
121
- end
122
- else
123
- yield to_consume
124
- end
125
- end
126
-
127
- def consume_categories(to_consume)
128
- if @categories.size > 0
129
- @categories.each do |cat|
130
- to_consume[:videoCategoryId] = cat.keys[0].to_i
131
- yield to_consume
132
- end
133
- else
134
- yield to_consume
135
- end
136
- end
137
-
138
- def get_details_and_store(video_list)
139
- video_list.data.items.each do |video_item|
140
- v = videos_list_request video_item.id.videoId
141
- v = Yourub::Reader.parse_videos(v)
142
- add_video_to_search_result(v.first) if v
143
- end
144
- end
145
-
146
- def search_list_request(options)
147
- search_response = client.execute!(
148
- :api_method => youtube.search.list,
149
- :parameters => options
150
- )
151
- end
152
-
153
- def videos_list_request(result_video_id)
154
- params = video_params(result_video_id)
155
- video_response = client.execute!(
156
- :api_method => youtube.videos.list,
157
- :parameters => params
158
- )
159
- end
160
-
161
- def video_categories_list_request(country)
162
- categories_list = client.execute!(
163
- :api_method => youtube.video_categories.list,
164
- :parameters => {"part" => "snippet","regionCode" => country }
165
- )
166
- end
167
-
168
- def video_params(result_video_id)
169
- parameters = {
170
- :id => result_video_id,
171
- :part => 'snippet,statistics,id',
172
- }
173
- unless @extended_info
174
- fields = 'items(id,snippet(title,thumbnails),statistics(viewCount))'
175
- parameters[:fields] = URI::encode(fields)
176
- end
177
- return parameters
178
- end
179
-
180
- def add_video_to_search_result(entry)
181
- video = @extended_info ? entry : Yourub::Reader.parse_entry(entry)
182
- if Yourub::CountFilter.accept?(entry)
183
- @videos.push(video)
184
- end
185
- end
186
-
187
- def parse_name(name)
188
- return name.gsub("/", "-").downcase.gsub(/\s+/, "")
189
- end
190
-
191
- def get_views(id)
192
- request = client.execute!(
193
- :api_method => youtube.videos.list,
194
- :parameters => {:id => id, :part => 'statistics'}
195
- )
196
- v = Yourub::Reader.parse_videos(request)
197
- v ? Yourub::CountFilter.get_views_count(v.first) : nil
198
- end
199
-
200
34
  end
201
35
  end
data/lib/yourub/config.rb CHANGED
@@ -18,4 +18,4 @@ module Yourub
18
18
  end
19
19
 
20
20
  end
21
- end
21
+ end
@@ -41,4 +41,4 @@ module Yourub
41
41
 
42
42
  end
43
43
  end
44
- end
44
+ end
data/lib/yourub/reader.rb CHANGED
@@ -9,7 +9,7 @@ module Yourub
9
9
 
10
10
  def parse_entry(entry)
11
11
  video_id = entry["id"]["videoId"] || entry['id']
12
- founded_video = {
12
+ {
13
13
  'id' => video_id,
14
14
  'title' => entry['snippet']['title'],
15
15
  'thumb' => entry['snippet']['thumbnails']['default']['url'],
@@ -18,4 +18,4 @@ module Yourub
18
18
  end
19
19
  end
20
20
  end
21
- end
21
+ end
@@ -0,0 +1,12 @@
1
+ require 'yourub/rest/search'
2
+
3
+ module Yourub
4
+ module REST
5
+ # @note WIP, the modules will follow the same grouping used in https://developers.google.com/youtube/v3/docs/.
6
+ module API
7
+ # include Yourub::REST::Playlists
8
+ # include Yourub::REST::Channels
9
+ include Yourub::REST::Search
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,30 @@
1
+ module Yourub
2
+ module REST
3
+ class Request
4
+ attr_reader :data, :status
5
+
6
+ # @param client [Yourub::Client]
7
+ # @param resource_type [String]
8
+ # @param method [String]
9
+ # @param params [Hash]
10
+ # @return [Youtube::Request]
11
+ def initialize(client, resource_type, method, params)
12
+ @client = client
13
+ @resource_type = resource_type
14
+ @method = method
15
+ @params = params
16
+ perform
17
+ end
18
+
19
+ def perform
20
+ r = @client.execute!(
21
+ :api_method => @client.youtube_api.send(@resource_type.to_sym).send(@method.to_sym),
22
+ :parameters => @params
23
+ )
24
+ @data = r.data
25
+ @status = r.status
26
+ end
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,159 @@
1
+ require 'yourub/rest/request'
2
+
3
+ module Yourub
4
+ module REST
5
+ module Search
6
+
7
+ def search(criteria)
8
+ begin
9
+ @api_options= {
10
+ :part => 'snippet',
11
+ :type => 'video',
12
+ :order => 'relevance',
13
+ :safeSearch => 'none',
14
+ }
15
+
16
+ @categories, @videos = [], []
17
+ @count_filter = {}
18
+ @criteria = Yourub::Validator.confirm(criteria)
19
+ search_by_criteria
20
+ rescue ArgumentError => e
21
+ Yourub.logger.error "#{e}"
22
+ end
23
+ end
24
+
25
+ def search_by_criteria
26
+ if @criteria.has_key? :id
27
+ search_by_id
28
+ else
29
+ merge_criteria_with_api_options
30
+ retrieve_categories
31
+ retrieve_videos
32
+ end
33
+ end
34
+
35
+ def search_by_id
36
+ params = {
37
+ :id => @criteria[:id],
38
+ :part => 'snippet,statistics',
39
+ }
40
+ video_response = videos_list_request(params)
41
+ entry = Yourub::Reader.parse_videos(video_response)
42
+ add_video_to_search_result(entry.first) unless entry.nil?
43
+ end
44
+
45
+ def merge_criteria_with_api_options
46
+ mappings = {query: :q, max_results: :maxResults, country: :regionCode}
47
+ @api_options.merge! @criteria
48
+ @api_options.keys.each do |k|
49
+ @api_options[ mappings[k] ] = @api_options.delete(k) if mappings[k]
50
+ end
51
+ end
52
+
53
+ def retrieve_categories
54
+ if @criteria.has_key? :category
55
+ get_categories_for_country(@criteria[:country])
56
+ @categories = Yourub::Validator.valid_category(@categories, @criteria[:category])
57
+ end
58
+ end
59
+
60
+ def get_categories_for_country(country)
61
+ param = {"part" => "snippet","regionCode" => country }
62
+ categories_list = video_categories_list_request(param)
63
+ categories_list.data.items.each do |cat_result|
64
+ category_name = parse_name(cat_result["snippet"]["title"])
65
+ @categories.push(cat_result["id"] => category_name)
66
+ end
67
+ end
68
+
69
+ def retrieve_videos
70
+ consume_criteria do |criteria|
71
+ begin
72
+ req = search_list_request(criteria)
73
+ get_details_and_store req
74
+ rescue StandardError => e
75
+ Yourub.logger.error "Error #{e} retrieving videos for the criteria: #{criteria.to_s}"
76
+ end
77
+ end
78
+ end
79
+
80
+ def consume_criteria
81
+ to_consume = @api_options
82
+ if @criteria[:country]
83
+ @criteria[:country].each do |country|
84
+ to_consume[:regionCode] = country
85
+ consume_categories(to_consume) do |cat|
86
+ yield cat
87
+ end
88
+ end
89
+ else
90
+ yield to_consume
91
+ end
92
+ end
93
+
94
+ def consume_categories(to_consume)
95
+ if @categories.size > 0
96
+ @categories.each do |cat|
97
+ to_consume[:videoCategoryId] = cat.keys[0].to_i
98
+ yield to_consume
99
+ end
100
+ else
101
+ yield to_consume
102
+ end
103
+ end
104
+
105
+ def get_details_and_store(video_list)
106
+ video_list.data.items.each do |video_item|
107
+ params = video_params(video_item.id.videoId)
108
+ v = videos_list_request(params)
109
+ v = Yourub::Reader.parse_videos(v)
110
+ add_video_to_search_result(v.first) if v
111
+ end
112
+ end
113
+
114
+ def search_list_request(params)
115
+ send_request("search", "list", params)
116
+ end
117
+
118
+ def videos_list_request(params)
119
+ send_request("videos", "list", params)
120
+ end
121
+
122
+ def video_categories_list_request(params)
123
+ send_request("video_categories", "list", params)
124
+ end
125
+
126
+ def send_request(resource_type, method, params)
127
+ #byebug
128
+ Yourub::REST::Request.new(self, resource_type, method, params)
129
+ end
130
+
131
+ def video_params(result_video_id)
132
+ fields = URI::encode(
133
+ 'items(id,snippet(title,thumbnails),statistics(viewCount))'
134
+ )
135
+ { :id => result_video_id,
136
+ :part => 'snippet,statistics,id',
137
+ :fields => fields }
138
+ end
139
+
140
+ def add_video_to_search_result(entry)
141
+ if Yourub::CountFilter.accept?(entry)
142
+ @videos.push(entry)
143
+ end
144
+ end
145
+
146
+ def parse_name(name)
147
+ return name.gsub("/", "-").downcase.gsub(/\s+/, "")
148
+ end
149
+
150
+ def get_views(id)
151
+ params = {:id => id, :part => 'statistics'}
152
+ request = videos_list_request(params)
153
+ v = Yourub::Reader.parse_videos(request)
154
+ v ? Yourub::CountFilter.get_views_count(v.first) : nil
155
+ end
156
+
157
+ end
158
+ end
159
+ end
@@ -7,7 +7,7 @@ module Yourub
7
7
  'HU','IN','IE','IL','IT','JP','JO','MY','MX','MA','NL','NZ','PE','PH',
8
8
  'PL','RU','SA','SG','ZA','KR','ES','SE','CH','TW','AE','US']
9
9
  ORDERS = ['date', 'rating', 'relevance', 'title', 'videoCount', 'viewCount']
10
- VALID_PARAMS = [:country, :category, :query, :id, :max_results, :count_filter, :order]
10
+ VALID_PARAMS = [:country, :category, :query, :id, :max_results, :count_filter, :order ]
11
11
  MINIMUM_PARAMS = [:country, :category, :query, :id]
12
12
 
13
13
  def confirm(criteria)
@@ -43,7 +43,7 @@ module Yourub
43
43
  end
44
44
 
45
45
  def remove_empty_and_non_valid_params
46
- @criteria.keep_if{|k,v| ( (VALID_PARAMS.include? k) && (v.size > 0)) }
46
+ @criteria.keep_if{|k,v| ( (VALID_PARAMS.include? k) && v.size > 0) }
47
47
  end
48
48
 
49
49
  def keep_only_the_id_if_present
@@ -1,6 +1,6 @@
1
1
  module Yourub
2
2
  MAJOR = 1
3
3
  MINOR = 1
4
- PATCH = 0
4
+ PATCH = 1
5
5
  VERSION = [MAJOR, MINOR, PATCH].compact.join('.')
6
6
  end
data/lib/yourub.rb CHANGED
@@ -2,10 +2,11 @@ require 'json'
2
2
  require 'logger'
3
3
  require 'net/https'
4
4
  require 'open-uri'
5
- require 'google/api_client'
6
5
 
7
6
  require 'yourub/config'
8
7
  require 'yourub/client'
8
+ #require 'yourub/search'
9
+ #require 'yourub/request'
9
10
  require 'yourub/version'
10
11
  require 'yourub/logger'
11
12
  require 'yourub/count_filter'
File without changes
File without changes
data/spec/helper.rb ADDED
@@ -0,0 +1,26 @@
1
+ #require 'webmock/rspec'
2
+
3
+ #WebMock.disable_net_connect!(allow_localhost: true)
4
+ RSpec.configure do |c|
5
+ c.filter_run_including :focus => true
6
+ end
7
+
8
+ def a_get(path)
9
+ a_request(:get, Yourub::REST::Request::BASE_URL + path)
10
+ end
11
+
12
+ def stub_get(path)
13
+ stub_request(:get, Yourub::REST::Request::BASE_URL + path)
14
+ end
15
+
16
+ def capture_warning
17
+ begin
18
+ old_stderr = $stderr
19
+ $stderr = StringIO.new
20
+ yield
21
+ result = $stderr.string
22
+ ensure
23
+ $stderr = old_stderr
24
+ end
25
+ result
26
+ end
@@ -0,0 +1,26 @@
1
+ #WebMock.disable_net_connect!(allow_localhost: true)
2
+ require 'webmock/rspec'
3
+
4
+ RSpec.configure do |c|
5
+ c.filter_run_including :focus => true
6
+ end
7
+
8
+ def a_get(path)
9
+ a_request(:get, Yourub::REST::Request::BASE_URL + path)
10
+ end
11
+
12
+ def stub_get(path)
13
+ stub_request(:get, Yourub::REST::Request::BASE_URL + path)
14
+ end
15
+
16
+ def capture_warning
17
+ begin
18
+ old_stderr = $stderr
19
+ $stderr = StringIO.new
20
+ yield
21
+ result = $stderr.string
22
+ ensure
23
+ $stderr = old_stderr
24
+ end
25
+ result
26
+ end
@@ -1,4 +1,6 @@
1
1
  require 'yourub'
2
+ #require 'byebug'
3
+ #require_relative '../spec_helper'
2
4
 
3
5
  describe Yourub::Client do
4
6
 
@@ -14,10 +16,9 @@ describe Yourub::Client do
14
16
  expect(subject.countries).to be_a_kind_of(Array)
15
17
  end
16
18
 
17
- it "retrieves more infos with the option extended_info = true" do
19
+ it "retrieves more infos with the option" do
18
20
  filter = {views: ">= 100"}
19
- subject.extended_info = true
20
- subject.search(country: "US", category: "Sports", count_filter: filter)
21
+ subject.search(country: "US", category: "Sports", count_filter: filter, extended_info: true)
21
22
  expect(subject.videos.first.has_key? "statistics").to be_true
22
23
  end
23
24
 
@@ -77,4 +78,4 @@ describe Yourub::Client do
77
78
  end
78
79
  end
79
80
 
80
- end
81
+ end
data/yourub.gemspec CHANGED
@@ -24,5 +24,6 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency "byebug", "~> 3.1"
25
25
  spec.add_development_dependency "rake", "~> 10.1"
26
26
  spec.add_development_dependency "rspec", "~> 2.14"
27
+ #spec.add_development_dependency "webmock", "~> 1.20"
27
28
 
28
29
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yourub
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Davide Prati
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-24 00:00:00.000000000 Z
11
+ date: 2014-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-api-client
@@ -118,11 +118,18 @@ files:
118
118
  - lib/yourub/logger.rb
119
119
  - lib/yourub/railtie.rb
120
120
  - lib/yourub/reader.rb
121
+ - lib/yourub/rest/api.rb
122
+ - lib/yourub/rest/request.rb
123
+ - lib/yourub/rest/search.rb
121
124
  - lib/yourub/validator.rb
122
125
  - lib/yourub/version.rb
123
- - spec/client_spec.rb
124
- - spec/count_filter_spec.rb
125
- - spec/validator_spec.rb
126
+ - spec/fixtures/categories.json
127
+ - spec/fixtures/category.json
128
+ - spec/helper.rb
129
+ - spec/spec_helper.rb
130
+ - spec/yourub/client_spec.rb
131
+ - spec/yourub/count_filter_spec.rb
132
+ - spec/yourub/validator_spec.rb
126
133
  - yourub.gemspec
127
134
  - yourub.sublime-project
128
135
  homepage: https://github.com/edap/yourub
@@ -150,6 +157,10 @@ signing_key:
150
157
  specification_version: 4
151
158
  summary: Yourub is a gem that search videos on youtebe using the YouTube API v3
152
159
  test_files:
153
- - spec/client_spec.rb
154
- - spec/count_filter_spec.rb
155
- - spec/validator_spec.rb
160
+ - spec/fixtures/categories.json
161
+ - spec/fixtures/category.json
162
+ - spec/helper.rb
163
+ - spec/spec_helper.rb
164
+ - spec/yourub/client_spec.rb
165
+ - spec/yourub/count_filter_spec.rb
166
+ - spec/yourub/validator_spec.rb