now-playing-cli-gem 0.1.0
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 +7 -0
- data/.rspec +2 -0
- data/CODE_OF_CONDUCT.md +13 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +59 -0
- data/LICENSE.txt +21 -0
- data/README.md +28 -0
- data/Rakefile +6 -0
- data/bin/console +10 -0
- data/bin/now-playing +5 -0
- data/bin/setup +7 -0
- data/lib/now_playing.rb +10 -0
- data/lib/now_playing/cli.rb +53 -0
- data/lib/now_playing/movie.rb +47 -0
- data/lib/now_playing/version.rb +3 -0
- data/now-playing-cli-gem.gemspec +28 -0
- data/spec/fixtures/vcr_cassettes/movie.yml +4612 -0
- data/spec/fixtures/vcr_cassettes/now-playing.yml +4114 -0
- data/spec/fixtures/vcr_cassettes/plotsummary.yml +1294 -0
- data/spec/now_playing/movie_spec.rb +71 -0
- data/spec/spec_helper.rb +37 -0
- metadata +169 -0
@@ -0,0 +1,71 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe NowPlaying::Movie do
|
4
|
+
context 'Class Methods' do
|
5
|
+
# If you delete the fixtures or VCR generates new cassettes these tests
|
6
|
+
# will have to be updated based on current values from:
|
7
|
+
# http://www.imdb.com/movies-in-theaters/
|
8
|
+
around(:each) do |example|
|
9
|
+
VCR.use_cassette("now-playing") do
|
10
|
+
example.run
|
11
|
+
end
|
12
|
+
end
|
13
|
+
let(:movies){NowPlaying::Movie.all}
|
14
|
+
|
15
|
+
describe '.all' do
|
16
|
+
it 'returns an array of movies' do
|
17
|
+
expect(movies).to be_an(Array)
|
18
|
+
expect(movies.first).to be_a(NowPlaying::Movie)
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'correctly scrapes names and urls for the movies' do
|
22
|
+
expect(movies.first.name).to eq("The 33 (2015)")
|
23
|
+
expect(movies.first.url).to eq("http://imdb.com/title/tt2006295/")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe '.find' do
|
28
|
+
it 'returns the movie based on position in @@all' do
|
29
|
+
expect(NowPlaying::Movie.find(1)).to eq(movies[0])
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe '.find_by_name' do
|
34
|
+
it 'returns the movie based on the name' do
|
35
|
+
expect(NowPlaying::Movie.find_by_name("The 33")).to eq(movies[0])
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context 'Instance Methods' do
|
41
|
+
subject{NowPlaying::Movie.new("The 33 (2015)", "http://imdb.com/title/tt2006295/")}
|
42
|
+
|
43
|
+
describe '#name' do
|
44
|
+
it 'has a name' do
|
45
|
+
expect(subject.name).to eq("The 33 (2015)")
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe '#url' do
|
50
|
+
it 'has a url' do
|
51
|
+
expect(subject.url).to eq("http://imdb.com/title/tt2006295/")
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
describe '#stars' do
|
56
|
+
it 'has stars based on scraping the main URL' do
|
57
|
+
VCR.use_cassette("movie") do
|
58
|
+
expect(subject.stars).to eq("Antonio Banderas, Rodrigo Santoro, Juliette Binoche")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe '#summary' do
|
64
|
+
it 'has a summary based on scraping the plotsummary URL' do
|
65
|
+
VCR.use_cassette("plotsummary") do
|
66
|
+
expect(subject.summary).to eq("Based on the real-life event, when a gold and copper mine collapses, it traps 33 miners underground for 69 days.")
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'now_playing'
|
2
|
+
require 'vcr'
|
3
|
+
|
4
|
+
VCR.configure do |config|
|
5
|
+
config.cassette_library_dir = "spec/fixtures/vcr_cassettes"
|
6
|
+
config.hook_into :webmock # or :fakeweb
|
7
|
+
end
|
8
|
+
|
9
|
+
RSpec.configure do |config|
|
10
|
+
config.expect_with :rspec do |expectations|
|
11
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
12
|
+
end
|
13
|
+
config.mock_with :rspec do |mocks|
|
14
|
+
mocks.verify_partial_doubles = true
|
15
|
+
end
|
16
|
+
|
17
|
+
config.filter_run :focus
|
18
|
+
config.run_all_when_everything_filtered = true
|
19
|
+
|
20
|
+
config.disable_monkey_patching!
|
21
|
+
|
22
|
+
config.warnings = true
|
23
|
+
|
24
|
+
if config.files_to_run.one?
|
25
|
+
config.default_formatter = 'doc'
|
26
|
+
end
|
27
|
+
|
28
|
+
config.profile_examples = 10
|
29
|
+
|
30
|
+
config.order = :default
|
31
|
+
|
32
|
+
# Seed global randomization in this process using the `--seed` CLI option.
|
33
|
+
# Setting this allows you to use `--seed` to deterministically reproduce
|
34
|
+
# test failures related to randomization by passing the same `--seed` value
|
35
|
+
# as the one that triggered the failure.
|
36
|
+
Kernel.srand config.seed
|
37
|
+
end
|
metadata
ADDED
@@ -0,0 +1,169 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: now-playing-cli-gem
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Avi Flombaum
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-11-15 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.10'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.10'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.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'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: nokogiri
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: vcr
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: webmock
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
description: Movies playing
|
112
|
+
email:
|
113
|
+
- avi@learn.co
|
114
|
+
executables:
|
115
|
+
- now-playing
|
116
|
+
extensions: []
|
117
|
+
extra_rdoc_files: []
|
118
|
+
files:
|
119
|
+
- ".rspec"
|
120
|
+
- CODE_OF_CONDUCT.md
|
121
|
+
- Gemfile
|
122
|
+
- Gemfile.lock
|
123
|
+
- LICENSE.txt
|
124
|
+
- README.md
|
125
|
+
- Rakefile
|
126
|
+
- bin/console
|
127
|
+
- bin/now-playing
|
128
|
+
- bin/setup
|
129
|
+
- lib/now_playing.rb
|
130
|
+
- lib/now_playing/cli.rb
|
131
|
+
- lib/now_playing/movie.rb
|
132
|
+
- lib/now_playing/version.rb
|
133
|
+
- now-playing-cli-gem.gemspec
|
134
|
+
- spec/fixtures/vcr_cassettes/movie.yml
|
135
|
+
- spec/fixtures/vcr_cassettes/now-playing.yml
|
136
|
+
- spec/fixtures/vcr_cassettes/plotsummary.yml
|
137
|
+
- spec/now_playing/movie_spec.rb
|
138
|
+
- spec/spec_helper.rb
|
139
|
+
homepage: https://learn.co
|
140
|
+
licenses:
|
141
|
+
- MIT
|
142
|
+
metadata: {}
|
143
|
+
post_install_message:
|
144
|
+
rdoc_options: []
|
145
|
+
require_paths:
|
146
|
+
- lib
|
147
|
+
- lib/now_playing
|
148
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
|
+
requirements:
|
155
|
+
- - ">="
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
158
|
+
requirements: []
|
159
|
+
rubyforge_project:
|
160
|
+
rubygems_version: 2.4.5.1
|
161
|
+
signing_key:
|
162
|
+
specification_version: 4
|
163
|
+
summary: Movies playing
|
164
|
+
test_files:
|
165
|
+
- spec/fixtures/vcr_cassettes/movie.yml
|
166
|
+
- spec/fixtures/vcr_cassettes/now-playing.yml
|
167
|
+
- spec/fixtures/vcr_cassettes/plotsummary.yml
|
168
|
+
- spec/now_playing/movie_spec.rb
|
169
|
+
- spec/spec_helper.rb
|