spotify_osx_controller 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f1cc92301a8266f4a6e65e03775d482ff66952bb
4
+ data.tar.gz: 064aba3d986c3ad5d9e85200d1b4599677754f11
5
+ SHA512:
6
+ metadata.gz: 37dd431a8202a1e9ddee37e2d295f20d6a1cd0c4decba36bf151d77d5c5b75e7de09837ba2b6d688be9fe3be7f52b231098368218bae41fdb7fe3a9d2f0af375
7
+ data.tar.gz: 19286fcdb0ab4a5ab0bf57a62b81a88760e748de6b904be623a7ce21e5d487a954f40c0a0069877ab459a451f496af563bf55a9876b6f3ecab7849710d275356
data/.DS_Store ADDED
Binary file
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in spotify_osx_controller.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,39 @@
1
+ # SpotifyOsxController
2
+
3
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/spotify_osx_controller`. To experiment with that code, run `bin/console` for an interactive prompt.
4
+
5
+ TODO: Delete this and the text above, and describe your gem
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'spotify_osx_controller'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install spotify_osx_controller
22
+
23
+ ## Usage
24
+
25
+ TODO: Write usage instructions here
26
+
27
+ ## Development
28
+
29
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
30
+
31
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
+
33
+ ## Contributing
34
+
35
+ 1. Fork it ( https://github.com/[my-github-username]/spotify_osx_controller/fork )
36
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
37
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
38
+ 4. Push to the branch (`git push origin my-new-feature`)
39
+ 5. Create a new Pull Request
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/SpotifyControl.rb ADDED
@@ -0,0 +1,200 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ class Command
4
+
5
+ def self.play(url)
6
+ if url
7
+ buildScript "tell application \"Spotify\" to play track \"#{url}\"\n"
8
+ else
9
+ buildScript "tell application \"Spotify\" to play\n"
10
+ end
11
+ end
12
+
13
+ def self.play_pause
14
+ buildScript String <<-END
15
+ tell application "Spotify" to playpause
16
+ END
17
+ end
18
+
19
+ def self.pause
20
+ buildScript "tell application \"Spotify\" to pause"
21
+ end
22
+
23
+ def self.next
24
+ buildScript "tell application \"Spotify\" to next track"
25
+ end
26
+
27
+ def self.previous
28
+ buildScript "tell application \"Spotify\" to previous track"
29
+ end
30
+
31
+ def self.jump seconds
32
+ return if !seconds
33
+ buildScript String <<-END
34
+ tell application "Spotify"
35
+ set jumpTo to #{seconds} as real
36
+ set tMax to duration of current track
37
+ if jumpTo > tMax
38
+ return "Can't jump past end of track."
39
+ else if jumpTo < 0
40
+ return "Can't jump past start of track."
41
+ end if
42
+ set nM to round (jumpTo / 60) rounding down
43
+ set nS to round (jumpTo mod 60) rounding down
44
+ set newTime to nM as text & "min " & nS as text & "s"
45
+ set player position to jumpTo
46
+ return "Jumped to " & newTime
47
+ end tell
48
+ END
49
+ end
50
+
51
+ def self.forward seconds
52
+ return if !seconds
53
+ buildScript String <<-END
54
+ set jump to #{seconds} as real
55
+ tell application "Spotify"
56
+ set now to player position
57
+ set tMax to duration of current track
58
+ set jumpTo to now + jump
59
+ if jumpTo > tMax
60
+ return "Can't jump past end of track."
61
+ else if jumpTo < 0
62
+ set jumpTo to 0
63
+ end if
64
+ set nM to round (jumpTo / 60) rounding down
65
+ set nS to round (jumpTo mod 60) rounding down
66
+ set newTime to nM as text & "min " & nS as text & "s"
67
+ set player position to jumpTo
68
+ return "Jumped to " & newTime
69
+ end tell
70
+ END
71
+ end
72
+
73
+ def self.rewind seconds
74
+ return if !seconds
75
+ buildScript String <<-END
76
+ set jump to #{seconds} as real
77
+ tell application "Spotify"
78
+ set now to player position
79
+ set tMax to duration of current track
80
+ set jumpTo to now - jump
81
+ if jumpTo > tMax
82
+ return "Can't jump past end of track."
83
+ else if jumpTo < 0
84
+ set jumpTo to 0
85
+ end if
86
+ set nM to round (jumpTo / 60) rounding down
87
+ set nS to round (jumpTo mod 60) rounding down
88
+ set newTime to nM as text & "min " & nS as text & "s"
89
+ set player position to jumpTo
90
+ return "Jumped to " & newTime
91
+ end tell
92
+ END
93
+ end
94
+
95
+ def self.volume volume
96
+ return if !volume
97
+ buildScript String <<-END
98
+ set newVolume to #{volume} as real
99
+ if newVolume < 0 then set newVolume to 0
100
+ if newVolume > 100 then set newVolume to 100
101
+ tell application "Spotify"
102
+ set sound volume to newVolume
103
+ end tell
104
+ return "Changed volume to " & newVolume
105
+ END
106
+ end
107
+
108
+ def self.shuffle
109
+ buildScript String <<-END
110
+ tell application "Spotify"
111
+ set shuffling to not shuffling
112
+ return "Shuffle is now " & shuffling
113
+ end tell
114
+ END
115
+ end
116
+
117
+ def self.repeat
118
+ buildScript String <<-END
119
+ tell application "Spotify"
120
+ set repeating to not repeating
121
+ return "Repeat is now " & repeating
122
+ end tell
123
+ END
124
+ end
125
+
126
+ def self.info
127
+ buildScript String <<-END
128
+ set info to "Error."
129
+ tell application "Spotify"
130
+ set myTrack to name of current track
131
+ set myArtist to artist of current track
132
+ set myAlbum to album of current track
133
+ set tM to round (duration of current track / 60) rounding down
134
+ set tS to duration of current track mod 60
135
+ set myTime to tM as text & "min " & tS as text & "s"
136
+ set nM to round (player position / 60) rounding down
137
+ set nS to round (player position mod 60) rounding down
138
+ set nowAt to player position
139
+ set info to "{"
140
+ set info to info & "\\"artist\\": \\"" & myArtist & "\\","
141
+ set info to info & "\\"track\\": \\"" & myTrack & "\\","
142
+ set info to info & "\\"album\\": \\"" & myAlbum & "\\","
143
+ set info to info & "\\"URI\\": \\"" & spotify url of current track & "\\","
144
+ set info to info & "\\"duration\\": \\"" & duration of current track & "\\","
145
+ set info to info & "\\"player\\": \\"" & player state & "\\","
146
+ set info to info & "\\"position\\": \\"" & nowAt & "\\""
147
+ set info to info & "}"
148
+ end tell
149
+ return info
150
+ END
151
+ end
152
+
153
+ private
154
+
155
+ def self.buildScript(body)
156
+ header = "using terms from application \"Spotify\""
157
+ footer = "end using terms from"
158
+ osascript <<-END
159
+ #{header}
160
+ #{body}
161
+ #{footer}
162
+ END
163
+ end
164
+
165
+ def self.osascript(script)
166
+ system 'osascript', *script.split(/\n/).map { |line| ['-e', line] }.flatten
167
+ end
168
+ end
169
+
170
+ command = ARGV[0]
171
+ arg1 = ARGV[1]
172
+ case command.downcase
173
+ when 'play', 'start'
174
+ Command.play arg1
175
+ when 'play/pause'
176
+ Command.play_pause
177
+ when 'pause', 'stop'
178
+ Command.pause
179
+ when 'next'
180
+ Command.next
181
+ when 'previous'
182
+ Command.previous
183
+ when 'jump'
184
+ Command.jump arg1
185
+ when 'forward'
186
+ Command.forward arg1
187
+ when 'rewind'
188
+ Command.rewind arg1
189
+ when 'volume'
190
+ Command.volume arg1
191
+ when 'shuffle'
192
+ Command.shuffle
193
+ when 'repeat'
194
+ Command.repeat
195
+ when 'info'
196
+ Command.info
197
+ exit
198
+ end
199
+
200
+ Command.info
@@ -0,0 +1,157 @@
1
+ on run argv
2
+ if count of argv is equal to 0 then
3
+ set msg to "Use the following commands:\n"
4
+ set msg to msg & " start, play [uri] - Start playback / play uri\n"
5
+ set msg to msg & " pause, stop - Stop playback\n"
6
+ set msg to msg & " play/pause - Toggle playback\n"
7
+ set msg to msg & " next - Next track\n"
8
+ set msg to msg & " previous, prev - Previous track\n"
9
+ set msg to msg & " info - Print track info\n"
10
+ set msg to msg & " jump N - Jump to N seconds in the song\n"
11
+ set msg to msg & " forward N - Jump N seconds forwards\n"
12
+ set msg to msg & " rewind N - Jump N seconds backwards\n"
13
+ set msg to msg & " shuffle - Toggle shuffle\n"
14
+ set msg to msg & " repeat - Toggle repeat\n"
15
+ set msg to msg & " volume N - Set Volume to N (0...100)\n"
16
+ return msg
17
+ end if
18
+ set command to item 1 of argv
19
+ using terms from application "Spotify"
20
+ set info to "Error."
21
+ if command is equal to "play" or command is equal to "start" then
22
+ if count of argv is equal to 1 then
23
+ tell application "Spotify" to play
24
+ else
25
+ set uri to item 2 of argv
26
+ tell application "Spotify" to play track uri
27
+ end if
28
+ else if command is equal to "play/pause" then
29
+ tell application "Spotify" to playpause
30
+ return "Toggled."
31
+
32
+ else if command is equal to "pause" or command is equal to "stop" then
33
+ tell application "Spotify" to pause
34
+ return "Paused."
35
+
36
+ else if command is equal to "next" then
37
+ tell application "Spotify" to next track
38
+
39
+ else if command is equal to "previous" or command is equal to "prev" then
40
+ tell application "Spotify" to previous track
41
+
42
+ else if command is equal to "jump"
43
+ set jumpTo to item 2 of argv as real
44
+ tell application "Spotify"
45
+ set tMax to duration of current track
46
+ if jumpTo > tMax
47
+ return "Can't jump past end of track."
48
+ else if jumpTo < 0
49
+ return "Can't jump past start of track."
50
+ end if
51
+ set nM to round (jumpTo / 60) rounding down
52
+ set nS to round (jumpTo mod 60) rounding down
53
+ set newTime to nM as text & "min " & nS as text & "s"
54
+ set player position to jumpTo
55
+ return "Jumped to " & newTime
56
+ end tell
57
+
58
+ else if command is equal to "forward"
59
+ set jump to item 2 of argv as real
60
+ tell application "Spotify"
61
+ set now to player position
62
+ set tMax to duration of current track
63
+ set jumpTo to now + jump
64
+ if jumpTo > tMax
65
+ return "Can't jump past end of track."
66
+ else if jumpTo < 0
67
+ set jumpTo to 0
68
+ end if
69
+ set nM to round (jumpTo / 60) rounding down
70
+ set nS to round (jumpTo mod 60) rounding down
71
+ set newTime to nM as text & "min " & nS as text & "s"
72
+ set player position to jumpTo
73
+ return "Jumped to " & newTime
74
+ end tell
75
+
76
+ else if command is equal to "rewind"
77
+ set jump to item 2 of argv as real
78
+ tell application "Spotify"
79
+ set now to player position
80
+ set tMax to duration of current track
81
+ set jumpTo to now - jump
82
+ if jumpTo > tMax
83
+ return "Can't jump past end of track."
84
+ else if jumpTo < 0
85
+ set jumpTo to 0
86
+ end if
87
+ set nM to round (jumpTo / 60) rounding down
88
+ set nS to round (jumpTo mod 60) rounding down
89
+ set newTime to nM as text & "min " & nS as text & "s"
90
+ set player position to jumpTo
91
+ return "Jumped to " & newTime
92
+ end tell
93
+
94
+ else if command is equal to "volume" then
95
+ set newVolume to item 2 of argv as real
96
+ if newVolume < 0 then set newVolume to 0
97
+ if newVolume > 100 then set newVolume to 100
98
+ tell application "Spotify"
99
+ set sound volume to newVolume
100
+ end tell
101
+ return "Changed volume to " & newVolume
102
+
103
+ else if command is equal to "shuffle" then
104
+ tell application "Spotify"
105
+ set shuffling to not shuffling
106
+ return "Shuffle is now " & shuffling
107
+ end tell
108
+
109
+ else if command is equal to "repeat" then
110
+ tell application "Spotify"
111
+ set repeating to not repeating
112
+ return "Repeat is now " & repeating
113
+ end tell
114
+
115
+ else if command is equal to "info" then
116
+ my getInfo()
117
+ end if
118
+
119
+ tell application "Spotify"
120
+ if player state as text is equal to "playing"
121
+ my getInfo()
122
+ end if
123
+ end tell
124
+
125
+
126
+ end using terms from
127
+ end run
128
+
129
+
130
+ on getInfo()
131
+ set info to "Error."
132
+ tell application "Spotify"
133
+ set myTrack to name of current track
134
+ set myArtist to artist of current track
135
+ set myAlbum to album of current track
136
+ set tM to round (duration of current track / 60) rounding down
137
+ set tS to duration of current track mod 60
138
+ set myTime to tM as text & "min " & tS as text & "s"
139
+ set nM to round (player position / 60) rounding down
140
+ set nS to round (player position mod 60) rounding down
141
+ set nowAt to player position
142
+ set info to "{"
143
+ set info to info & "\n \"artist\": \"" & myArtist & "\","
144
+ set info to info & "\n \"track\": \"" & myTrack & "\","
145
+ set info to info & "\n \"album\": \"" & myAlbum & "\","
146
+ set info to info & "\n \"URI\": \"" & spotify url of current track & "\","
147
+ set info to info & "\n \"duration\": \"" & mytime & " ("& duration of current track & " seconds)" & "\","
148
+ set info to info & "\n \"player\": \"" & player state & "\""
149
+ set info to info & "\n \"position\": \"" & nowAt & "\"\n"
150
+ set info to info & "}"
151
+ end tell
152
+ return info
153
+ end getInfo
154
+
155
+
156
+
157
+
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "spotify_osx_controller"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
data/bin/setup ADDED
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+
5
+ bundle install
6
+
7
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env ruby
2
+ require "spotify_osx_controller"
3
+
4
+ command = ARGV[0]
5
+ arg1 = ARGV[1]
6
+ case command.downcase
7
+ when 'play', 'start'
8
+ SpotifyOsxController.play arg1
9
+ when 'play/pause'
10
+ SpotifyOsxController.play_pause
11
+ when 'pause', 'stop'
12
+ SpotifyOsxController.pause
13
+ when 'next'
14
+ SpotifyOsxController.next
15
+ when 'previous'
16
+ SpotifyOsxController.previous
17
+ when 'jump'
18
+ SpotifyOsxController.jump arg1
19
+ when 'forward'
20
+ SpotifyOsxController.forward arg1
21
+ when 'rewind'
22
+ SpotifyOsxController.rewind arg1
23
+ when 'volume'
24
+ SpotifyOsxController.volume arg1
25
+ when 'shuffle'
26
+ SpotifyOsxController.shuffle
27
+ when 'repeat'
28
+ SpotifyOsxController.repeat
29
+ when 'info'
30
+ SpotifyOsxController.info
31
+ exit
32
+ end
33
+
34
+ SpotifyOsxController.info
@@ -0,0 +1,172 @@
1
+ require "spotify_osx_controller/version"
2
+
3
+ module SpotifyOsxController
4
+ def self.play(url)
5
+ if url
6
+ buildScript "tell application \"Spotify\" to play track \"#{url}\"\n"
7
+ else
8
+ buildScript "tell application \"Spotify\" to play\n"
9
+ end
10
+ end
11
+
12
+ def self.play_pause
13
+ buildScript String <<-END
14
+ tell application "Spotify" to playpause
15
+ END
16
+ end
17
+
18
+ def self.stop
19
+ pause
20
+ end
21
+
22
+ def self.pause
23
+ buildScript "tell application \"Spotify\" to pause"
24
+ end
25
+
26
+ def self.next
27
+ buildScript "tell application \"Spotify\" to next track"
28
+ end
29
+
30
+ def self.previous
31
+ buildScript "tell application \"Spotify\" to previous track"
32
+ end
33
+
34
+ def self.jump seconds
35
+ return if !seconds
36
+ buildScript String <<-END
37
+ tell application "Spotify"
38
+ set jumpTo to #{seconds} as real
39
+ set tMax to duration of current track
40
+ if jumpTo > tMax
41
+ return "Can't jump past end of track."
42
+ else if jumpTo < 0
43
+ return "Can't jump past start of track."
44
+ end if
45
+ set nM to round (jumpTo / 60) rounding down
46
+ set nS to round (jumpTo mod 60) rounding down
47
+ set newTime to nM as text & "min " & nS as text & "s"
48
+ set player position to jumpTo
49
+ return "Jumped to " & newTime
50
+ end tell
51
+ END
52
+ end
53
+
54
+ def self.forward seconds
55
+ return if !seconds
56
+ buildScript String <<-END
57
+ set jump to #{seconds} as real
58
+ tell application "Spotify"
59
+ set now to player position
60
+ set tMax to duration of current track
61
+ set jumpTo to now + jump
62
+ if jumpTo > tMax
63
+ return "Can't jump past end of track."
64
+ else if jumpTo < 0
65
+ set jumpTo to 0
66
+ end if
67
+ set nM to round (jumpTo / 60) rounding down
68
+ set nS to round (jumpTo mod 60) rounding down
69
+ set newTime to nM as text & "min " & nS as text & "s"
70
+ set player position to jumpTo
71
+ return "Jumped to " & newTime
72
+ end tell
73
+ END
74
+ end
75
+
76
+ def self.rewind seconds
77
+ return if !seconds
78
+ buildScript String <<-END
79
+ set jump to #{seconds} as real
80
+ tell application "Spotify"
81
+ set now to player position
82
+ set tMax to duration of current track
83
+ set jumpTo to now - jump
84
+ if jumpTo > tMax
85
+ return "Can't jump past end of track."
86
+ else if jumpTo < 0
87
+ set jumpTo to 0
88
+ end if
89
+ set nM to round (jumpTo / 60) rounding down
90
+ set nS to round (jumpTo mod 60) rounding down
91
+ set newTime to nM as text & "min " & nS as text & "s"
92
+ set player position to jumpTo
93
+ return "Jumped to " & newTime
94
+ end tell
95
+ END
96
+ end
97
+
98
+ def self.volume volume
99
+ return if !volume
100
+ buildScript String <<-END
101
+ set newVolume to #{volume} as real
102
+ if newVolume < 0 then set newVolume to 0
103
+ if newVolume > 100 then set newVolume to 100
104
+ tell application "Spotify"
105
+ set sound volume to newVolume
106
+ end tell
107
+ return "Changed volume to " & newVolume
108
+ END
109
+ end
110
+
111
+ def self.shuffle
112
+ buildScript String <<-END
113
+ tell application "Spotify"
114
+ set shuffling to not shuffling
115
+ return "Shuffle is now " & shuffling
116
+ end tell
117
+ END
118
+ end
119
+
120
+ def self.repeat
121
+ buildScript String <<-END
122
+ tell application "Spotify"
123
+ set repeating to not repeating
124
+ return "Repeat is now " & repeating
125
+ end tell
126
+ END
127
+ end
128
+
129
+ def self.info
130
+ buildScript String <<-END
131
+ set info to "Error."
132
+ tell application "Spotify"
133
+ set myTrack to name of current track
134
+ set myArtist to artist of current track
135
+ set myAlbum to album of current track
136
+ set tM to round (duration of current track / 60) rounding down
137
+ set tS to duration of current track mod 60
138
+ set myTime to tM as text & "min " & tS as text & "s"
139
+ set nM to round (player position / 60) rounding down
140
+ set nS to round (player position mod 60) rounding down
141
+ set nowAt to player position
142
+ set info to "{"
143
+ set info to info & "\\"artist\\": \\"" & myArtist & "\\","
144
+ set info to info & "\\"track\\": \\"" & myTrack & "\\","
145
+ set info to info & "\\"album\\": \\"" & myAlbum & "\\","
146
+ set info to info & "\\"URI\\": \\"" & spotify url of current track & "\\","
147
+ set info to info & "\\"duration\\": \\"" & duration of current track & "\\","
148
+ set info to info & "\\"player\\": \\"" & player state & "\\","
149
+ set info to info & "\\"position\\": \\"" & nowAt & "\\""
150
+ set info to info & "}"
151
+ end tell
152
+ return info
153
+ END
154
+ end
155
+
156
+ private
157
+
158
+ def self.buildScript(body)
159
+ header = "using terms from application \"Spotify\""
160
+ footer = "end using terms from"
161
+ osascript <<-END
162
+ #{header}
163
+ #{body}
164
+ #{footer}
165
+ END
166
+ end
167
+
168
+ def self.osascript(script)
169
+ system 'osascript', *script.split(/\n/).map { |line| ['-e', line] }.flatten
170
+ end
171
+
172
+ end
@@ -0,0 +1,3 @@
1
+ module SpotifyOsxController
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,24 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'spotify_osx_controller/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "spotify_osx_controller"
8
+ spec.version = SpotifyOsxController::VERSION
9
+ spec.authors = ["Daniel Swensson"]
10
+ spec.email = ["danielswensson@hotmail.com"]
11
+
12
+ spec.summary = %q{Ruby wrapper for Spotify applescript API}
13
+ spec.description = %q{Control Spotify running on a Mac}
14
+ spec.homepage = "https://github.com/DanielSwensson/SpotifyControl"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ spec.bindir = "bin"
18
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
+ spec.require_paths = ["lib"]
20
+
21
+
22
+ spec.add_development_dependency "bundler", "~> 1.9"
23
+ spec.add_development_dependency "rake", "~> 10.0"
24
+ end
metadata ADDED
@@ -0,0 +1,87 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: spotify_osx_controller
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Daniel Swensson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-02-10 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.9'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.9'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ description: Control Spotify running on a Mac
42
+ email:
43
+ - danielswensson@hotmail.com
44
+ executables:
45
+ - console
46
+ - setup
47
+ - spotify_osx_controller
48
+ extensions: []
49
+ extra_rdoc_files: []
50
+ files:
51
+ - ".DS_Store"
52
+ - ".gitignore"
53
+ - Gemfile
54
+ - README.md
55
+ - Rakefile
56
+ - SpotifyControl.rb
57
+ - SpotifyControl.scpt
58
+ - bin/console
59
+ - bin/setup
60
+ - bin/spotify_osx_controller
61
+ - lib/spotify_osx_controller.rb
62
+ - lib/spotify_osx_controller/version.rb
63
+ - spotify_osx_controller.gemspec
64
+ homepage: https://github.com/DanielSwensson/SpotifyControl
65
+ licenses: []
66
+ metadata: {}
67
+ post_install_message:
68
+ rdoc_options: []
69
+ require_paths:
70
+ - lib
71
+ required_ruby_version: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ requirements: []
82
+ rubyforge_project:
83
+ rubygems_version: 2.4.6
84
+ signing_key:
85
+ specification_version: 4
86
+ summary: Ruby wrapper for Spotify applescript API
87
+ test_files: []