volumerb 0.0.1 → 0.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 +5 -13
- data/README.md +28 -8
- data/lib/volumerb.rb +28 -18
- data/lib/volumerb/linux_volume.rb +9 -4
- data/lib/volumerb/mac_volume.rb +9 -4
- data/lib/volumerb/version.rb +1 -1
- data/test/volumerb_test.rb +18 -0
- metadata +11 -12
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
ZmM2Nzg1ODgxYWI4ZWEwOWM5Nzk0MDBmOWYxYTE5MGI3YTI1YzQ5Mw==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 291e26073ab2bc2d6b31a36a411feacabfbfff74
|
4
|
+
data.tar.gz: b7b766aa186f874ad8f99a428bc937bc83ca0c6e
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
NDY5ODU2NjlhMjkyOWUyYWMzZTA2OGEzMDIwMDJiNTY2NjY5ZDhmNzRjYWI0
|
11
|
-
ZGViMTZmYWQzOTg4MjE1M2MwNWU0M2YwOWY4YmIxMGI4M2I1ODk=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
NTdhMzBjZmVlMGJhM2Y4ZDk1NWQ0M2RjYjc4YTMyOWQzODllZDYzMWE3MjJh
|
14
|
-
YjExNTJmNzNmYjZkYjM1ZmQ5ZGQ5NWQwNmNhODRhOWY5MTAzZjNjYTUwMDAz
|
15
|
-
NzYxZjAyMWY1YjZjNzk2MjlkZjcyNmMyOTJiNDU5YTJjNjUwZWI=
|
6
|
+
metadata.gz: 0b5fba40dcb77099474d1645e7bc406152dc04cb7e7bd74c75a9a17afde4ccd5c23eb329d5588334ce8a6f5001af88d3b6839fac5400bb369074133af1d4f1d3
|
7
|
+
data.tar.gz: ba429655b162266ed9c6cc5d6e79320fa5ce2cb83981943f9a54c285f398c51dab99192c9614dccbebdc6329584ef204be6698b3f7272df51a968c530838f11b
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Volumerb
|
1
|
+
# Volumerb 🔊
|
2
2
|
|
3
3
|
Gem to manage the volume on GNU/Linux and Mac OS X operating systems.
|
4
4
|
|
@@ -19,15 +19,36 @@ Or install it yourself as:
|
|
19
19
|
## Usage
|
20
20
|
|
21
21
|
The available methods are:
|
22
|
-
* `vol`
|
22
|
+
* `vol` - Returns the current volume state (on/off if unmuted/muted
|
23
23
|
and a value)
|
24
|
-
* `up`
|
25
|
-
* `down`
|
26
|
-
* `mute`
|
27
|
-
|
24
|
+
* `up` - Increases volume.
|
25
|
+
* `down` - Decreases volume.
|
26
|
+
* `mute` - Mutes/unmutes.
|
27
|
+
* `value` - Sets/gets the volume value
|
28
|
+
* `state` - Returns the volume state (muted/unmuted)
|
29
|
+
|
28
30
|
Example:
|
29
31
|
|
30
32
|
```ruby
|
33
|
+
$ irb
|
34
|
+
2.1.2 :001 > require 'volumerb'
|
35
|
+
=> true
|
36
|
+
2.1.2 :002 > Volumerb.vol
|
37
|
+
=> {:value=>100, :state=>"on"}
|
38
|
+
2.1.2 :003 > 10.times { Volumerb.down }
|
39
|
+
=> 10
|
40
|
+
2.1.2 :004 > Volumerb.value
|
41
|
+
=> 70
|
42
|
+
2.1.2 :005 > Volumerb.mute
|
43
|
+
=> {:value=>70, :state=>"off"}
|
44
|
+
2.1.2 :006 > Volumerb.mute
|
45
|
+
=> {:value=>70, :state=>"on"}
|
46
|
+
2.1.2 :007 > Volumerb.state
|
47
|
+
=> "on"
|
48
|
+
2.1.2 :008 > Volumerb.value = 30
|
49
|
+
=> 30
|
50
|
+
2.1.2 :009 > Volumerb.value = 100
|
51
|
+
=> 100
|
31
52
|
```
|
32
53
|
|
33
54
|
## Contributing
|
@@ -39,5 +60,4 @@ Example:
|
|
39
60
|
5. Create new Pull Request
|
40
61
|
|
41
62
|
## TODO
|
42
|
-
*
|
43
|
-
* Customize volume increase/decrease
|
63
|
+
* Customize volume increase/decrease percentage
|
data/lib/volumerb.rb
CHANGED
@@ -2,37 +2,47 @@
|
|
2
2
|
require 'volumerb/version'
|
3
3
|
|
4
4
|
module Volumerb
|
5
|
-
def self.up
|
6
|
-
mixer
|
7
|
-
@mixer.up
|
5
|
+
def self.up(value = 3)
|
6
|
+
mixer.up(value)
|
8
7
|
end
|
9
8
|
|
10
|
-
def self.down
|
11
|
-
mixer
|
12
|
-
@mixer.down
|
9
|
+
def self.down(value = 3)
|
10
|
+
mixer.down(value)
|
13
11
|
end
|
14
12
|
|
15
13
|
def self.mute
|
16
|
-
mixer
|
17
|
-
@mixer.mute
|
14
|
+
mixer.mute
|
18
15
|
end
|
19
16
|
|
20
17
|
def self.vol
|
21
|
-
mixer
|
22
|
-
|
18
|
+
mixer.vol
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.state
|
22
|
+
mixer.vol[:state]
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.value
|
26
|
+
mixer.vol[:value]
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.value=(value)
|
30
|
+
mixer.value = value
|
23
31
|
end
|
24
32
|
|
25
33
|
private
|
26
34
|
|
27
35
|
def self.mixer
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
+
@mixer ||= begin
|
37
|
+
if RUBY_PLATFORM =~ /linux/
|
38
|
+
require 'volumerb/linux_volume'
|
39
|
+
Volumerb::LinuxVolume
|
40
|
+
elsif RUBY_PLATFORM =~ /darwin|macos/
|
41
|
+
require 'volumerb/mac_volume'
|
42
|
+
Volumerb::MacVolume
|
43
|
+
else
|
44
|
+
raise "Unsupported Ruby platform"
|
45
|
+
end
|
36
46
|
end
|
37
47
|
end
|
38
48
|
end
|
@@ -1,13 +1,13 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
module Volumerb
|
3
3
|
module LinuxVolume
|
4
|
-
def self.up
|
5
|
-
`amixer -q sset Master
|
4
|
+
def self.up(value = 3)
|
5
|
+
`amixer -q sset Master #{value}%+`
|
6
6
|
vol
|
7
7
|
end
|
8
8
|
|
9
|
-
def self.down
|
10
|
-
`amixer -q sset Master
|
9
|
+
def self.down(value = 3)
|
10
|
+
`amixer -q sset Master #{value}%-`
|
11
11
|
vol
|
12
12
|
end
|
13
13
|
|
@@ -16,6 +16,11 @@ module Volumerb
|
|
16
16
|
vol
|
17
17
|
end
|
18
18
|
|
19
|
+
def self.value=(value)
|
20
|
+
`amixer set Master #{value}%`
|
21
|
+
vol
|
22
|
+
end
|
23
|
+
|
19
24
|
def self.vol
|
20
25
|
vol = `amixer get Master | grep "\[[0-9]*%\]\ \[o[n|f]"`
|
21
26
|
number = vol.match(/([0-9]+)%/)[1]
|
data/lib/volumerb/mac_volume.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
module Volumerb
|
3
3
|
module MacVolume
|
4
|
-
def self.up
|
4
|
+
def self.up(value = 3)
|
5
5
|
osa 'set currentVolume to output volume of (get volume settings)
|
6
|
-
set volume output volume (currentVolume +
|
6
|
+
set volume output volume (currentVolume + #{value})'
|
7
7
|
vol
|
8
8
|
end
|
9
9
|
|
10
|
-
def self.down
|
10
|
+
def self.down(value = 3)
|
11
11
|
osa 'set currentVolume to output volume of (get volume settings)
|
12
|
-
set volume output volume (currentVolume -
|
12
|
+
set volume output volume (currentVolume - #{value})'
|
13
13
|
vol
|
14
14
|
end
|
15
15
|
|
@@ -20,6 +20,11 @@ module Volumerb
|
|
20
20
|
vol
|
21
21
|
end
|
22
22
|
|
23
|
+
def self.value=(value)
|
24
|
+
osa 'set volume output volume (#{value})'
|
25
|
+
vol
|
26
|
+
end
|
27
|
+
|
23
28
|
def self.vol
|
24
29
|
# Mac OS X output:
|
25
30
|
# output volume:100, input volume:missing value, alert
|
data/lib/volumerb/version.rb
CHANGED
data/test/volumerb_test.rb
CHANGED
@@ -9,6 +9,14 @@ class VolumerbTest < Minitest::Test
|
|
9
9
|
assert_match(/on|off/, volume[:state])
|
10
10
|
end
|
11
11
|
|
12
|
+
def test_state
|
13
|
+
assert_match(/on|off/, Volumerb.state)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_value
|
17
|
+
assert_includes 0..100, Volumerb.value
|
18
|
+
end
|
19
|
+
|
12
20
|
def test_up
|
13
21
|
previous = Volumerb.vol[:value]
|
14
22
|
assert_operator(previous, :<, Volumerb.up[:value])
|
@@ -29,4 +37,14 @@ class VolumerbTest < Minitest::Test
|
|
29
37
|
# Restore volume
|
30
38
|
Volumerb.mute
|
31
39
|
end
|
40
|
+
|
41
|
+
def test_value
|
42
|
+
volume = Volumerb.value
|
43
|
+
assert_includes 0..100, volume
|
44
|
+
Volumerb.value = 50
|
45
|
+
assert_equal Volumerb.value, 50
|
46
|
+
Volumerb.value = 80
|
47
|
+
assert_equal Volumerb.value, 80
|
48
|
+
Volumerb.value = volume
|
49
|
+
end
|
32
50
|
end
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: volumerb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fernando Briano
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.3'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '10.2'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.2'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '5.3'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '5.3'
|
55
55
|
description: Gem to manage the computer's volume
|
@@ -59,7 +59,7 @@ executables: []
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
-
- .gitignore
|
62
|
+
- ".gitignore"
|
63
63
|
- Gemfile
|
64
64
|
- LICENSE.txt
|
65
65
|
- README.md
|
@@ -80,12 +80,12 @@ require_paths:
|
|
80
80
|
- lib
|
81
81
|
required_ruby_version: !ruby/object:Gem::Requirement
|
82
82
|
requirements:
|
83
|
-
- -
|
83
|
+
- - ">="
|
84
84
|
- !ruby/object:Gem::Version
|
85
85
|
version: '0'
|
86
86
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- -
|
88
|
+
- - ">="
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '0'
|
91
91
|
requirements: []
|
@@ -96,4 +96,3 @@ specification_version: 4
|
|
96
96
|
summary: Gem to manage the volume on GNU/Linux and Mac OS X operating systems
|
97
97
|
test_files:
|
98
98
|
- test/volumerb_test.rb
|
99
|
-
has_rdoc:
|