get_happy 0.0.1 → 1.0.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 +4 -4
- data/Guardfile +12 -0
- data/README.md +7 -6
- data/Rakefile +7 -2
- data/get_happy.gemspec +8 -4
- data/lib/get_happy/cli.rb +16 -11
- data/lib/get_happy/engine.rb +2 -2
- data/lib/get_happy/version.rb +1 -1
- data/lib/get_happy.rb +1 -1
- data/spec/get_happpy_spec.rb +90 -0
- data/spec/spec_helper.rb +18 -0
- metadata +84 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f70c53798f7c41f99d0566fe0290e8a02a7d20f8
|
4
|
+
data.tar.gz: 2282f78b01a237555507c1374a13513227044940
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 695fdb1ff5f852f0828c2ac6919b10d50a4266001630760090b95d1c048f5114431f630f9ad79f2b143cc273466b9a6ed9600eab80648b27cff65f891a3d6520
|
7
|
+
data.tar.gz: 97a02dd86e53a8715489ab5e8ce0a26b001e1bb9047cd4b2ea7bf8cf3b6b8867cf8761236ae80986a2343ce3a5ea95493fb48fe222eab19c2a7e305debcc9299
|
data/Guardfile
ADDED
data/README.md
CHANGED
@@ -40,34 +40,35 @@ Play a random song
|
|
40
40
|
List collection
|
41
41
|
|
42
42
|
$ get_happy list
|
43
|
-
|
43
|
+
Ioannis Total 4
|
44
|
+
🚀 https://www.youtube.com/watch?v=s3Q80mk7bxE
|
45
|
+
🚀 https://www.youtube.com/watch?v=LxDhlzJR4XQ
|
46
|
+
🚀 https://www.youtube.com/watch?v=HqYnevHibaI
|
47
|
+
🚀 https://www.youtube.com/watch?v=8kMZcA5oEAA
|
44
48
|
|
45
49
|
Seed with some sample urls
|
46
50
|
|
47
51
|
$ get_happy seed
|
48
|
-
|
52
|
+
|
49
53
|
|
50
54
|
Clean collection
|
51
55
|
|
52
56
|
$ get_happy clean
|
53
|
-
=>
|
57
|
+
=> Collection is empty
|
54
58
|
|
55
59
|
Add a link to collection
|
56
60
|
|
57
61
|
$ get_happy add https://www.youtube.com/watch?v=s3Q80mk7bxE
|
58
|
-
=> ["https://www.youtube.com/watch?v=s3Q80mk7bxE", "https://www.youtube.com/watch?v=s3Q80mk7bxE"]
|
59
62
|
|
60
63
|
Or add multiply
|
61
64
|
|
62
65
|
|
63
66
|
$ get_happy add https://www.youtube.com/watch?v=s3Q80mk7bxE, https://www.youtube.com/watch?v=PWgvGjAhvIw
|
64
|
-
=> ["https://www.youtube.com/watch?v=s3Q80mk7bxE", "https://www.youtube.com/watch?v=s3Q80mk7bxE"]
|
65
67
|
|
66
68
|
Delete a url
|
67
69
|
|
68
70
|
|
69
71
|
$ get_happy delete https://www.youtube.com/watch?v=s3Q80mk7bxE
|
70
|
-
=> ["https://www.youtube.com/watch?v=s3Q80mk7bxE", "https://www.youtube.com/watch?v=s3Q80mk7bxE"]
|
71
72
|
|
72
73
|
|
73
74
|
## Contributing
|
data/Rakefile
CHANGED
data/get_happy.gemspec
CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = GetHappy::VERSION
|
9
9
|
spec.authors = ["Ioannis Kolovos"]
|
10
10
|
spec.email = ["yannis.kolovos@gmail.com"]
|
11
|
-
spec.summary = "
|
12
|
-
spec.description = "
|
11
|
+
spec.summary = "A Gem to make you happy!"
|
12
|
+
spec.description = "Creates a collection with your music favorite links and opens a random one"
|
13
13
|
spec.homepage = ""
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
@@ -20,6 +20,10 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.executables = ['get_happy']
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.7"
|
22
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
23
|
-
spec.
|
24
|
-
|
23
|
+
spec.add_development_dependency "coveralls", "~> 0.7.11"
|
24
|
+
spec.add_development_dependency "minitest", "~> 5.5.1"
|
25
|
+
spec.add_development_dependency "rspec", "~> 3.2.0"
|
26
|
+
spec.add_development_dependency "guard", "~> 2.12.5"
|
27
|
+
spec.add_development_dependency "guard-rspec", "~> 4.5.0"
|
28
|
+
spec.add_runtime_dependency "thor", "~> 0.19.1"
|
25
29
|
end
|
data/lib/get_happy/cli.rb
CHANGED
@@ -1,15 +1,18 @@
|
|
1
1
|
module GetHappy
|
2
2
|
class CLI < Thor
|
3
|
+
include Thor::Actions
|
4
|
+
|
5
|
+
CAPTURE_COMMANDS_OUTPUT = !ENV['GH_CAPTURE_COMMANDS_OUTPUT'].nil?
|
3
6
|
|
4
7
|
desc "play", "play a random song"
|
5
8
|
def play
|
6
9
|
@collection ||= GetHappy.get_collection
|
7
|
-
|
8
|
-
|
10
|
+
run("open #{@collection.sample}", :capture => CAPTURE_COMMANDS_OUTPUT) unless @collection.empty?
|
11
|
+
say "Collection is empty! get_happy seed to seed" if @collection.empty?
|
9
12
|
end
|
10
13
|
|
11
|
-
|
12
|
-
desc "add [LINKS]", "add a link to collection"
|
14
|
+
|
15
|
+
desc "add [LINKS]", "add a link to collection"
|
13
16
|
def add(*links)
|
14
17
|
@collection ||= GetHappy.get_collection
|
15
18
|
links.each {|link| @collection << link.to_s}
|
@@ -22,20 +25,19 @@ module GetHappy
|
|
22
25
|
@collection ||= GetHappy.get_collection
|
23
26
|
user = `echo $USER`.gsub("\n", "")
|
24
27
|
|
25
|
-
|
26
|
-
|
27
|
-
# puts @collection.join("\n")
|
28
|
+
say " \n"
|
29
|
+
say "\e[1m\e[4m#{user} Total #{@collection.size}\e[0m \n\n"
|
28
30
|
@collection.each do |item|
|
29
|
-
|
31
|
+
say "🚀 #{item}" , :green
|
30
32
|
end
|
31
|
-
|
33
|
+
say "\n"
|
32
34
|
end
|
33
35
|
|
34
36
|
desc "clean", "clean collection"
|
35
37
|
def clean
|
36
38
|
@collection = []
|
37
39
|
GetHappy.write_collection([])
|
38
|
-
|
40
|
+
say "Collection is empty"
|
39
41
|
end
|
40
42
|
|
41
43
|
desc "seed", "seed with some sample urls"
|
@@ -54,4 +56,7 @@ module GetHappy
|
|
54
56
|
end
|
55
57
|
|
56
58
|
end
|
57
|
-
end
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
|
data/lib/get_happy/engine.rb
CHANGED
@@ -27,11 +27,11 @@ module GetHappy
|
|
27
27
|
FileUtils.mkdir_p(COLLECTION_DIR)
|
28
28
|
end
|
29
29
|
|
30
|
-
File.open(COLLECTION, "w
|
30
|
+
File.open(COLLECTION, "w") do |file|
|
31
31
|
file.write [].to_yaml
|
32
32
|
end unless File.file?(COLLECTION)
|
33
33
|
|
34
|
-
YAML::load_file(COLLECTION)
|
34
|
+
YAML::load_file(COLLECTION)
|
35
35
|
end
|
36
36
|
|
37
37
|
end
|
data/lib/get_happy/version.rb
CHANGED
data/lib/get_happy.rb
CHANGED
@@ -0,0 +1,90 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe GetHappy do
|
4
|
+
before(:each) do
|
5
|
+
FileUtils.rm_rf(GetHappy::COLLECTION_DIR)
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'create directories' do
|
9
|
+
expect(File.directory?(GetHappy::COLLECTION_DIR)).to be false
|
10
|
+
expect(File.file?(GetHappy::COLLECTION)).to be false
|
11
|
+
out = capture_io{ GetHappy::CLI.start %w{ list} }.join ''
|
12
|
+
expect(File.directory?(GetHappy::COLLECTION_DIR)).to be true
|
13
|
+
expect(File.file?(GetHappy::COLLECTION)).to be true
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
it "methods" do
|
18
|
+
script = GetHappy::CLI.new
|
19
|
+
script.respond_to? :add
|
20
|
+
%i(add clean delete list play seed).each do |method|
|
21
|
+
expect(script.methods).to include method
|
22
|
+
expect(script).to respond_to method
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should list" do
|
27
|
+
out = capture_io{ GetHappy::CLI.start %w{ list} }.join ''
|
28
|
+
expect(out).to match /Ioannis Total./
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
it "should delete" do
|
33
|
+
GetHappy::CLI.start %w{ }
|
34
|
+
expect(YAML::load_file(GetHappy::COLLECTION)).to be_empty
|
35
|
+
GetHappy::CLI.start %w{ add https://www.youtube.com/watch?v=u9h7Teiyvc8}
|
36
|
+
expect(YAML::load_file(GetHappy::COLLECTION)).to include("https://www.youtube.com/watch?v=u9h7Teiyvc8")
|
37
|
+
|
38
|
+
GetHappy::CLI.start %w{ delete https://www.youtube.com/watch?v=u9h7Teiyvc8}
|
39
|
+
expect(YAML::load_file(GetHappy::COLLECTION)).not_to include("https://www.youtube.com/watch?v=u9h7Teiyvc8")
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should clean" do
|
43
|
+
GetHappy::CLI.start %w{ seed}
|
44
|
+
expect(YAML::load_file(GetHappy::COLLECTION)).not_to be_empty
|
45
|
+
GetHappy::CLI.start %w{ clean}
|
46
|
+
expect(YAML::load_file(GetHappy::COLLECTION)).to be_empty
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should play" do
|
50
|
+
GetHappy::CLI.start %w{ seed}
|
51
|
+
|
52
|
+
out, err = capture_io do
|
53
|
+
GetHappy::CLI.start %w{ play}
|
54
|
+
end
|
55
|
+
|
56
|
+
expect(out.strip).to include "run open https://www.youtube.com/watch?v="
|
57
|
+
expect(err).to be_empty
|
58
|
+
end
|
59
|
+
|
60
|
+
|
61
|
+
it "should seed" do
|
62
|
+
GetHappy::CLI.start %w{}
|
63
|
+
expect(YAML::load_file(GetHappy::COLLECTION)).to be_empty
|
64
|
+
GetHappy::CLI.start %w{ seed}
|
65
|
+
expect(YAML::load_file(GetHappy::COLLECTION)).not_to be_empty
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should add" do
|
69
|
+
GetHappy::CLI.start %w{}
|
70
|
+
before = YAML::load_file(GetHappy::COLLECTION)
|
71
|
+
GetHappy::CLI.start %w{ add https://www.youtube.com/watch?v=u9h7Teiyvc8}
|
72
|
+
after = YAML::load_file(GetHappy::COLLECTION)
|
73
|
+
|
74
|
+
expect(before).to_not be after
|
75
|
+
expect(after.first).to match /u9h7Teiyvc8/
|
76
|
+
end
|
77
|
+
|
78
|
+
|
79
|
+
|
80
|
+
it "should not add duplicates" do
|
81
|
+
GetHappy::CLI.start %w{ add https://www.youtube.com/watch?v=u9h7Teiyvc8}
|
82
|
+
expect(YAML::load_file(GetHappy::COLLECTION).size).to eq 1
|
83
|
+
GetHappy::CLI.start %w{ add https://www.youtube.com/watch?v=u9h7Teiyvc8}
|
84
|
+
expect(YAML::load_file(GetHappy::COLLECTION).size).to eq 1
|
85
|
+
end
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
end
|
90
|
+
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'coveralls'
|
2
|
+
Coveralls.wear!
|
3
|
+
|
4
|
+
lib = File.expand_path('../lib', __FILE__)
|
5
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
6
|
+
|
7
|
+
require 'minitest'
|
8
|
+
require 'minitest/unit'
|
9
|
+
require 'yaml'
|
10
|
+
require 'thor'
|
11
|
+
require 'fileutils'
|
12
|
+
require 'get_happy'
|
13
|
+
require 'rspec'
|
14
|
+
|
15
|
+
|
16
|
+
RSpec.configure do |c|
|
17
|
+
c.include MiniTest::Assertions
|
18
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: get_happy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ioannis Kolovos
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -38,21 +38,92 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: coveralls
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.7.11
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.7.11
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: minitest
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 5.5.1
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 5.5.1
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 3.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: 3.2.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: guard
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 2.12.5
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 2.12.5
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: guard-rspec
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 4.5.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 4.5.0
|
41
111
|
- !ruby/object:Gem::Dependency
|
42
112
|
name: thor
|
43
113
|
requirement: !ruby/object:Gem::Requirement
|
44
114
|
requirements:
|
45
|
-
- - "
|
115
|
+
- - "~>"
|
46
116
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
117
|
+
version: 0.19.1
|
48
118
|
type: :runtime
|
49
119
|
prerelease: false
|
50
120
|
version_requirements: !ruby/object:Gem::Requirement
|
51
121
|
requirements:
|
52
|
-
- - "
|
122
|
+
- - "~>"
|
53
123
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
-
description:
|
124
|
+
version: 0.19.1
|
125
|
+
description: Creates a collection with your music favorite links and opens a random
|
126
|
+
one
|
56
127
|
email:
|
57
128
|
- yannis.kolovos@gmail.com
|
58
129
|
executables:
|
@@ -62,6 +133,7 @@ extra_rdoc_files: []
|
|
62
133
|
files:
|
63
134
|
- ".gitignore"
|
64
135
|
- Gemfile
|
136
|
+
- Guardfile
|
65
137
|
- LICENSE.txt
|
66
138
|
- README.md
|
67
139
|
- Rakefile
|
@@ -71,7 +143,9 @@ files:
|
|
71
143
|
- lib/get_happy/cli.rb
|
72
144
|
- lib/get_happy/engine.rb
|
73
145
|
- lib/get_happy/version.rb
|
146
|
+
- spec/get_happpy_spec.rb
|
74
147
|
- spec/screen_shot.png
|
148
|
+
- spec/spec_helper.rb
|
75
149
|
homepage: ''
|
76
150
|
licenses:
|
77
151
|
- MIT
|
@@ -95,6 +169,8 @@ rubyforge_project:
|
|
95
169
|
rubygems_version: 2.2.2
|
96
170
|
signing_key:
|
97
171
|
specification_version: 4
|
98
|
-
summary:
|
172
|
+
summary: A Gem to make you happy!
|
99
173
|
test_files:
|
174
|
+
- spec/get_happpy_spec.rb
|
100
175
|
- spec/screen_shot.png
|
176
|
+
- spec/spec_helper.rb
|