infinity2008 1.0.7 → 1.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 +4 -4
- data/bin/infinity2008 +17 -0
- data/infinity2008.gemspec +2 -1
- data/lib/infinity2008/infinity2008.rb +59 -0
- data/lib/infinity2008/version.rb +3 -0
- data/lib/infinity2008.rb +2 -59
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4e965fde008c1c365600d80284eb6a5cd5c6f43d
|
4
|
+
data.tar.gz: 504c0c7364fb9be1db6aec1f2b142e494d964887
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 470010b7f46b080b70454554f86d8a604bc63f55e3971e0dabe36c5aa1abfad6ab2f7cc7776818470a7da520c23c5736b30215b33bc59710bd4ad45a08857d46
|
7
|
+
data.tar.gz: 9242580bd7a74d6f79971c2c2e7eb96189b82c75a4f7802b06fcaf26f5ac7745fca50a533b8c33b12e044f310e8902f0500511b1fe97a3da0de0a6c22c217c22
|
data/bin/infinity2008
CHANGED
@@ -2,6 +2,21 @@
|
|
2
2
|
$: << File.expand_path('../../lib', __FILE__)
|
3
3
|
require 'infinity2008'
|
4
4
|
|
5
|
+
def version(do_exit = true)
|
6
|
+
puts "infinity2008 version #{Infinity2008::VERSION}"
|
7
|
+
exit 0 if do_exit
|
8
|
+
end
|
9
|
+
|
10
|
+
def help
|
11
|
+
version false
|
12
|
+
puts "\nusage: infinity2008 [option]\n\n" \
|
13
|
+
"Available options:\n" \
|
14
|
+
"\t--video\t\tOpen up a browser with the song's video\n" \
|
15
|
+
"\t--version\tShow this program's version\n" \
|
16
|
+
"\t--help\t\tShow this help screen\n"
|
17
|
+
exit 0
|
18
|
+
end
|
19
|
+
|
5
20
|
def open_cmd
|
6
21
|
case RbConfig::CONFIG['host_os']
|
7
22
|
when /darwin/i
|
@@ -24,6 +39,8 @@ rescue
|
|
24
39
|
end
|
25
40
|
|
26
41
|
begin
|
42
|
+
help if ARGV.include? '--help'
|
43
|
+
version if ARGV.include? '--version'
|
27
44
|
video Infinity2008::Song::URL if ARGV.include? '--video'
|
28
45
|
Infinity2008::Song.sing
|
29
46
|
rescue Interrupt
|
data/infinity2008.gemspec
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
lib = File.expand_path('../lib', __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'infinity2008/version'
|
4
5
|
|
5
6
|
Gem::Specification.new do |spec|
|
6
7
|
spec.name = 'infinity2008'
|
7
|
-
spec.version =
|
8
|
+
spec.version = Infinity2008::VERSION
|
8
9
|
spec.authors = ["Alejandro Martinez Ruiz"]
|
9
10
|
spec.email = ['alex@flawedcode.org']
|
10
11
|
spec.description = %q{This gem makes Ruby sing along with you the Guru Project's Infinity 2008 (Klaas Vocal Edit) hit}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module Infinity2008
|
2
|
+
INFINITY = 2.times.map { :infinity } * ', '
|
3
|
+
|
4
|
+
class Freak
|
5
|
+
{ key: ",\n", needs: " " }.each do |m, s|
|
6
|
+
(class << self; self; end).send :define_method, m do |arg|
|
7
|
+
define_method(m) { "#{m}#{s}#{arg}" }
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.to_s
|
12
|
+
super.split(':').last
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class You
|
17
|
+
{ INFINITY => lambda { puts "... #{Float::INFINITY}!" },
|
18
|
+
relax!: lambda { puts; true },
|
19
|
+
time: lambda do
|
20
|
+
[lambda { |_| print '.'; sleep 1 }].cycle
|
21
|
+
end
|
22
|
+
}.each do |m, l|
|
23
|
+
define_method(m) { print "#{m} "; l.call }
|
24
|
+
end
|
25
|
+
|
26
|
+
def in?(o)
|
27
|
+
(@t ||= ([false] * Song::Duration).each).next
|
28
|
+
rescue
|
29
|
+
true.tap { puts " trust in #{o.class}" }
|
30
|
+
end
|
31
|
+
|
32
|
+
def method_missing(m, *args)
|
33
|
+
m == :find ? send(*args) : self
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
class Me < Freak
|
38
|
+
key :philosophy
|
39
|
+
needs :infinity
|
40
|
+
|
41
|
+
def infinity(you)
|
42
|
+
you.relax! and you.r.time.take_while { |time|
|
43
|
+
!you.trust.in? self and time.(goes_by: :naturally)
|
44
|
+
} and you.will.find INFINITY
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
module Song
|
49
|
+
Duration = 188
|
50
|
+
URL = 'https://www.youtube.com/watch?v=w9KnuJZkBjg'
|
51
|
+
|
52
|
+
def self.sing
|
53
|
+
me = Me.new
|
54
|
+
puts "Here's my #{me.key}\n\nA #{me.class.superclass} like" \
|
55
|
+
" #{me.class},\njust #{me.needs}\n"
|
56
|
+
me.send :infinity, You.new
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
data/lib/infinity2008.rb
CHANGED
@@ -1,59 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
class Freak
|
5
|
-
{ key: ",\n", needs: " " }.each do |m, s|
|
6
|
-
(class << self; self; end).send :define_method, m do |arg|
|
7
|
-
define_method(m) { "#{m}#{s}#{arg}" }
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def self.to_s
|
12
|
-
super.split(':').last
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
class You
|
17
|
-
{ INFINITY => lambda { puts "... #{Float::INFINITY}!" },
|
18
|
-
relax!: lambda { puts; true },
|
19
|
-
time: lambda do
|
20
|
-
[lambda { |_| print '.'; sleep 1 }].cycle
|
21
|
-
end
|
22
|
-
}.each do |m, l|
|
23
|
-
define_method(m) { print "#{m} "; l.call }
|
24
|
-
end
|
25
|
-
|
26
|
-
def in?(o)
|
27
|
-
(@t ||= ([false] * Song::Duration).each).next
|
28
|
-
rescue
|
29
|
-
true.tap { puts " trust in #{o.class}" }
|
30
|
-
end
|
31
|
-
|
32
|
-
def method_missing(m, *args)
|
33
|
-
m == :find ? send(*args) : self
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
class Me < Freak
|
38
|
-
key :philosophy
|
39
|
-
needs :infinity
|
40
|
-
|
41
|
-
def infinity(you)
|
42
|
-
you.relax! and you.r.time.take_while { |time|
|
43
|
-
!you.trust.in? self and time.(goes_by: :naturally)
|
44
|
-
} and you.will.find INFINITY
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
module Song
|
49
|
-
Duration = 188
|
50
|
-
URL = 'https://www.youtube.com/watch?v=w9KnuJZkBjg'
|
51
|
-
|
52
|
-
def self.sing
|
53
|
-
me = Me.new
|
54
|
-
puts "Here's my #{me.key}\n\nA #{me.class.superclass} like" \
|
55
|
-
" #{me.class},\njust #{me.needs}\n"
|
56
|
-
me.send :infinity, You.new
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
1
|
+
require 'infinity2008/infinity2008'
|
2
|
+
require 'infinity2008/version'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: infinity2008
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alejandro Martinez Ruiz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -72,6 +72,8 @@ files:
|
|
72
72
|
- bin/infinity2008-dense
|
73
73
|
- infinity2008.gemspec
|
74
74
|
- lib/infinity2008.rb
|
75
|
+
- lib/infinity2008/infinity2008.rb
|
76
|
+
- lib/infinity2008/version.rb
|
75
77
|
- spec/freak_spec.rb
|
76
78
|
- spec/integration_spec.rb
|
77
79
|
- spec/me_spec.rb
|