imba 0.0.1 → 0.0.2
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 +4 -4
- data/.gitignore +3 -1
- data/README.md +20 -8
- data/Rakefile +13 -0
- data/db/database.yml +4 -0
- data/db/migrate/001_create_movies.rb +15 -0
- data/imba.gemspec +4 -0
- data/lib/imba.rb +10 -0
- data/lib/imba/cli.rb +13 -1
- data/lib/imba/data_store.rb +17 -73
- data/lib/imba/movie.rb +20 -3
- data/lib/imba/movie_list.rb +58 -27
- data/lib/imba/version.rb +1 -1
- data/screens/example.png +0 -0
- data/spec/data_store_spec.rb +0 -41
- data/spec/movie_list_spec.rb +0 -7
- data/spec/movie_spec.rb +7 -1
- data/spec/spec_helper.rb +23 -6
- metadata +61 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d46dce5c9679657e961bfb660b18661c9a45e146
|
4
|
+
data.tar.gz: 04b2ed0090f31ead4f8bef3a211c7036c4de4034
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ae8243cc64ffc7fd59df8bde92e3bdac4b24b5d2346622fb7c56da27ab6b3742a017fbe4e7021e58dce2bf1ed0d9c7f481c8339e62fed303fec402fed37ee9ce
|
7
|
+
data.tar.gz: 0fcea6c4f8c47860980bf2c31676ecee1faed54cd982edca030bbb11aa2188983901979aaff7430d0120194c85ab0ff73f47007e79c9a1b4c27d11703e578d64
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -5,21 +5,33 @@
|
|
5
5
|
|
6
6
|
## Todo:
|
7
7
|
|
8
|
+
- [x] build a mess and refactor later :)
|
8
9
|
- [x] init .imba-store
|
9
10
|
- [x] persistence datastore
|
10
11
|
- [x] sync: get current directory list (movie names)
|
11
|
-
- [ ] rescue ".imba does not exist (PStore::Error)"
|
12
|
-
- [ ] place names in queue w/o .imba-meta
|
13
|
-
- [ ] pop movie and search imdb
|
14
|
-
- [ ] get first item
|
15
12
|
- [x] ask for updating movie
|
16
|
-
- [x] rename
|
17
|
-
- [
|
18
|
-
- [
|
13
|
+
- [x] rename directory
|
14
|
+
- [x] cleanup movie titles, remove crap like (I)
|
15
|
+
- [x] synching stuff with progressbar (downloading all the movies)
|
16
|
+
- [x] refactor to use active_record instead of datastore for movies
|
17
|
+
- [ ] underscore all the symbols
|
18
|
+
- [ ] catch errors in cli
|
19
|
+
- [ ] get/send different name when false match
|
20
|
+
- [ ] add possibility to update
|
21
|
+
- [ ] what's up with folders which were deleted but are still in the db?
|
22
|
+
- [ ] add tags to handle genres
|
23
|
+
- [ ] database cleaner
|
24
|
+
- [ ] fix utf-8 issues
|
19
25
|
- [ ] list movies by rating | genre | etc
|
20
26
|
- [ ] print imba-store
|
21
|
-
- [ ] play movie # on ATV
|
22
27
|
- [ ] maybe document code with yard
|
28
|
+
- [ ] decouple movie (objectify representation)
|
29
|
+
- [ ] play movie # on ATV (at least open folder or send to vlc)
|
30
|
+
|
31
|
+
|
32
|
+
## Impression
|
33
|
+
|
34
|
+

|
23
35
|
|
24
36
|
|
25
37
|
## Installation
|
data/Rakefile
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
require 'bundler/gem_tasks'
|
2
2
|
require 'rspec/core/rake_task'
|
3
|
+
require 'active_record'
|
4
|
+
require 'yaml'
|
5
|
+
require 'logger'
|
3
6
|
|
4
7
|
RSpec::Core::RakeTask.new(:spec)
|
5
8
|
|
@@ -10,3 +13,13 @@ task check: :spec do
|
|
10
13
|
system 'rubocop'
|
11
14
|
system 'flog lib'
|
12
15
|
end
|
16
|
+
|
17
|
+
desc 'migrate database'
|
18
|
+
task migrate: :environment do
|
19
|
+
ActiveRecord::Migrator.migrate('db/migrate', ENV['VERSION'] ? ENV['VERSION'].to_i : nil)
|
20
|
+
end
|
21
|
+
|
22
|
+
task :environment do
|
23
|
+
ActiveRecord::Base.establish_connection(YAML.load(File.open('db/database.yml')))
|
24
|
+
ActiveRecord::Base.logger = Logger.new(File.open('db/database.log', 'a'))
|
25
|
+
end
|
data/db/database.yml
ADDED
data/imba.gemspec
CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency 'rake'
|
24
24
|
spec.add_development_dependency 'rspec', '~> 2.14.1'
|
25
25
|
spec.add_development_dependency 'rspec-pride', '~> 2.2.0'
|
26
|
+
spec.add_development_dependency 'database_cleaner', '~> 1.2.0'
|
26
27
|
spec.add_development_dependency 'guard-rspec', '~> 4.2.3'
|
27
28
|
spec.add_development_dependency 'pry', '~> 0.9.12.4'
|
28
29
|
spec.add_development_dependency 'pry-rescue', '~> 1.2.0'
|
@@ -31,4 +32,7 @@ Gem::Specification.new do |spec|
|
|
31
32
|
spec.add_development_dependency 'flog'
|
32
33
|
|
33
34
|
spec.add_runtime_dependency 'imdb', '~> 0.8.0'
|
35
|
+
spec.add_runtime_dependency 'activerecord', '~> 4.0.1'
|
36
|
+
spec.add_runtime_dependency 'sqlite3', '~> 1.3.8'
|
37
|
+
spec.add_runtime_dependency 'ruby-progressbar', '~> 1.4.0'
|
34
38
|
end
|
data/lib/imba.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'active_record'
|
3
|
+
require 'yaml'
|
1
4
|
require 'imba/version'
|
2
5
|
require 'imba/cli'
|
3
6
|
require 'imba/colors'
|
@@ -9,4 +12,11 @@ require 'imdb'
|
|
9
12
|
module Imba
|
10
13
|
PATH ||= Dir.pwd
|
11
14
|
DIRECTORY = "#{PATH}/.imba"
|
15
|
+
|
16
|
+
ActiveRecord::Base.establish_connection(
|
17
|
+
adapter: 'sqlite3',
|
18
|
+
database: "#{DIRECTORY}/data.sqlite3",
|
19
|
+
pool: 5,
|
20
|
+
timeout: 5000
|
21
|
+
)
|
12
22
|
end
|
data/lib/imba/cli.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# encoding: utf-8
|
1
2
|
require 'optparse'
|
2
3
|
|
3
4
|
module Imba
|
@@ -14,6 +15,7 @@ module Imba
|
|
14
15
|
else
|
15
16
|
"#{PATH}/.imba".tap { |dir| FileUtils.mkdir_p(dir) }
|
16
17
|
Imba::DataStore.init
|
18
|
+
Imba::DataStore.migrate
|
17
19
|
end
|
18
20
|
exit
|
19
21
|
end
|
@@ -28,6 +30,16 @@ module Imba
|
|
28
30
|
exit
|
29
31
|
end
|
30
32
|
|
33
|
+
opts.on('-s', '--synch', 'Scan movies and update database') do
|
34
|
+
Imba::MovieList.new.synch
|
35
|
+
exit
|
36
|
+
end
|
37
|
+
|
38
|
+
opts.on('-l', '--list', 'List all your movies') do
|
39
|
+
stdout.puts Imba::Movie.list
|
40
|
+
exit
|
41
|
+
end
|
42
|
+
|
31
43
|
opts.on('-v', '--version', 'Show current version') do
|
32
44
|
stdout.puts "IMBA #{Imba::VERSION}"
|
33
45
|
exit
|
@@ -38,7 +50,7 @@ module Imba
|
|
38
50
|
exit
|
39
51
|
end
|
40
52
|
|
41
|
-
opts.on('-e', 'execute raw ruby in the "Imba::*" scope') do
|
53
|
+
opts.on('-e', 'execute raw ruby in the "Imba::*" scope (just for dev purpose, will be removed soon!)') do
|
42
54
|
stdout.puts eval("Imba::#{argv[0]}")
|
43
55
|
exit
|
44
56
|
end
|
data/lib/imba/data_store.rb
CHANGED
@@ -1,82 +1,26 @@
|
|
1
|
-
require 'pstore'
|
2
|
-
|
3
1
|
module Imba
|
4
2
|
module DataStore
|
5
3
|
class << self
|
6
|
-
attr_reader :data
|
7
|
-
attr_writer :path
|
8
|
-
|
9
4
|
def init
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
def []=(key, value)
|
29
|
-
data_store.transaction { @data[key] = value }
|
30
|
-
end
|
31
|
-
|
32
|
-
def all
|
33
|
-
data_store.transaction(true) { @data.roots }
|
34
|
-
end
|
35
|
-
|
36
|
-
def to_hash
|
37
|
-
Imba::DataStore.all.each_with_object({}) { |id, hsh| hsh[id] = Imba::DataStore[id] }
|
38
|
-
end
|
39
|
-
|
40
|
-
def to_a
|
41
|
-
Imba::DataStore.all.each_with_object([]) { |id, ary| ary << "#{id}: #{Imba::DataStore[id]}" }
|
42
|
-
end
|
43
|
-
|
44
|
-
def transaction
|
45
|
-
data_store.transaction do
|
46
|
-
yield @data
|
47
|
-
@data.commit
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def key?(key)
|
52
|
-
data_store.transaction(true) { @data.root?(key) }
|
53
|
-
end
|
54
|
-
|
55
|
-
def delete(*keys)
|
56
|
-
data_store.transaction do
|
57
|
-
keys.flatten.each { |key| @data.delete(key) }
|
58
|
-
@data.commit
|
5
|
+
ActiveRecord::Base.establish_connection(
|
6
|
+
adapter: 'sqlite3',
|
7
|
+
database: "#{DIRECTORY}/data.sqlite3",
|
8
|
+
pool: 5,
|
9
|
+
timeout: 5000
|
10
|
+
)
|
11
|
+
end
|
12
|
+
|
13
|
+
def migrate
|
14
|
+
ActiveRecord::Schema.define do
|
15
|
+
create_table :movies do |t|
|
16
|
+
t.integer :uniq_id
|
17
|
+
t.string :name
|
18
|
+
t.string :year
|
19
|
+
t.text :genres
|
20
|
+
t.float :rating
|
21
|
+
end
|
59
22
|
end
|
60
23
|
end
|
61
|
-
|
62
|
-
def clear
|
63
|
-
delete(all)
|
64
|
-
end
|
65
|
-
|
66
|
-
def inspect
|
67
|
-
data_store
|
68
|
-
"#<#{name}:#{ruby_like_object_id} #{instance_vars}>"
|
69
|
-
end
|
70
|
-
|
71
|
-
private
|
72
|
-
|
73
|
-
def ruby_like_object_id
|
74
|
-
"0x#{(object_id << 1).to_s(16)}"
|
75
|
-
end
|
76
|
-
|
77
|
-
def instance_vars
|
78
|
-
instance_variables.map { |v| "#{v}=#{instance_variable_get(v).inspect}" }.join(', ')
|
79
|
-
end
|
80
24
|
end
|
81
25
|
end
|
82
26
|
end
|
data/lib/imba/movie.rb
CHANGED
@@ -1,7 +1,24 @@
|
|
1
1
|
module Imba
|
2
|
-
class Movie
|
3
|
-
|
4
|
-
|
2
|
+
class Movie < ActiveRecord::Base
|
3
|
+
include Colors
|
4
|
+
serialize :genres, Array
|
5
|
+
|
6
|
+
scope :list, -> { order(name: :asc) }
|
7
|
+
scope :top, ->(n = 25) { order(rating: :desc).limit(n) }
|
8
|
+
scope :year, ->(year = Time.now.year) { where(year: year) }
|
9
|
+
scope :genre, ->(genre = nil) { where('genres LIKE ?', "%#{genre}%") }
|
10
|
+
|
11
|
+
def to_s
|
12
|
+
terminal_width = `tput cols`
|
13
|
+
column = terminal_width.to_i / 2
|
14
|
+
|
15
|
+
''.tap do |s|
|
16
|
+
s << "#{sprintf('%-9s', uniq_id)} #{green(name)}".ljust(column)
|
17
|
+
s << ' ' + magenta("(#{year})")
|
18
|
+
s << ' ' + red("#{rating}/10")
|
19
|
+
s << ' ' + yellow(genres)
|
20
|
+
s.rjust(column)
|
21
|
+
end
|
5
22
|
end
|
6
23
|
end
|
7
24
|
end
|
data/lib/imba/movie_list.rb
CHANGED
@@ -1,52 +1,83 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'thread'
|
3
|
+
require 'ruby-progressbar'
|
4
|
+
|
1
5
|
module Imba
|
2
6
|
class MovieList
|
3
7
|
include Colors
|
4
8
|
attr_reader :movies
|
9
|
+
attr_accessor :directory_queue, :movie_queue
|
10
|
+
|
11
|
+
Diff = Struct.new(:directory_name, :movie_title, :result)
|
5
12
|
|
6
13
|
def initialize
|
7
14
|
@movies = Movie.all
|
15
|
+
@directory_queue = Queue.new
|
16
|
+
@movie_queue = Queue.new
|
8
17
|
end
|
9
18
|
|
10
19
|
def movie_dirs
|
11
|
-
# don't belong here...
|
12
|
-
# get movie names (dirs)
|
13
20
|
@movie_dirs ||= Dir['*'].select { |f| File.directory? f }
|
14
21
|
end
|
15
22
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
# @movie_dirs.each { |d| FileUtils.cd(d) { FileUtils.touch ".hello" } }
|
20
|
-
|
23
|
+
#
|
24
|
+
# TODO: make it work first, refactor later (for even more fun!)
|
25
|
+
#
|
21
26
|
def synch
|
22
27
|
prompt = '(enter "y" to confirm or anything else to continue)'
|
23
|
-
|
28
|
+
indexed_movies = Movie.pluck(:uniq_id)
|
29
|
+
p = ProgressBar.create(title: 'Scanning your movies', total: movie_dirs.length)
|
30
|
+
skipped = []
|
31
|
+
|
32
|
+
# populate queue
|
24
33
|
movie_dirs.each do |directory_name|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
34
|
+
FileUtils.cd(directory_name) do
|
35
|
+
if File.exist?('.imba') && File.open('.imba') { |f| indexed_movies.include?(f.read.to_i) }
|
36
|
+
skipped << directory_name
|
37
|
+
p.increment
|
38
|
+
else
|
39
|
+
directory_queue.push(directory_name)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# download all the movies
|
45
|
+
until directory_queue.empty?
|
46
|
+
directory_name = directory_queue.pop
|
47
|
+
result = Imdb::Movie.search(directory_name).first
|
48
|
+
movie_title = result.title.gsub(/\(\d+\)|\(.*\)/, '').strip.force_encoding('UTF-8')
|
49
|
+
movie_queue.push Diff.new(directory_name, movie_title, result)
|
50
|
+
p.increment
|
51
|
+
end
|
29
52
|
|
30
|
-
|
53
|
+
# puts foundings
|
54
|
+
until movie_queue.empty?
|
55
|
+
diff = movie_queue.pop
|
31
56
|
# update movie name? (folder)
|
32
|
-
if directory_name != movie_title
|
33
|
-
puts "change #{red(directory_name)} => #{green(movie_title)}? \n#{prompt}"
|
34
|
-
FileUtils.mv(directory_name, movie_title) if STDIN.gets.strip.downcase == 'y'
|
57
|
+
if diff.directory_name != diff.movie_title
|
58
|
+
STDOUT.puts "change #{red(diff.directory_name)} => #{green(diff.movie_title)}? \n#{prompt}"
|
59
|
+
FileUtils.mv(diff.directory_name, movie_title) if STDIN.gets.strip.downcase == 'y'
|
35
60
|
end
|
36
61
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
62
|
+
# create movie from result
|
63
|
+
STDOUT.puts "save #{green(diff.movie_title)}? \n#{prompt}"
|
64
|
+
if STDIN.gets.strip.downcase == 'y'
|
65
|
+
movie = Movie.create(
|
66
|
+
uniq_id: diff.result.id,
|
67
|
+
name: diff.movie_title,
|
68
|
+
year: diff.result.year,
|
69
|
+
genres: diff.result.genres.map { |g| g.downcase.to_sym },
|
70
|
+
rating: Float(diff.result.rating)
|
71
|
+
)
|
72
|
+
FileUtils.cd(diff.movie_title) do
|
73
|
+
File.open('.imba', 'w+') { |f| f.write(movie.uniq_id) }
|
74
|
+
end
|
75
|
+
STDOUT.puts cyan("#{movie.to_s}\n")
|
42
76
|
end
|
43
|
-
|
44
|
-
# ask if founding is correct
|
45
|
-
# write .imdb_uniq_id in movie folder
|
46
|
-
# save movie name and imdb_uniq_id in DataStore[:movies]
|
47
|
-
# or serialize hole imdb movie object?!
|
48
77
|
end
|
49
|
-
|
78
|
+
|
79
|
+
skipped.each { |skip| STDOUT.puts yellow("skipped: #{skip}") }
|
80
|
+
STDOUT.puts "\ndone"
|
50
81
|
end
|
51
82
|
end
|
52
83
|
end
|
data/lib/imba/version.rb
CHANGED
data/screens/example.png
ADDED
Binary file
|
data/spec/data_store_spec.rb
CHANGED
@@ -3,46 +3,5 @@ require 'spec_helper'
|
|
3
3
|
module Imba
|
4
4
|
describe DataStore do
|
5
5
|
|
6
|
-
describe '#inspect' do
|
7
|
-
subject { Imba::DataStore.inspect }
|
8
|
-
it { expect(subject).to include('#<Imba::DataStore:0x') }
|
9
|
-
it { expect(subject).to include(Imba::DataStore.path) }
|
10
|
-
it { expect(subject).to include('/tmp/.imba_test/test_data.pstore') }
|
11
|
-
it { expect(subject).to include('@data=#<PStore:') }
|
12
|
-
it { expect(subject).to include('@ultra_safe=true') }
|
13
|
-
it { expect(subject).to include('@thread_safe=true') }
|
14
|
-
it { expect(subject).to include('@table={}') }
|
15
|
-
end
|
16
|
-
|
17
|
-
describe 'read/write something in/from the data store' do
|
18
|
-
before { Imba::DataStore[:something] = { foo: 'bar' } }
|
19
|
-
it { expect(Imba::DataStore[:something]).to eql(foo: 'bar') }
|
20
|
-
it { expect(Imba::DataStore.all).to eql([:something]) }
|
21
|
-
it { expect(Imba::DataStore.key?(:something)).to be_true }
|
22
|
-
end
|
23
|
-
|
24
|
-
describe 'delete something from the data store' do
|
25
|
-
before do
|
26
|
-
Imba::DataStore[:stay_my_friend] = { foo: 'bar' }
|
27
|
-
Imba::DataStore[:delete_me] = 'can\'t wait'
|
28
|
-
Imba::DataStore.delete(:delete_me)
|
29
|
-
end
|
30
|
-
it { expect(Imba::DataStore.key?(:delete_me)).to be_false }
|
31
|
-
it { expect(Imba::DataStore.all).to eql([:stay_my_friend]) }
|
32
|
-
end
|
33
|
-
|
34
|
-
describe 'multi transactions' do
|
35
|
-
before do
|
36
|
-
Imba::DataStore.transaction do |data|
|
37
|
-
data[:number] = 42
|
38
|
-
data[:foo] = 'bar bazly'
|
39
|
-
data[:words] = %w[amazing stuff inside transaction]
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
it { expect(Imba::DataStore.all).to eql([:number, :foo, :words]) }
|
44
|
-
it { expect(Imba::DataStore[:words]).to eql(%w[amazing stuff inside transaction]) }
|
45
|
-
end
|
46
|
-
|
47
6
|
end
|
48
7
|
end
|
data/spec/movie_list_spec.rb
CHANGED
@@ -2,13 +2,6 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
module Imba
|
4
4
|
describe MovieList do
|
5
|
-
# it { binding.pry }
|
6
|
-
|
7
|
-
# movie_dirs = Dir['*'].select {|f| File.directory? f}
|
8
|
-
#
|
9
|
-
# require "find"
|
10
|
-
# imba_files = []
|
11
|
-
# Find.find(".") {|path| imba_files << path if path =~ /\.imba$/}
|
12
5
|
|
13
6
|
end
|
14
7
|
end
|
data/spec/movie_spec.rb
CHANGED
@@ -2,6 +2,12 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
module Imba
|
4
4
|
describe Movie do
|
5
|
-
|
5
|
+
let!(:sneakers) { Movie.create(name: 'Sneakers', uniq_id: 1, year: 2012, genres: [:foo, :hackers], rating: 7.0) }
|
6
|
+
let!(:war_games) { Movie.create(name: 'War Games', uniq_id: 2, year: 2012, genres: [:foo, :war], rating: 8.0) }
|
7
|
+
let!(:tron) { Movie.create(name: 'Tron: Legacy', uniq_id: 3, year: 2012, genres: [:foo, :tron], rating: 9.0) }
|
8
|
+
|
9
|
+
it { expect(Movie.list).to match_array([sneakers, tron, war_games]) }
|
10
|
+
it { expect(Movie.top(5).first).to eql(tron) }
|
11
|
+
it { expect(Movie.top(5).last).to eql(sneakers) }
|
6
12
|
end
|
7
13
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,17 +1,34 @@
|
|
1
1
|
require 'rspec/pride'
|
2
|
+
require 'database_cleaner'
|
2
3
|
require 'pry'
|
3
4
|
require_relative '../lib/imba'
|
4
5
|
|
6
|
+
ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ":memory:")
|
7
|
+
|
5
8
|
RSpec.configure do |config|
|
6
9
|
config.color = true
|
7
10
|
config.order = 'random'
|
8
11
|
|
9
|
-
config.before(:
|
10
|
-
|
11
|
-
|
12
|
-
|
12
|
+
config.before(:suite) do
|
13
|
+
ActiveRecord::Schema.define do
|
14
|
+
self.verbose = false
|
15
|
+
create_table :movies, force: true do |t|
|
16
|
+
t.integer :uniq_id
|
17
|
+
t.string :name
|
18
|
+
t.string :year
|
19
|
+
t.text :genres
|
20
|
+
t.float :rating
|
21
|
+
end
|
22
|
+
end
|
23
|
+
DatabaseCleaner.strategy = :transaction
|
24
|
+
DatabaseCleaner.clean_with(:truncation)
|
25
|
+
end
|
26
|
+
|
27
|
+
config.before(:each) do
|
28
|
+
DatabaseCleaner.start
|
13
29
|
end
|
14
30
|
|
15
|
-
config.
|
16
|
-
|
31
|
+
config.after(:each) do
|
32
|
+
DatabaseCleaner.clean
|
33
|
+
end
|
17
34
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: imba
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marco Schaden
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 2.2.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: database_cleaner
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.2.0
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.2.0
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: guard-rspec
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -164,6 +178,48 @@ dependencies:
|
|
164
178
|
- - ~>
|
165
179
|
- !ruby/object:Gem::Version
|
166
180
|
version: 0.8.0
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: activerecord
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ~>
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: 4.0.1
|
188
|
+
type: :runtime
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ~>
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 4.0.1
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: sqlite3
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ~>
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: 1.3.8
|
202
|
+
type: :runtime
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ~>
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: 1.3.8
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: ruby-progressbar
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ~>
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: 1.4.0
|
216
|
+
type: :runtime
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ~>
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: 1.4.0
|
167
223
|
description: With Imba you can manage your movies by meta information (like rating,
|
168
224
|
genre, year) from IMDB.
|
169
225
|
email:
|
@@ -183,6 +239,8 @@ files:
|
|
183
239
|
- README.md
|
184
240
|
- Rakefile
|
185
241
|
- bin/imba
|
242
|
+
- db/database.yml
|
243
|
+
- db/migrate/001_create_movies.rb
|
186
244
|
- imba.gemspec
|
187
245
|
- lib/imba.rb
|
188
246
|
- lib/imba/cli.rb
|
@@ -191,6 +249,7 @@ files:
|
|
191
249
|
- lib/imba/movie.rb
|
192
250
|
- lib/imba/movie_list.rb
|
193
251
|
- lib/imba/version.rb
|
252
|
+
- screens/example.png
|
194
253
|
- spec/data_store_spec.rb
|
195
254
|
- spec/imba_spec.rb
|
196
255
|
- spec/movie_list_spec.rb
|