volumerb 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YTlmMDE4YjVlYTAxNTc2Y2ExYzFlNWY5MzBlNGJjYjU1ZDlhYmE5NQ==
5
- data.tar.gz: !binary |-
6
- ZmM2Nzg1ODgxYWI4ZWEwOWM5Nzk0MDBmOWYxYTE5MGI3YTI1YzQ5Mw==
2
+ SHA1:
3
+ metadata.gz: 291e26073ab2bc2d6b31a36a411feacabfbfff74
4
+ data.tar.gz: b7b766aa186f874ad8f99a428bc937bc83ca0c6e
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YjY1MWU1NGM0NWNjYTdjOTNhZmU2ZjViOTFiMmU1ZjkxODU1YjNiNjk4MmY1
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` - Returns the current volume state (on/off if unmuted/muted
22
+ * `vol` - Returns the current volume state (on/off if unmuted/muted
23
23
  and a value)
24
- * `up` - Increases volume.
25
- * `down` - Decreases volume.
26
- * `mute` - Mutes/unmutes sound., `vol` and `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
- * Method for setting the volume value directly, eg: Volumerb.vol = 30
43
- * Customize volume increase/decrease
63
+ * Customize volume increase/decrease percentage
@@ -2,37 +2,47 @@
2
2
  require 'volumerb/version'
3
3
 
4
4
  module Volumerb
5
- def self.up
6
- mixer unless @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 unless @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 unless @mixer
17
- @mixer.mute
14
+ mixer.mute
18
15
  end
19
16
 
20
17
  def self.vol
21
- mixer unless @mixer
22
- @mixer.vol
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
- if RUBY_PLATFORM =~ /linux/
29
- require 'volumerb/linux_volume'
30
- @mixer = Volumerb::LinuxVolume
31
- elsif RUBY_PLATFORM =~ /darwin|macos/
32
- require 'volumerb/mac_volume'
33
- @mixer = Volumerb::MacVolume
34
- else
35
- raise "Unsupported Ruby platform"
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 3%+`
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 3%-`
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]
@@ -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 + 3)'
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 - 3)'
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
@@ -1,4 +1,4 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  module Volumerb
3
- VERSION = '0.0.1'
3
+ VERSION = '0.1.0'
4
4
  end
@@ -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.1
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-28 00:00:00.000000000 Z
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: