omdbapi 0.1.0 → 0.1.1

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: b2de7faaa8d9ad133af6f5dfc803173dd742bfe5
4
- data.tar.gz: cb36660f877d024b1c94860af7938ed4ebbde38a
3
+ metadata.gz: 5fbc5708989f9d4a0c3238cba60519c45c660db3
4
+ data.tar.gz: 5ff47e43fe3546e7cc99861ae6596ffcf78c3a2b
5
5
  SHA512:
6
- metadata.gz: 288e3a4d6ba500124e1ae7d1ed056d7a93ef7df41365298b2579d184344479840223a41208f96a7a0677b668801c1e3e4a1e7d66592b1eb7f0670d66e78bceaf
7
- data.tar.gz: 21509ad0bfee941208fd4acdbdff12a246a0d4f811076e9f4e90a7a387c66eeb8fa3456521c50d24f13d36fd49ce06f78837871a258651e315a588f4f7562c0f
6
+ metadata.gz: 817dcd802df11328e12d0970d74424fc19b33bb8f1a10d61b2927eb79b70253035568a81e23cbe8450d4aef54eecde63efbc2be8d899009aabc36e79a3f663d8
7
+ data.tar.gz: 6568db143c86f0e038a5209882060063d49e151eb4c78e3f6e4a69cc44fc9b7cd7d72345e2e0942c6aad821682db5f4efa5568d7f6f579bce4dbcf16f17e8fe8
data/.gitignore CHANGED
@@ -15,3 +15,4 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+ .DS_Store
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format progress
data/README.md CHANGED
@@ -4,6 +4,12 @@ This gem is (will be) a simple and easy to use wrapper for the [omdbapi.com](htt
4
4
 
5
5
  ## Installation
6
6
 
7
+ ### Requirements
8
+
9
+ * Ruby v1.9.3 or later
10
+
11
+ ### Installing
12
+
7
13
  You can install the gem by adding it your application's Gemfile:
8
14
 
9
15
  ```ruby
@@ -49,12 +55,12 @@ This function will return a Hash with the following information about the title:
49
55
 
50
56
  ### Search
51
57
 
52
- You can search for a title by using the search method:
58
+ You can find a title by using the find method:
53
59
 
54
60
  ```ruby
55
- search = OMDB.search('Star Wars')
61
+ results = OMDB.find('Star Wars')
56
62
  # => [{:title=>"Star Wars", :year=>"1977", :imdb_id=>"tt0076759", :type=>"movie"}, {:title=>"Star Wars: Episode V - The Empire Strikes Back", :year=>"1980", :imdb_id=>"tt0080684", :type=>"movie"}, {:title=>"Star Wars: Episode VI - Return of the Jedi", :year=>"1983", :imdb_id=>"tt0086190", :type=>"movie"}, {:title=>"Star Wars: Episode I - The Phantom Menace", :year=>"1999", :imdb_id=>"tt0120915", :type=>"movie"}, {:title=>"Star Wars: Episode III - Revenge of the Sith", :year=>"2005", :imdb_id=>"tt0121766", :type=>"movie"}, {:title=>"Star Wars: Episode II - Attack of the Clones", :year=>"2002", :imdb_id=>"tt0121765", :type=>"movie"}, {:title=>"Star Wars: The Clone Wars", :year=>"2008", :imdb_id=>"tt1185834", :type=>"movie"}, {:title=>"Star Wars: Clone Wars", :year=>"2003", :imdb_id=>"tt0361243", :type=>"series"}, {:title=>"Star Wars: The Clone Wars", :year=>"2008", :imdb_id=>"tt0458290", :type=>"series"}, {:title=>"The Star Wars Holiday Special", :year=>"1978", :imdb_id=>"tt0193524", :type=>"movie"}]
57
- search.each { |result| puts result.title }
63
+ results.each { |r| puts r.title }
58
64
  # etc...
59
65
  ```
60
66
 
@@ -64,6 +70,19 @@ This method returns an Array of search results. Each search result is a Hash wit
64
70
  :title, :year, :imdb_id, :type
65
71
  ```
66
72
 
73
+ ### Find by IMDb ID
74
+
75
+ You can find a title by it's IMDb id using the id method:
76
+
77
+ ```ruby
78
+ lost = OMDB.id('tt0411008')
79
+ # => {:title=>"Lost", :year=>"2004", :rated=>"TV-14", :released=>"22 Sep 2004", :runtime=>"42 min", :genre=>"Adventure, Drama, Fantasy, Mystery, Sci-Fi, Thriller", :director=>"N/A", :writer=>"J.J. Abrams, Jeffrey Lieber", :actors=>"Matthew Fox, Jorge Garcia, Evangeline Lilly, Naveen Andrews", :plot=>"The survivors of a plane crash are forced to live with each other on a remote island, a dangerous new world that poses unique threats of its own.", :poster=>"http://ia.media-imdb.com/images/M/MV5BMjA3NzMyMzU1MV5BMl5BanBnXkFtZTcwNjc1ODUwMg@@._V1_SX300.jpg", :imdb_rating=>"8.3", :imdb_votes=>"160,182", :imdb_id=>"tt0411008", :type=>"series", :response=>"True"}
80
+ lost.released # => "22 Sep 2004"
81
+ lost.imdb_rating # => "8.3"
82
+ # etc...
83
+ ```
84
+
85
+ This method will return a Hash of the title's properties, exactly as the title method.
67
86
 
68
87
  ## Contributing
69
88
 
@@ -4,12 +4,17 @@ module OMDB
4
4
  include HTTParty
5
5
  base_uri OMDB::Default::API_ENDPOINT
6
6
 
7
- def title(title)
7
+ def title(title, year=nil)
8
8
  get '/', { t: title }
9
9
  end
10
10
 
11
- def search(query)
12
- (get '/', { s: query }).search
11
+ def id(imdb_id)
12
+ return get '/', { i: imdb_id }
13
+ end
14
+
15
+ def find(title)
16
+ results = get '/', { s: title }
17
+ results[:search] ? results[:search] : results
13
18
  end
14
19
 
15
20
  private
@@ -1,3 +1,3 @@
1
1
  module OMDB
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["caseyscarborough@gmail.com"]
11
11
  spec.description = '[In Progress] A wrapper for the omdbapi.com movie API.'
12
12
  spec.summary = 'This gem provides easy access for information retrieval from omdbapi.com.'
13
- spec.homepage = "https://github.com/caseyscarborough/omdb"
13
+ spec.homepage = "https://github.com/caseyscarborough/omdbapi"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
@@ -20,5 +20,6 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.3"
22
22
  spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "rspec"
23
24
  spec.add_dependency 'httparty', '0.11.0'
24
25
  end
@@ -0,0 +1,109 @@
1
+ require 'spec_helper'
2
+
3
+ describe OMDB::Client do
4
+
5
+ it 'should include HTTParty' do
6
+ OMDB::Client.should include(HTTParty)
7
+ end
8
+
9
+ it 'should have the correct API endpoint' do
10
+ OMDB::Client.base_uri.should eq(OMDB::Default::API_ENDPOINT)
11
+ end
12
+
13
+ describe 'methods' do
14
+
15
+ describe 'title' do
16
+ describe 'with a movie that exists' do
17
+ let(:title) { OMDB.title('Star Wars') }
18
+
19
+ it 'should return a hash of movie attributes' do
20
+ title.should be_instance_of Hash
21
+ end
22
+
23
+ it 'should contain a title' do
24
+ title.title.should be_instance_of String
25
+ end
26
+ end
27
+
28
+ describe 'with a movie that doesn''t exist' do
29
+ let(:title) { OMDB.title('lsdfoweirjrpwef323423dsfkip') }
30
+
31
+ it 'should return a hash' do
32
+ title.should be_instance_of Hash
33
+ end
34
+
35
+ it 'should return a hash with a false response' do
36
+ title.response.should eq('False')
37
+ end
38
+
39
+ it 'should return a hash with an error message' do
40
+ title.error.should be_instance_of String
41
+ end
42
+ end
43
+ end
44
+
45
+ describe 'id' do
46
+
47
+ describe 'with a title that exists' do
48
+ let(:title) { OMDB.id('tt0411008') }
49
+
50
+ it 'should return a hash of movie attributes' do
51
+ title.should be_instance_of Hash
52
+ end
53
+
54
+ it 'should contain a title' do
55
+ title.title.should be_instance_of String
56
+ end
57
+ end
58
+
59
+ describe 'with a movie that doesn''t exist' do
60
+ let(:title) { OMDB.id('tt1231230123') }
61
+
62
+ it 'should return a hash' do
63
+ title.should be_instance_of Hash
64
+ end
65
+
66
+ it 'should return a hash with a false response' do
67
+ title.response.should eq('False')
68
+ end
69
+
70
+ it 'should return a hash with an error message' do
71
+ title.error.should be_instance_of String
72
+ end
73
+ end
74
+ end
75
+
76
+ describe 'find' do
77
+
78
+ describe 'with search results' do
79
+ let(:results) { OMDB.find('Star Wars') }
80
+
81
+ it 'should return an array' do
82
+ results.should be_instance_of Array
83
+ end
84
+
85
+ it 'should return an array with hash contents' do
86
+ results[0].should be_instance_of Hash
87
+ end
88
+ end
89
+
90
+ describe 'with no search results' do
91
+ let(:results) { OMDB.find('lsdfoweirjrpwef323423dsfkip') }
92
+
93
+ it 'should return a hash' do
94
+ results.should be_instance_of Hash
95
+ end
96
+
97
+ it 'should return a hash with a false response' do
98
+ results.response.should eq('False')
99
+ end
100
+
101
+ it 'should return a hash with an error message' do
102
+ results.error.should be_instance_of String
103
+ end
104
+ end
105
+ end
106
+
107
+ end
108
+
109
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe OMDB::Default do
4
+
5
+ describe 'Hash#method_missing' do
6
+ let(:hash) { { a: 'a', b: 'b', c: 'c' } }
7
+
8
+ it 'should allow value access through dot notation' do
9
+ hash.a.should eq('a')
10
+ end
11
+ end
12
+
13
+ describe 'String#to_snake_case' do
14
+ it 'should convert strings to snake case' do
15
+ "CamelCasedString".to_snake_case.should eq('camel_cased_string')
16
+ end
17
+ end
18
+
19
+ end
@@ -0,0 +1,13 @@
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # Require this file using `require "spec_helper.rb"` to ensure that it is only
4
+ # loaded once.
5
+ #
6
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
+ require 'omdbapi'
8
+
9
+ RSpec.configure do |config|
10
+ config.treat_symbols_as_metadata_keys_with_true_values = true
11
+ config.run_all_when_everything_filtered = true
12
+ config.filter_run :focus
13
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omdbapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Casey Scarborough
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: httparty
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -60,6 +74,7 @@ extensions: []
60
74
  extra_rdoc_files: []
61
75
  files:
62
76
  - .gitignore
77
+ - .rspec
63
78
  - Gemfile
64
79
  - LICENSE.txt
65
80
  - README.md
@@ -69,7 +84,10 @@ files:
69
84
  - lib/omdbapi/default.rb
70
85
  - lib/omdbapi/version.rb
71
86
  - omdbapi.gemspec
72
- homepage: https://github.com/caseyscarborough/omdb
87
+ - spec/omdbapi/client_spec.rb
88
+ - spec/omdbapi/default_spec.rb
89
+ - spec/spec_helper.rb
90
+ homepage: https://github.com/caseyscarborough/omdbapi
73
91
  licenses:
74
92
  - MIT
75
93
  metadata: {}
@@ -93,4 +111,7 @@ rubygems_version: 2.0.6
93
111
  signing_key:
94
112
  specification_version: 4
95
113
  summary: This gem provides easy access for information retrieval from omdbapi.com.
96
- test_files: []
114
+ test_files:
115
+ - spec/omdbapi/client_spec.rb
116
+ - spec/omdbapi/default_spec.rb
117
+ - spec/spec_helper.rb