yourub 1.0.4 → 1.0.5

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: 5a837f36e2f88084e6c3cef0ebf1ae93bf2bb856
4
- data.tar.gz: a65082a176e99de6ef63b21faf295b7f0aea3c50
3
+ metadata.gz: 50484cd54ec618de42e1bc3159c5d38b2926f66d
4
+ data.tar.gz: 0bd8f7e973ee94ddf8a55d8be05a7165c795c519
5
5
  SHA512:
6
- metadata.gz: 4dda7c152233c2997df0a41d9f55f539132f0cee15c1e81a7eb5f7f9d265f548e302771825a534b67e402c07e18afd3346d64eac6e4c69620a68ea1a7add178b
7
- data.tar.gz: d107046ec38b048343ff2825ed1e2c208c7a1c7bb2ef21514876f7f3affb0337256f1c49ad2d4a804b8c1d638beaf7cbac9834183b031ff5465548285c27d08a
6
+ metadata.gz: 55da616aafeb6704d14d99d7f09f545088a2b780cd9334019fb67befd0f792e83e792aeee6c9b04cc66f34ec4a0bc1598eda34e477204b87f061a1c567671681
7
+ data.tar.gz: 46516c6624186015d2f0590dc6e40f107f2a80f6fe4bd8551e4cf4843f6c15cc53567d89463eaef04d21ffae1d55ff6c7bed6f0050d5063199ae86b8d2100e66
data/README.md CHANGED
@@ -43,14 +43,16 @@ If you are using rails, create a app/config/yourub.yml file as follow:
43
43
 
44
44
  `:max_results` Integer, between 1 and 50
45
45
 
46
+ `:order` String, one of these: 'date', 'rating', 'relevance', 'title', 'videocount', 'viewcount'. The default one is `'relevance'`
47
+
46
48
  It's necessary at least one of this parameters to start a search: `:country`, `:category`, `:query`, `:id`
47
49
 
48
50
  ### Examples
49
51
 
50
- For example, to find videos in the category "sports" in the country "de"
52
+ For example, to find the most recent videos in the category "sports" in Germany
51
53
  ```ruby
52
54
  client = Yourub::Client.new
53
- client.search(country: "DE", category: "sports")
55
+ client.search(country: "DE", category: "sports", order: 'date')
54
56
  client.videos
55
57
  ```
56
58
 
@@ -88,7 +90,6 @@ It will give you much more information
88
90
  ##TODO
89
91
 
90
92
  1. adding a CLI
91
- 2. add `:order` in the search criteria
92
93
 
93
94
  ## Contributing
94
95
 
data/lib/yourub/client.rb CHANGED
@@ -11,7 +11,7 @@ module Yourub
11
11
  :part => 'snippet',
12
12
  :type => 'video',
13
13
  :eventType => 'completed',
14
- :order => 'date',
14
+ :order => 'relevance',
15
15
  :safeSearch => 'none',
16
16
  }
17
17
  end
@@ -140,6 +140,7 @@ module Yourub
140
140
  end
141
141
 
142
142
  def search_list_request(options)
143
+ byebug
143
144
  search_response = client.execute!(
144
145
  :api_method => youtube.search.list,
145
146
  :parameters => options
@@ -2,22 +2,23 @@ module Yourub
2
2
  module Validator
3
3
  class << self
4
4
 
5
- DEFAULT_COUNTRY = "US" #if not given, a country it's necessary to retrieve a categories list
6
- COUNTRIES = [
7
- 'AR','AU','AT','BE','BR','CA','CL','CO','CZ','EG','FR','DE','GB','HK',
8
- 'HU','IN','IE','IL','IT','JP','JO','MY','MX','MA','NL','NZ','PE','PH',
9
- 'PL','RU','SA','SG','ZA','KR','ES','SE','CH','TW','AE','US']
10
-
11
- VALID_PARAMS = [:country, :category, :query, :id, :max_results, :count_filter]
12
- MINIMUM_PARAMS = [:country, :category, :query, :id]
5
+ DEFAULT_COUNTRY = "US"
6
+ COUNTRIES = [ 'AR','AU','AT','BE','BR','CA','CL','CO','CZ','EG','FR','DE','GB','HK',
7
+ 'HU','IN','IE','IL','IT','JP','JO','MY','MX','MA','NL','NZ','PE','PH',
8
+ 'PL','RU','SA','SG','ZA','KR','ES','SE','CH','TW','AE','US']
9
+ ORDERS = ['date', 'rating', 'relevance', 'title', 'videocount', 'viewcount']
10
+ VALID_PARAMS = [:country, :category, :query, :id, :max_results, :count_filter, :order]
11
+ MINIMUM_PARAMS = [:country, :category, :query, :id]
13
12
 
14
13
  def confirm(criteria)
15
14
  valid_format?(criteria)
16
15
  @criteria = symbolize_keys(criteria)
16
+
17
17
  remove_empty_and_non_valid_params
18
18
  minimum_param_present?
19
19
 
20
20
  keep_only_the_id_if_present
21
+ validate_order
21
22
  countries_to_array
22
23
  add_default_country_if_category_is_present
23
24
  validate_countries
@@ -25,10 +26,6 @@ module Yourub
25
26
  @criteria
26
27
  end
27
28
 
28
- def available_countries
29
- COUNTRIES
30
- end
31
-
32
29
  def symbolize_keys(hash)
33
30
  hash.inject({}){|result, (key, value)|
34
31
  new_key = case key
@@ -89,6 +86,14 @@ module Yourub
89
86
  end
90
87
  end
91
88
 
89
+ def validate_order
90
+ if @criteria.has_key? :order
91
+ raise ArgumentError.new(
92
+ "the given order is not in the available ones: #{ORDERS.join(',')}"
93
+ ) unless( ORDERS.include? @criteria[:order] )
94
+ end
95
+ end
96
+
92
97
  def validate_countries
93
98
  if @criteria.has_key? :country
94
99
  raise ArgumentError.new(
@@ -105,6 +110,9 @@ module Yourub
105
110
  )
106
111
  end
107
112
 
113
+ def available_countries
114
+ COUNTRIES
115
+ end
108
116
  end
109
117
  end
110
118
  end
@@ -1,6 +1,6 @@
1
1
  module Yourub
2
2
  MAJOR = 1
3
3
  MINOR = 0
4
- PATCH = 4
4
+ PATCH = 5
5
5
  VERSION = [MAJOR, MINOR, PATCH].compact.join('.')
6
6
  end
data/spec/client_spec.rb CHANGED
@@ -27,6 +27,11 @@ describe Yourub::Client do
27
27
  expect(subject.videos).to be_a_kind_of(Array)
28
28
  end
29
29
 
30
+ it "accept an 'order' parameter within the others" do
31
+ subject.search(country: "US", category: "Sports", order: 'date')
32
+ expect(subject.videos).to be_a_kind_of(Array)
33
+ end
34
+
30
35
  it "retrieves 5 videos for each given category" do
31
36
  subject.search(country: "US, DE", category: "Sports", max_results: 5)
32
37
  expect(subject.videos.count).to eq(10)
@@ -8,7 +8,7 @@ describe Yourub::Validator do
8
8
 
9
9
  context "no matter if the crteria has old 'key' => 'val' or key: val sintax" do
10
10
  let(:criteria) { {"country" => 'US', "category" => 'Sport'} }
11
- it "return criteria including nation but excluding the city" do
11
+ it "return the criteria in the sym: val format" do
12
12
  expect(subject).to eq({country: ['US'], category: 'Sport'})
13
13
  end
14
14
  end
@@ -20,6 +20,13 @@ describe Yourub::Validator do
20
20
  end
21
21
  end
22
22
 
23
+ context "with an invalid :order value" do
24
+ let(:criteria) { {order: 'banane', query: 'roberto baggio'} }
25
+ it 'raise an argument error' do
26
+ expect(lambda{subject}).to raise_error(ArgumentError)
27
+ end
28
+ end
29
+
23
30
  context "with a given category without a country" do
24
31
  let(:criteria) { {country: '', category: 'Sport'} }
25
32
  it "add the default country" do
data/yourub.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["lastexxit@gmail.com "]
11
11
  spec.description = %q{Youtube API v3 parser}
12
12
  spec.summary = %q{Yourub is a gem that search videos on youtebe using the YouTube API v3}
13
- spec.homepage = "http://edapx.com"
13
+ spec.homepage = "https://github.com/edap/yourub"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
@@ -23,4 +23,5 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "bundler", "~> 1.3"
24
24
  spec.add_development_dependency "rake", "~> 10.1"
25
25
  spec.add_development_dependency "rspec", "~> 2.14"
26
+
26
27
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yourub
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Davide Prati
@@ -111,7 +111,7 @@ files:
111
111
  - spec/validator_spec.rb
112
112
  - yourub.gemspec
113
113
  - yourub.sublime-project
114
- homepage: http://edapx.com
114
+ homepage: https://github.com/edap/yourub
115
115
  licenses:
116
116
  - MIT
117
117
  metadata: {}