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 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: