gswax 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.
- data/lib/gswax.rb +42 -27
- data/lib/gswax/Wax.rb +29 -40
- data/lib/gswax/browser.rb +28 -5
- data/lib/gswax/playlist.rb +5 -5
- data/lib/gswax/scrollbox.rb +1 -1
- data/lib/gswax/settings_manager.rb +3 -3
- data/lib/gswax/shared.rb +8 -11
- data/lib/gswax/turntable.rb +2 -2
- data/lib/gswax/version.rb +1 -1
- metadata +8 -9
data/lib/gswax.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
=begin
|
2
2
|
|
3
3
|
gsWax
|
4
|
-
v 0.
|
4
|
+
v 0.0.2
|
5
5
|
|
6
6
|
an audio player for folks who miss their vinyl
|
7
7
|
|
@@ -79,7 +79,7 @@ Shoes.app(width: (727 * scl), height: (675 * scl), title: "gsWax") do
|
|
79
79
|
when "PREVIOUS_TRACK"; previous_track
|
80
80
|
when "NEXT_TRACK"; next_track
|
81
81
|
when "SHUFFLE_TOGGLE"; toggle_wax_shuffle
|
82
|
-
when "PLAYLIST_CLOSED"; @
|
82
|
+
when "PLAYLIST_CLOSED"; @playlist = nil
|
83
83
|
when "BROWSER_CLOSED"; @browser = nil
|
84
84
|
when "SETTINGS_CLOSED"; @settings_man = nil
|
85
85
|
end
|
@@ -105,8 +105,10 @@ Shoes.app(width: (727 * scl), height: (675 * scl), title: "gsWax") do
|
|
105
105
|
|
106
106
|
if pos == "prepend"
|
107
107
|
tracks.reverse.each{|e| wax_lineup.insert(0, e)}
|
108
|
+
tracks.shuffle.each{|e| wax_lupine.insert(0, e)}
|
108
109
|
else
|
109
110
|
tracks.each{|e| wax_lineup << e}
|
111
|
+
tracks.shuffle.each{|e| wax_lupine << e}
|
110
112
|
end
|
111
113
|
|
112
114
|
if flag
|
@@ -119,18 +121,30 @@ Shoes.app(width: (727 * scl), height: (675 * scl), title: "gsWax") do
|
|
119
121
|
def data_drop(data, context)
|
120
122
|
raw = CGI.unescape(data)
|
121
123
|
arr = raw.chomp.split("file:#{File::Separator}#{File::Separator}")
|
122
|
-
path = arr[-1]
|
123
124
|
okfiles = [/.mp3/, /.flac/, /.ogg/, /.wav/]
|
124
125
|
selected = []
|
125
|
-
|
126
|
-
if File.directory?(path)
|
127
|
-
Find.find(path){|item|
|
128
|
-
okfiles.each{|ok| selected << item if item.downcase =~ ok}
|
129
|
-
}
|
130
|
-
elsif File.exists?(path)
|
131
|
-
okfiles.each{|ok| selected << path if path.downcase =~ ok}
|
132
|
-
end
|
133
126
|
|
127
|
+
arr.each{|path|
|
128
|
+
path.chomp!
|
129
|
+
if File.directory?(path)
|
130
|
+
Find.find(path){|item|
|
131
|
+
okfiles.each{|ok| selected << item if File.extname(item.downcase) =~ ok}
|
132
|
+
}
|
133
|
+
elsif File.file?(path)
|
134
|
+
ext = File.extname(path.downcase)
|
135
|
+
okfiles.each{|ok| selected << path if ext =~ ok}
|
136
|
+
if ext == ".pls" or ext == ".m3u"
|
137
|
+
File.open(path){|file|
|
138
|
+
file.each_line{|line|
|
139
|
+
if line.include?("http:")
|
140
|
+
selected << /http.+/.match(line).to_s
|
141
|
+
end
|
142
|
+
}
|
143
|
+
}
|
144
|
+
end
|
145
|
+
end
|
146
|
+
}
|
147
|
+
|
134
148
|
add_to_list(selected)
|
135
149
|
@playlist.add(selected) if @playlist
|
136
150
|
|
@@ -146,7 +160,7 @@ Shoes.app(width: (727 * scl), height: (675 * scl), title: "gsWax") do
|
|
146
160
|
dir = Settings.music_dir
|
147
161
|
end
|
148
162
|
else
|
149
|
-
dir =
|
163
|
+
dir = File.dirname(File.expand_path(__FILE__))
|
150
164
|
end
|
151
165
|
@browser = DirBrowser.new(dir)
|
152
166
|
@browser.add_observer(self, :on_signals)
|
@@ -156,10 +170,7 @@ Shoes.app(width: (727 * scl), height: (675 * scl), title: "gsWax") do
|
|
156
170
|
|
157
171
|
def playlist(list)
|
158
172
|
if @playlist
|
159
|
-
|
160
|
-
@browser.delete_observer(@playlist) if @browser
|
161
|
-
@playlist.close_window
|
162
|
-
@playlist = nil
|
173
|
+
@playlist.close_window; @playlist = nil
|
163
174
|
else
|
164
175
|
@playlist = PlayList.new; @playlist.add(list)
|
165
176
|
@playlist.add_observer(self, :on_signals)
|
@@ -171,7 +182,9 @@ Shoes.app(width: (727 * scl), height: (675 * scl), title: "gsWax") do
|
|
171
182
|
stop_wax if wax_state != "stopped"
|
172
183
|
f_name = message[1]
|
173
184
|
Settings.playlist_file = f_name
|
174
|
-
|
185
|
+
Settings.line_up.clear
|
186
|
+
tracks = message[2..-1]
|
187
|
+
tracks.each{|track| Settings.line_up << track}
|
175
188
|
read_wax_lineup
|
176
189
|
@table.update(Settings.at_bat)
|
177
190
|
@info_area.set_text("gsWax - ready to rock")
|
@@ -199,14 +212,16 @@ Shoes.app(width: (727 * scl), height: (675 * scl), title: "gsWax") do
|
|
199
212
|
|
200
213
|
def track_progress
|
201
214
|
unless @tracking
|
202
|
-
GLib::Timeout.add(100){
|
215
|
+
timeout = GLib::Timeout.add(100){
|
203
216
|
if wax_state == "playing"
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
217
|
+
if wax_tracking
|
218
|
+
pos_query = Gst::QueryPosition.new(3)
|
219
|
+
wax_pipeline.query(pos_query)
|
220
|
+
track_pos = pos_query.parse[1] / 10000.0
|
221
|
+
arm_pos =(((track_pos * 1.0) / wax_duration) / 1000.0).round(1)
|
222
|
+
@table.set_arm_pos(arm_pos)
|
223
|
+
@tracking = true
|
224
|
+
end
|
210
225
|
else
|
211
226
|
@tracking = false
|
212
227
|
false
|
@@ -225,7 +240,7 @@ Shoes.app(width: (727 * scl), height: (675 * scl), title: "gsWax") do
|
|
225
240
|
if wax_lineup.empty?
|
226
241
|
wax_lineup << track
|
227
242
|
batter_up_wax
|
228
|
-
|
243
|
+
play_pause_track
|
229
244
|
else
|
230
245
|
wax_lineup.insert(wax_batter + 1, track) unless Settings.shuffle
|
231
246
|
wax_lupine.insert(wax_batter + 1, track) if Settings.shuffle
|
@@ -236,7 +251,7 @@ Shoes.app(width: (727 * scl), height: (675 * scl), title: "gsWax") do
|
|
236
251
|
end
|
237
252
|
|
238
253
|
def play_pause_track
|
239
|
-
|
254
|
+
play_pause_wax
|
240
255
|
@table.set_state(wax_state)
|
241
256
|
track_progress
|
242
257
|
end
|
@@ -263,7 +278,7 @@ Shoes.app(width: (727 * scl), height: (675 * scl), title: "gsWax") do
|
|
263
278
|
def seek(percent)
|
264
279
|
if wax_duration
|
265
280
|
sought = wax_duration * percent
|
266
|
-
|
281
|
+
seek_to_wax((sought * 1000.0).round)
|
267
282
|
@table.set_arm_pos(percent)
|
268
283
|
end
|
269
284
|
end
|
data/lib/gswax/Wax.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
=begin
|
2
2
|
|
3
|
-
this file is part of: gsWax v. 0.
|
3
|
+
this file is part of: gsWax v. 0.0.2
|
4
4
|
|
5
5
|
You should have received a copy of the GNU General Public License
|
6
6
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
@@ -14,7 +14,7 @@ module Wax
|
|
14
14
|
include Observable
|
15
15
|
|
16
16
|
attr_accessor :wax_coverart, :wax_duration, :wax_state, :wax_pipeline,
|
17
|
-
:wax_batter, :wax_lineup, :wax_lupine, :wax_info
|
17
|
+
:wax_batter, :wax_lineup, :wax_lupine, :wax_info, :wax_tracking
|
18
18
|
|
19
19
|
#----------------------
|
20
20
|
# INITIALIZE
|
@@ -30,7 +30,7 @@ module Wax
|
|
30
30
|
|
31
31
|
def read_wax_lineup
|
32
32
|
@wax_lineup = []
|
33
|
-
|
33
|
+
if Settings.line_up
|
34
34
|
@wax_lineup = Settings.line_up
|
35
35
|
@wax_info = "gsWax - ready to rock"
|
36
36
|
else
|
@@ -76,32 +76,37 @@ module Wax
|
|
76
76
|
if @wax_lineup.empty?
|
77
77
|
batter_up_wax
|
78
78
|
end
|
79
|
+
if @stream_thread; @stream_thread.exit; @stream_thread = nil; end
|
79
80
|
if Settings.at_bat
|
80
|
-
|
81
|
+
if Settings.at_bat =~ /http:/
|
82
|
+
@wax_pipeline.uri = Settings.at_bat
|
83
|
+
@wax_tracking = false
|
84
|
+
@wax_state = "playing"
|
85
|
+
@wax_info = "Stream: #{Settings.at_bat}"
|
86
|
+
send_wax_info("wax_info")
|
87
|
+
@stream_thread = Thread.new{@wax_pipeline.play}
|
88
|
+
elsif File.exists?(Settings.at_bat)
|
81
89
|
@wax_pipeline.uri= GLib.filename_to_uri(Settings.at_bat)
|
82
|
-
|
83
|
-
@tagMsg = []
|
84
|
-
|
85
|
-
bus.add_watch {|bus, message|
|
86
|
-
case message.type
|
87
|
-
when Gst::Message::ERROR
|
88
|
-
p message.parse
|
89
|
-
when Gst::Message::EOS
|
90
|
-
@wax_state = "stopped"
|
91
|
-
next_wax
|
92
|
-
send_wax_info("eos")
|
93
|
-
when Gst::Message::TAG
|
94
|
-
@tagMsg << message.structure.entries
|
95
|
-
get_wax_tags
|
96
|
-
end
|
97
|
-
true
|
98
|
-
}
|
99
|
-
|
90
|
+
@wax_tracking = true
|
100
91
|
@wax_pipeline.play
|
101
92
|
@wax_state = "playing"
|
102
93
|
get_wax_duration
|
103
94
|
end
|
104
|
-
|
95
|
+
@tagMsg = []
|
96
|
+
@wax_pipeline.bus.add_watch{|bus, message|
|
97
|
+
case message.type
|
98
|
+
when Gst::Message::ERROR
|
99
|
+
p message.parse
|
100
|
+
when Gst::Message::EOS
|
101
|
+
@wax_state = "stopped"
|
102
|
+
next_wax
|
103
|
+
send_wax_info("eos")
|
104
|
+
when Gst::Message::TAG
|
105
|
+
@tagMsg << message.structure.entries
|
106
|
+
get_wax_tags
|
107
|
+
end
|
108
|
+
true
|
109
|
+
}
|
105
110
|
else
|
106
111
|
@wax_info = "no tracks"
|
107
112
|
send_wax_info("wax_info")
|
@@ -177,7 +182,6 @@ module Wax
|
|
177
182
|
@wax_info = @infoentries.join
|
178
183
|
send_wax_info("wax_info")
|
179
184
|
end
|
180
|
-
|
181
185
|
end #get_wax_tags
|
182
186
|
|
183
187
|
|
@@ -185,7 +189,7 @@ module Wax
|
|
185
189
|
# TRANSPORT
|
186
190
|
#-----------------------
|
187
191
|
|
188
|
-
def
|
192
|
+
def play_pause_wax
|
189
193
|
if Settings.at_bat
|
190
194
|
if @wax_state == "stopped"
|
191
195
|
play_wax
|
@@ -254,20 +258,5 @@ module Wax
|
|
254
258
|
changed
|
255
259
|
notify_observers(info)
|
256
260
|
end
|
257
|
-
|
258
|
-
def xsave_wax_settings(settings)
|
259
|
-
settings[0] = @wax_roster
|
260
|
-
if @wax_shuffle == true
|
261
|
-
settings[1] = "shuffle on"
|
262
|
-
else
|
263
|
-
settings[1] = "shuffle off"
|
264
|
-
end
|
265
|
-
settings[2] = Settings.at_bat
|
266
|
-
|
267
|
-
File.open(@settings_file, "w"){|file|
|
268
|
-
settings.each{|entry| file.puts(entry)}
|
269
|
-
}
|
270
|
-
end
|
271
|
-
|
272
261
|
|
273
262
|
end #module Wax
|
data/lib/gswax/browser.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
=begin
|
2
2
|
|
3
|
-
this file is part of: gsWax v. 0.
|
3
|
+
this file is part of: gsWax v. 0.0.2
|
4
4
|
|
5
5
|
You should have received a copy of the GNU General Public License
|
6
6
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
@@ -10,7 +10,7 @@
|
|
10
10
|
class DirBrowser
|
11
11
|
include Observable
|
12
12
|
|
13
|
-
def initialize(path =
|
13
|
+
def initialize(path = File.expand_path(File.dirname(__FILE__)))
|
14
14
|
@okfiles = [/.mp3/, /.flac/, /.ogg/, /.wav/]
|
15
15
|
@selected = []
|
16
16
|
@listview = ListView.new # def in shared.rb
|
@@ -132,12 +132,35 @@ class DirBrowser
|
|
132
132
|
dirs << iter[1] ? File.directory?(iter[1]) : files << iter[1]
|
133
133
|
}
|
134
134
|
|
135
|
-
|
135
|
+
if files[0]
|
136
|
+
files.each{|path|
|
137
|
+
if File.extname(path.downcase) == ".pls" or File.extname(path.downcase) == ".m3u"
|
138
|
+
File.open(path){|file|
|
139
|
+
file.each_line{|line|
|
140
|
+
if line.include?("http:")
|
141
|
+
@selected << /http.+/.match(line).to_s
|
142
|
+
end
|
143
|
+
}
|
144
|
+
}
|
145
|
+
else
|
146
|
+
@selected << path
|
147
|
+
end
|
148
|
+
}
|
149
|
+
end
|
136
150
|
|
137
151
|
if dirs[0]
|
138
152
|
dirs.each{|dir|
|
139
153
|
Find.find(dir){|item|
|
140
|
-
|
154
|
+
@okfiles.each{|ok| @selected << item if File.extname(item.downcase) =~ ok}
|
155
|
+
if File.extname(item.downcase) == ".pls" or File.extname(item.downcase) == ".m3u"
|
156
|
+
File.open(item){|file|
|
157
|
+
file.each_line{|line|
|
158
|
+
if line.include?("http:")
|
159
|
+
@selected << /http.+/.match(line).to_s
|
160
|
+
end
|
161
|
+
}
|
162
|
+
}
|
163
|
+
end
|
141
164
|
}
|
142
165
|
}
|
143
166
|
end
|
@@ -168,7 +191,7 @@ class DirBrowser
|
|
168
191
|
if File.directory?(item)
|
169
192
|
dirs << item unless File.basename(item)[0] == "."
|
170
193
|
else
|
171
|
-
@okfiles.each{|ok| files << item if item.downcase =~ ok}
|
194
|
+
@okfiles.each{|ok| files << item if File.extname(item.downcase) =~ ok}
|
172
195
|
end
|
173
196
|
end
|
174
197
|
end
|
data/lib/gswax/playlist.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
=begin
|
2
2
|
|
3
|
-
this file is part of: gsWax v. 0.
|
3
|
+
this file is part of: gsWax v. 0.0.2
|
4
4
|
|
5
5
|
You should have received a copy of the GNU General Public License
|
6
6
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
@@ -9,7 +9,7 @@
|
|
9
9
|
|
10
10
|
class PlayList
|
11
11
|
include Observable
|
12
|
-
attr_accessor :listview
|
12
|
+
attr_accessor :listview
|
13
13
|
|
14
14
|
def initialize
|
15
15
|
@selected = []
|
@@ -157,10 +157,10 @@ class PlayList
|
|
157
157
|
end
|
158
158
|
|
159
159
|
def save_list
|
160
|
-
unless Dir.exists?((File.
|
161
|
-
Dir.mkdir(File.
|
160
|
+
unless Dir.exists?(File.dirname(File.expand_path(__FILE__)) + "/playlists/")
|
161
|
+
Dir.mkdir(File.dirname(File.expand_path(__FILE__)) + "/playlists/")
|
162
162
|
end
|
163
|
-
Dir.chdir(File.
|
163
|
+
Dir.chdir(File.dirname(File.expand_path(__FILE__)) + "/playlists/"){
|
164
164
|
@savefile = ask_save_file
|
165
165
|
}
|
166
166
|
|
data/lib/gswax/scrollbox.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
=begin
|
2
2
|
|
3
|
-
this file is part of: gsWax v. 0.
|
3
|
+
this file is part of: gsWax v. 0.0.2
|
4
4
|
|
5
5
|
You should have received a copy of the GNU General Public License
|
6
6
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
@@ -175,7 +175,7 @@ class SettingsManager
|
|
175
175
|
|
176
176
|
page2 = Gtk::VBox.new(false, 2)
|
177
177
|
about_frame = Gtk::Frame.new()
|
178
|
-
about = "gsWax version 0.
|
178
|
+
about = "gsWax version 0.0.2\nhttps://github.com/lljk/gsWax"
|
179
179
|
about_text = Gtk::Label.new(about)
|
180
180
|
about_text.set_alignment(0.05, 0.5)
|
181
181
|
about_text.set_wrap(true)
|
@@ -196,7 +196,7 @@ class SettingsManager
|
|
196
196
|
if Settings.music_dir
|
197
197
|
open_dir = Settings.music_dir if File.exists?(Settings.music_dir)
|
198
198
|
else
|
199
|
-
open_dir =
|
199
|
+
open_dir = File.dirname(File.expand_path(__FILE__))
|
200
200
|
end
|
201
201
|
dialog = Gtk::FileChooserDialog.new(
|
202
202
|
nil,nil,
|
data/lib/gswax/shared.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
=begin
|
2
2
|
|
3
|
-
this file is part of: gsWax v. 0.
|
3
|
+
this file is part of: gsWax v. 0.0.2
|
4
4
|
|
5
5
|
You should have received a copy of the GNU General Public License
|
6
6
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
@@ -11,9 +11,9 @@ require 'yaml'
|
|
11
11
|
|
12
12
|
module Settings
|
13
13
|
|
14
|
-
def self.read
|
15
|
-
|
16
|
-
@settings_file = File.join(
|
14
|
+
def self.read
|
15
|
+
brains_dir = File.dirname(File.expand_path(__FILE__))
|
16
|
+
@settings_file = File.join(brains_dir, "settings", "settings.yml")
|
17
17
|
if File.exists?(@settings_file)
|
18
18
|
@settings = begin
|
19
19
|
YAML.load(File.open(@settings_file))
|
@@ -32,24 +32,21 @@ module Settings
|
|
32
32
|
[0, 0, 0],
|
33
33
|
nil,
|
34
34
|
0.5,
|
35
|
-
|
35
|
+
nil
|
36
36
|
]
|
37
|
+
FileUtils.mkdir_p(File.join(brains_dir, "settings"))
|
37
38
|
self.save
|
38
39
|
end
|
39
40
|
end
|
40
41
|
|
41
42
|
def self.save
|
42
|
-
#unless File.exists?(@settings_file)
|
43
|
-
# Dir.mkdir(File.join(@brains_dir, "settings"), 0777)
|
44
|
-
# File.new(@settings_file, "w")
|
45
|
-
#end
|
46
43
|
File.open(@settings_file, "w"){|file|
|
47
|
-
|
44
|
+
file.write(@settings.to_yaml)
|
48
45
|
}
|
49
46
|
end
|
50
47
|
|
51
48
|
def self.brains_dir
|
52
|
-
|
49
|
+
File.dirname(File.expand_path(__FILE__))
|
53
50
|
end
|
54
51
|
|
55
52
|
def self.settings
|
data/lib/gswax/turntable.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
=begin
|
2
2
|
|
3
|
-
this file is part of: gsWax v. 0.
|
3
|
+
this file is part of: gsWax v. 0.0.2
|
4
4
|
|
5
5
|
You should have received a copy of the GNU General Public License
|
6
6
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
@@ -189,7 +189,7 @@ class Turntable
|
|
189
189
|
cover_file = File.join(Settings.brains_dir, "images", "no_cover.png")
|
190
190
|
cover_size = 485.0 * Settings.scale
|
191
191
|
|
192
|
-
if path
|
192
|
+
if path && File.exists?(path)
|
193
193
|
dir = File.dirname(path)
|
194
194
|
Dir.chdir(dir)
|
195
195
|
files = Dir['*.{jpg,JPG,png,PNG,gif,GIF}']
|
data/lib/gswax/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gswax
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-02-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: green_shoes
|
16
|
-
requirement: &
|
16
|
+
requirement: &72033980 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *72033980
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: gstreamer
|
27
|
-
requirement: &
|
27
|
+
requirement: &72033760 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *72033760
|
36
36
|
description: an audio player for folks who miss thier vinyl
|
37
37
|
email:
|
38
38
|
- jakekaiden@gmail.com
|
@@ -79,7 +79,7 @@ files:
|
|
79
79
|
- lib/gswax/version.rb
|
80
80
|
- lib/gswax.rb
|
81
81
|
- bin/gswax
|
82
|
-
homepage:
|
82
|
+
homepage: https://sites.google.com/site/gswax0/home
|
83
83
|
licenses: []
|
84
84
|
post_install_message:
|
85
85
|
rdoc_options: []
|
@@ -99,9 +99,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
99
99
|
version: '0'
|
100
100
|
requirements: []
|
101
101
|
rubyforge_project:
|
102
|
-
rubygems_version: 1.8.
|
102
|
+
rubygems_version: 1.8.15
|
103
103
|
signing_key:
|
104
104
|
specification_version: 3
|
105
105
|
summary: an audio player for folks who miss their vinyl
|
106
106
|
test_files: []
|
107
|
-
has_rdoc:
|