imba 0.0.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 +7 -0
- data/.gitignore +18 -0
- data/.rspec +2 -0
- data/.rubocop.yml +73 -0
- data/.travis.yml +6 -0
- data/Gemfile +4 -0
- data/Guardfile +6 -0
- data/LICENSE.txt +22 -0
- data/README.md +42 -0
- data/Rakefile +12 -0
- data/bin/imba +5 -0
- data/imba.gemspec +34 -0
- data/lib/imba.rb +12 -0
- data/lib/imba/cli.rb +51 -0
- data/lib/imba/colors.rb +20 -0
- data/lib/imba/data_store.rb +82 -0
- data/lib/imba/movie.rb +7 -0
- data/lib/imba/movie_list.rb +52 -0
- data/lib/imba/version.rb +3 -0
- data/spec/data_store_spec.rb +48 -0
- data/spec/imba_spec.rb +5 -0
- data/spec/movie_list_spec.rb +14 -0
- data/spec/movie_spec.rb +7 -0
- data/spec/spec_helper.rb +17 -0
- metadata +229 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: bd680e374b7adf954363d9a63828cc7b638dee0c
|
4
|
+
data.tar.gz: 7f49bcb6f01f8430670b1461967a28474824c846
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6696504a63e52038ad7b7877afd0a4f9da24f1e28c9d1b8ab69fd2c2828028cee9240a289cd03f61ee4a6d0f9dc90c12bc5c2f408041dd331e617d71d53a728a
|
7
|
+
data.tar.gz: aba298d79aa8d819122eed1d61e4e6a0c13359825938ee90150bea59320706124eb64ae09f86e030c85e20b710d5cda40787fc5e868b1d60d9ed58b28ddbcabf
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.rubocop.yml
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
AllCops:
|
2
|
+
Includes:
|
3
|
+
- '../**/*.rake'
|
4
|
+
- 'Gemfile'
|
5
|
+
- 'Rakefile'
|
6
|
+
Excludes:
|
7
|
+
- 'Guardfile'
|
8
|
+
- 'tmp/**/*'
|
9
|
+
- 'spec/spec_helper.rb'
|
10
|
+
- '.imba/**/*'
|
11
|
+
|
12
|
+
ParameterLists:
|
13
|
+
Max: 3
|
14
|
+
CountKeywordArgs: true
|
15
|
+
|
16
|
+
BlockNesting:
|
17
|
+
Max: 3
|
18
|
+
|
19
|
+
HashSyntax:
|
20
|
+
Enabled: true
|
21
|
+
|
22
|
+
StringLiterals:
|
23
|
+
Enabled: true
|
24
|
+
|
25
|
+
Void:
|
26
|
+
Enabled: true
|
27
|
+
|
28
|
+
LineLength:
|
29
|
+
Enabled: true
|
30
|
+
Max: 120
|
31
|
+
|
32
|
+
SpaceInsideHashLiteralBraces:
|
33
|
+
Enabled: true
|
34
|
+
|
35
|
+
AlignParameters:
|
36
|
+
Enabled: true
|
37
|
+
|
38
|
+
Blocks:
|
39
|
+
Enabled: false
|
40
|
+
|
41
|
+
NumericLiterals:
|
42
|
+
Enabled: true
|
43
|
+
|
44
|
+
SpaceInsideBrackets:
|
45
|
+
Enabled: true
|
46
|
+
|
47
|
+
WordArray:
|
48
|
+
Enabled: true
|
49
|
+
|
50
|
+
Lambda:
|
51
|
+
Enabled: true
|
52
|
+
|
53
|
+
RegexpLiteral:
|
54
|
+
Enabled: true
|
55
|
+
|
56
|
+
ConstantName:
|
57
|
+
Enabled: false
|
58
|
+
|
59
|
+
TrivialAccessors:
|
60
|
+
Enabled: true
|
61
|
+
ExactNameMatch: true
|
62
|
+
|
63
|
+
Alias:
|
64
|
+
Enabled: true
|
65
|
+
|
66
|
+
Loop:
|
67
|
+
Enabled: true
|
68
|
+
|
69
|
+
AndOr:
|
70
|
+
Enabled: false
|
71
|
+
|
72
|
+
Documentation:
|
73
|
+
Enabled: false
|
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/Guardfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 Marco Schaden
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
# Imba
|
2
|
+
|
3
|
+
[](https://travis-ci.org/DonSchado/imba)
|
4
|
+
[](https://codeclimate.com/github/DonSchado/imba)
|
5
|
+
|
6
|
+
## Todo:
|
7
|
+
|
8
|
+
- [x] init .imba-store
|
9
|
+
- [x] persistence datastore
|
10
|
+
- [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
|
+
- [x] ask for updating movie
|
16
|
+
- [x] rename file
|
17
|
+
- [ ] place .imba-meta file with id, title, genre, rating, year
|
18
|
+
- [ ] write .imba-meta into imba-store
|
19
|
+
- [ ] list movies by rating | genre | etc
|
20
|
+
- [ ] print imba-store
|
21
|
+
- [ ] play movie # on ATV
|
22
|
+
- [ ] maybe document code with yard
|
23
|
+
|
24
|
+
|
25
|
+
## Installation
|
26
|
+
|
27
|
+
$ gem install imba
|
28
|
+
|
29
|
+
$ imba --init
|
30
|
+
|
31
|
+
|
32
|
+
## Usage
|
33
|
+
|
34
|
+
TODO: Write usage instructions here
|
35
|
+
|
36
|
+
## Contributing
|
37
|
+
|
38
|
+
1. Fork it
|
39
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
40
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
41
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
42
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
data/bin/imba
ADDED
data/imba.gemspec
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'imba/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'imba'
|
8
|
+
spec.version = Imba::VERSION
|
9
|
+
spec.authors = ['Marco Schaden']
|
10
|
+
spec.email = ['ms@donschado.de']
|
11
|
+
spec.summary = %q{Imba is a command-line application to manage movies.}
|
12
|
+
spec.description = %q{With Imba you can manage your movies by meta information (like rating, genre, year) from IMDB.}
|
13
|
+
spec.homepage = 'https://github.com/donschado/imba'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ['lib']
|
20
|
+
spec.required_ruby_version = '>= 1.9.3'
|
21
|
+
|
22
|
+
spec.add_development_dependency 'bundler', '~> 1.5'
|
23
|
+
spec.add_development_dependency 'rake'
|
24
|
+
spec.add_development_dependency 'rspec', '~> 2.14.1'
|
25
|
+
spec.add_development_dependency 'rspec-pride', '~> 2.2.0'
|
26
|
+
spec.add_development_dependency 'guard-rspec', '~> 4.2.3'
|
27
|
+
spec.add_development_dependency 'pry', '~> 0.9.12.4'
|
28
|
+
spec.add_development_dependency 'pry-rescue', '~> 1.2.0'
|
29
|
+
spec.add_development_dependency 'pry-stack_explorer', '~> 0.4.9.1'
|
30
|
+
spec.add_development_dependency 'rubocop'
|
31
|
+
spec.add_development_dependency 'flog'
|
32
|
+
|
33
|
+
spec.add_runtime_dependency 'imdb', '~> 0.8.0'
|
34
|
+
end
|
data/lib/imba.rb
ADDED
data/lib/imba/cli.rb
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'optparse'
|
2
|
+
|
3
|
+
module Imba
|
4
|
+
class Cli
|
5
|
+
EXECUTABLE = File.basename($PROGRAM_NAME)
|
6
|
+
|
7
|
+
def self.execute(stdout, argv)
|
8
|
+
option_parser = OptionParser.new do |opts|
|
9
|
+
opts.banner = "Usage: #{EXECUTABLE} command [arguments...] [options...]"
|
10
|
+
|
11
|
+
opts.on('--init', 'Initialize imba data store in current directory') do
|
12
|
+
if File.directory?('.imba')
|
13
|
+
stdout.puts 'here is already an .imba directory'
|
14
|
+
else
|
15
|
+
"#{PATH}/.imba".tap { |dir| FileUtils.mkdir_p(dir) }
|
16
|
+
Imba::DataStore.init
|
17
|
+
end
|
18
|
+
exit
|
19
|
+
end
|
20
|
+
|
21
|
+
opts.on('--destroy', 'Remove all .imba files and data store from current directory') do
|
22
|
+
if File.directory?('.imba')
|
23
|
+
# TODO: dangerous stuff...
|
24
|
+
FileUtils.rm_rf(Imba::DIRECTORY)
|
25
|
+
else
|
26
|
+
stdout.puts 'nothing to destroy here'
|
27
|
+
end
|
28
|
+
exit
|
29
|
+
end
|
30
|
+
|
31
|
+
opts.on('-v', '--version', 'Show current version') do
|
32
|
+
stdout.puts "IMBA #{Imba::VERSION}"
|
33
|
+
exit
|
34
|
+
end
|
35
|
+
|
36
|
+
opts.on('-h', '--help', 'Display this screen') do
|
37
|
+
stdout.puts opts
|
38
|
+
exit
|
39
|
+
end
|
40
|
+
|
41
|
+
opts.on('-e', 'execute raw ruby in the "Imba::*" scope') do
|
42
|
+
stdout.puts eval("Imba::#{argv[0]}")
|
43
|
+
exit
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
option_parser.parse!
|
48
|
+
stdout.puts option_parser.help if argv.empty?
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
data/lib/imba/colors.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
module Colors
|
2
|
+
def colorize(text, color_code)
|
3
|
+
"\033[#{color_code}m#{text}\033[0m"
|
4
|
+
end
|
5
|
+
|
6
|
+
{
|
7
|
+
black: 30,
|
8
|
+
red: 31,
|
9
|
+
green: 32,
|
10
|
+
yellow: 33,
|
11
|
+
blue: 34,
|
12
|
+
magenta: 35,
|
13
|
+
cyan: 36,
|
14
|
+
white: 37
|
15
|
+
}.each do |key, color_code|
|
16
|
+
define_method key do |text|
|
17
|
+
colorize(text, color_code)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'pstore'
|
2
|
+
|
3
|
+
module Imba
|
4
|
+
module DataStore
|
5
|
+
class << self
|
6
|
+
attr_reader :data
|
7
|
+
attr_writer :path
|
8
|
+
|
9
|
+
def init
|
10
|
+
@data = PStore.new(path, true)
|
11
|
+
@data.ultra_safe = true
|
12
|
+
@data.transaction { @data.commit }
|
13
|
+
@data
|
14
|
+
end
|
15
|
+
|
16
|
+
def path
|
17
|
+
@path ||= "#{Imba::DIRECTORY}/data.pstore"
|
18
|
+
end
|
19
|
+
|
20
|
+
def data_store
|
21
|
+
data || init
|
22
|
+
end
|
23
|
+
|
24
|
+
def [](key)
|
25
|
+
data_store.transaction(true) { @data[key] }
|
26
|
+
end
|
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
|
59
|
+
end
|
60
|
+
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
|
+
end
|
81
|
+
end
|
82
|
+
end
|
data/lib/imba/movie.rb
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
module Imba
|
2
|
+
class MovieList
|
3
|
+
include Colors
|
4
|
+
attr_reader :movies
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@movies = Movie.all
|
8
|
+
end
|
9
|
+
|
10
|
+
def movie_dirs
|
11
|
+
# don't belong here...
|
12
|
+
# get movie names (dirs)
|
13
|
+
@movie_dirs ||= Dir['*'].select { |f| File.directory? f }
|
14
|
+
end
|
15
|
+
|
16
|
+
def add
|
17
|
+
Imba::DataStore[:movies] = movie_dirs
|
18
|
+
end
|
19
|
+
# @movie_dirs.each { |d| FileUtils.cd(d) { FileUtils.touch ".hello" } }
|
20
|
+
|
21
|
+
def synch
|
22
|
+
prompt = '(enter "y" to confirm or anything else to continue)'
|
23
|
+
# for each movie
|
24
|
+
movie_dirs.each do |directory_name|
|
25
|
+
# check movie name on imdb
|
26
|
+
result = Imdb::Movie.search(directory_name).first # needs rescue?
|
27
|
+
movie_title = result.title.gsub(/\(\d+\)/, '').strip
|
28
|
+
movie = "#{movie_title} (#{result.year}) #{result.genres} #{result.rating}/10"
|
29
|
+
|
30
|
+
# puts foundings
|
31
|
+
# 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'
|
35
|
+
end
|
36
|
+
|
37
|
+
if Imba::DataStore.key?(result.id) && Imba::DataStore[result.id] != movie
|
38
|
+
puts "update?\n- #{red(Imba::DataStore[result.id])} \n+ #{green(movie)} \n#{prompt}"
|
39
|
+
Imba::DataStore[result.id] = movie if STDIN.gets.strip.downcase == 'y'
|
40
|
+
else
|
41
|
+
Imba::DataStore[result.id] = movie
|
42
|
+
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
|
+
end
|
49
|
+
STDOUT.puts 'done'
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
data/lib/imba/version.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Imba
|
4
|
+
describe DataStore do
|
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
|
+
end
|
48
|
+
end
|
data/spec/imba_spec.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Imba
|
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
|
+
|
13
|
+
end
|
14
|
+
end
|
data/spec/movie_spec.rb
ADDED
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'rspec/pride'
|
2
|
+
require 'pry'
|
3
|
+
require_relative '../lib/imba'
|
4
|
+
|
5
|
+
RSpec.configure do |config|
|
6
|
+
config.color = true
|
7
|
+
config.order = 'random'
|
8
|
+
|
9
|
+
config.before(:all) do
|
10
|
+
FileUtils.mkdir_p("../tmp/.imba_test")
|
11
|
+
Imba::DataStore.path = "../tmp/.imba_test/test_data.pstore"
|
12
|
+
Imba::DataStore.init
|
13
|
+
end
|
14
|
+
|
15
|
+
config.before(:each) { Imba::DataStore.clear }
|
16
|
+
config.after(:all) { Imba::DataStore.clear }
|
17
|
+
end
|
metadata
ADDED
@@ -0,0 +1,229 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: imba
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Marco Schaden
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-01-11 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.5'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.5'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
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: 2.14.1
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 2.14.1
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec-pride
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.2.0
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 2.2.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: guard-rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 4.2.3
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 4.2.3
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pry
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.9.12.4
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.9.12.4
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: pry-rescue
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ~>
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 1.2.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ~>
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.2.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pry-stack_explorer
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ~>
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.4.9.1
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ~>
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.4.9.1
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rubocop
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ! '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ! '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: flog
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ! '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ! '>='
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: imdb
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ~>
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 0.8.0
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ~>
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 0.8.0
|
167
|
+
description: With Imba you can manage your movies by meta information (like rating,
|
168
|
+
genre, year) from IMDB.
|
169
|
+
email:
|
170
|
+
- ms@donschado.de
|
171
|
+
executables:
|
172
|
+
- imba
|
173
|
+
extensions: []
|
174
|
+
extra_rdoc_files: []
|
175
|
+
files:
|
176
|
+
- .gitignore
|
177
|
+
- .rspec
|
178
|
+
- .rubocop.yml
|
179
|
+
- .travis.yml
|
180
|
+
- Gemfile
|
181
|
+
- Guardfile
|
182
|
+
- LICENSE.txt
|
183
|
+
- README.md
|
184
|
+
- Rakefile
|
185
|
+
- bin/imba
|
186
|
+
- imba.gemspec
|
187
|
+
- lib/imba.rb
|
188
|
+
- lib/imba/cli.rb
|
189
|
+
- lib/imba/colors.rb
|
190
|
+
- lib/imba/data_store.rb
|
191
|
+
- lib/imba/movie.rb
|
192
|
+
- lib/imba/movie_list.rb
|
193
|
+
- lib/imba/version.rb
|
194
|
+
- spec/data_store_spec.rb
|
195
|
+
- spec/imba_spec.rb
|
196
|
+
- spec/movie_list_spec.rb
|
197
|
+
- spec/movie_spec.rb
|
198
|
+
- spec/spec_helper.rb
|
199
|
+
homepage: https://github.com/donschado/imba
|
200
|
+
licenses:
|
201
|
+
- MIT
|
202
|
+
metadata: {}
|
203
|
+
post_install_message:
|
204
|
+
rdoc_options: []
|
205
|
+
require_paths:
|
206
|
+
- lib
|
207
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
208
|
+
requirements:
|
209
|
+
- - ! '>='
|
210
|
+
- !ruby/object:Gem::Version
|
211
|
+
version: 1.9.3
|
212
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
213
|
+
requirements:
|
214
|
+
- - ! '>='
|
215
|
+
- !ruby/object:Gem::Version
|
216
|
+
version: '0'
|
217
|
+
requirements: []
|
218
|
+
rubyforge_project:
|
219
|
+
rubygems_version: 2.1.11
|
220
|
+
signing_key:
|
221
|
+
specification_version: 4
|
222
|
+
summary: Imba is a command-line application to manage movies.
|
223
|
+
test_files:
|
224
|
+
- spec/data_store_spec.rb
|
225
|
+
- spec/imba_spec.rb
|
226
|
+
- spec/movie_list_spec.rb
|
227
|
+
- spec/movie_spec.rb
|
228
|
+
- spec/spec_helper.rb
|
229
|
+
has_rdoc:
|