soundcloud2000 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +5 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE +7 -0
  5. data/README.md +55 -0
  6. data/Rakefile +46 -0
  7. data/bin/soundcloud2000 +5 -0
  8. data/lib/soundcloud2000.rb +18 -0
  9. data/lib/soundcloud2000/application.rb +91 -0
  10. data/lib/soundcloud2000/client.rb +51 -0
  11. data/lib/soundcloud2000/controllers/controller.rb +19 -0
  12. data/lib/soundcloud2000/controllers/player_controller.rb +66 -0
  13. data/lib/soundcloud2000/controllers/track_controller.rb +81 -0
  14. data/lib/soundcloud2000/download_thread.rb +47 -0
  15. data/lib/soundcloud2000/events.rb +17 -0
  16. data/lib/soundcloud2000/models/collection.rb +41 -0
  17. data/lib/soundcloud2000/models/player.rb +141 -0
  18. data/lib/soundcloud2000/models/playlist.rb +23 -0
  19. data/lib/soundcloud2000/models/track.rb +57 -0
  20. data/lib/soundcloud2000/models/track_collection.rb +64 -0
  21. data/lib/soundcloud2000/models/user.rb +26 -0
  22. data/lib/soundcloud2000/time_helper.rb +22 -0
  23. data/lib/soundcloud2000/ui/canvas.rb +22 -0
  24. data/lib/soundcloud2000/ui/color.rb +46 -0
  25. data/lib/soundcloud2000/ui/input.rb +48 -0
  26. data/lib/soundcloud2000/ui/rect.rb +14 -0
  27. data/lib/soundcloud2000/ui/table.rb +131 -0
  28. data/lib/soundcloud2000/ui/view.rb +73 -0
  29. data/lib/soundcloud2000/views/player_view.rb +66 -0
  30. data/lib/soundcloud2000/views/splash.rb +69 -0
  31. data/lib/soundcloud2000/views/tracks_table.rb +13 -0
  32. data/soundcloud2000 +8 -0
  33. data/soundcloud2000.gemspec +25 -0
  34. data/spec/controllers/track_controller_spec.rb +59 -0
  35. data/spec/spec_helper.rb +2 -0
  36. metadata +149 -0
@@ -0,0 +1,13 @@
1
+ require_relative '../ui/table'
2
+
3
+ module Soundcloud2000
4
+ module Views
5
+ class TracksTable < UI::Table
6
+ def initialize(*args)
7
+ super
8
+ self.header = ['Title', 'User', 'Length', 'Plays', 'Likes', 'Comments']
9
+ self.keys = [:title, :username, :length, :plays, :likes, :comments]
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,8 @@
1
+ #!/bin/bash
2
+
3
+ ROOT_PATH=$(dirname $0)
4
+
5
+ export DYLD_LIBRARY_PATH=$ROOT_PATH/dyld
6
+ export RUBYLIB=$ROOT_PATH/lib
7
+
8
+ $ROOT_PATH/ruby $ROOT_PATH/bin/soundcloud2000
@@ -0,0 +1,25 @@
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = "soundcloud2000"
5
+ s.version = "0.1.0"
6
+ s.authors = ["Tobias Schmidt", "Matthias Georgi"]
7
+ s.email = "matti.georgi@gmail.com"
8
+ s.homepage = "http://www.github.com/grobie/soundcloud2000"
9
+ s.summary = "SoundCloud without the stupid css files"
10
+ s.description = "The next generation SoundCloud client"
11
+
12
+ s.bindir = 'bin'
13
+ s.files = `git ls-files`.split("\n")
14
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
15
+ s.require_paths = ["lib"]
16
+
17
+ s.add_dependency "json"
18
+ s.add_dependency "audite"
19
+
20
+ s.add_development_dependency "bundler", "~> 1.3"
21
+ s.add_development_dependency "rake"
22
+ s.add_development_dependency "mocha"
23
+
24
+ s.extra_rdoc_files = ["README.md"]
25
+ end
@@ -0,0 +1,59 @@
1
+ require_relative '../spec_helper'
2
+ require_relative '../../lib/soundcloud2000/controllers/track_controller'
3
+
4
+ module Soundcloud2000
5
+ module Controllers
6
+ describe TrackController do
7
+ let(:tracks) { mock }
8
+ let(:table) { mock }
9
+ let(:client) { mock }
10
+
11
+ subject { TrackController.new(table, client) }
12
+
13
+ before do
14
+ table.expects(:bind_to)
15
+
16
+ subject.bind_to(tracks)
17
+ end
18
+
19
+ it 'plays next track' do
20
+ table.expects(:down)
21
+ table.expects(:select)
22
+ table.expects(:current).returns(mock)
23
+ tracks.expects(:[]).returns(mock)
24
+
25
+ subject.next_track
26
+ end
27
+
28
+ it 'on key enter' do
29
+ table.expects(:select)
30
+ table.expects(:current).returns(mock)
31
+ tracks.expects(:[]).returns(mock)
32
+
33
+ subject.events.trigger(:key, :enter)
34
+ end
35
+
36
+ it 'on key up' do
37
+ table.expects(:up)
38
+
39
+ subject.events.trigger(:key, :up)
40
+ end
41
+
42
+ it 'on key down' do
43
+ table.expects(:down)
44
+ table.expects(:bottom?).returns(true)
45
+ tracks.expects(:load_more)
46
+
47
+ subject.events.trigger(:key, :down)
48
+ end
49
+
50
+ it 'on key u' do
51
+ UI::Input.expects(:getstr).returns(:permalink)
52
+ client.expects(:resolve).returns(:user)
53
+ tracks.expects(:user=)
54
+
55
+ subject.events.trigger(:key, :u)
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,2 @@
1
+ require 'minitest/autorun'
2
+ require 'mocha'
metadata ADDED
@@ -0,0 +1,149 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: soundcloud2000
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Tobias Schmidt
8
+ - Matthias Georgi
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-10-23 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: json
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ! '>='
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ! '>='
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: audite
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ! '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: bundler
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ~>
47
+ - !ruby/object:Gem::Version
48
+ version: '1.3'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ~>
54
+ - !ruby/object:Gem::Version
55
+ version: '1.3'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rake
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: mocha
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ! '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ description: The next generation SoundCloud client
85
+ email: matti.georgi@gmail.com
86
+ executables:
87
+ - soundcloud2000
88
+ extensions: []
89
+ extra_rdoc_files:
90
+ - README.md
91
+ files:
92
+ - .gitignore
93
+ - Gemfile
94
+ - LICENSE
95
+ - README.md
96
+ - Rakefile
97
+ - bin/soundcloud2000
98
+ - lib/soundcloud2000.rb
99
+ - lib/soundcloud2000/application.rb
100
+ - lib/soundcloud2000/client.rb
101
+ - lib/soundcloud2000/controllers/controller.rb
102
+ - lib/soundcloud2000/controllers/player_controller.rb
103
+ - lib/soundcloud2000/controllers/track_controller.rb
104
+ - lib/soundcloud2000/download_thread.rb
105
+ - lib/soundcloud2000/events.rb
106
+ - lib/soundcloud2000/models/collection.rb
107
+ - lib/soundcloud2000/models/player.rb
108
+ - lib/soundcloud2000/models/playlist.rb
109
+ - lib/soundcloud2000/models/track.rb
110
+ - lib/soundcloud2000/models/track_collection.rb
111
+ - lib/soundcloud2000/models/user.rb
112
+ - lib/soundcloud2000/time_helper.rb
113
+ - lib/soundcloud2000/ui/canvas.rb
114
+ - lib/soundcloud2000/ui/color.rb
115
+ - lib/soundcloud2000/ui/input.rb
116
+ - lib/soundcloud2000/ui/rect.rb
117
+ - lib/soundcloud2000/ui/table.rb
118
+ - lib/soundcloud2000/ui/view.rb
119
+ - lib/soundcloud2000/views/player_view.rb
120
+ - lib/soundcloud2000/views/splash.rb
121
+ - lib/soundcloud2000/views/tracks_table.rb
122
+ - soundcloud2000
123
+ - soundcloud2000.gemspec
124
+ - spec/controllers/track_controller_spec.rb
125
+ - spec/spec_helper.rb
126
+ homepage: http://www.github.com/grobie/soundcloud2000
127
+ licenses: []
128
+ metadata: {}
129
+ post_install_message:
130
+ rdoc_options: []
131
+ require_paths:
132
+ - lib
133
+ required_ruby_version: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ! '>='
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ required_rubygems_version: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ requirements: []
144
+ rubyforge_project:
145
+ rubygems_version: 2.1.2
146
+ signing_key:
147
+ specification_version: 4
148
+ summary: SoundCloud without the stupid css files
149
+ test_files: []