mpv 1.2.1 → 2.0.1

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,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c5f7875932a25a59627917afb95371783162e45c
4
- data.tar.gz: 621441b57e73a1e599616e4ef7f3fbd980eb0a3d
3
+ metadata.gz: 5a28500919bd886fcb25f03be50439131c8f9c12
4
+ data.tar.gz: aa2dd2f726680599a0b6e48266e1586755bc8f38
5
5
  SHA512:
6
- metadata.gz: bea68288b46ccf3802c3fc59e0e5c99a297475d5f18ebf8d8a71825b0be9a5574c2281b8732fc62095333a24a94f8c7806a4c2ad2abc4b8fa1914b32e19e71dc
7
- data.tar.gz: 54c7eee347775ddb511177fb02559182a986e633e3f20a7d44d93f276fbd6524cbe9a4894c35f4a802f35e479b2a8fafcfe6520e07004d10577893a7d53ef64c
6
+ metadata.gz: 2405d8b355035b1dffb513e92f89a1b5975816a3c381c7d4d0dc7521f77d3e550675ce492540ecf34e974dfe256840a6d9c157fad5dd718ee6b911f4d69e07a2
7
+ data.tar.gz: e1e01d4e9735dab1b7cf2966cec6ee7d52bfa2697a5c0e73d62c831ad67b4b11288137a76cf1b5c097c23e675067fde9d2e4caf903aa52a9ae46685ffaa259f7
data/README.md CHANGED
@@ -23,7 +23,7 @@ def something_happened(event)
23
23
  end
24
24
 
25
25
  session = MPV::Session.new # contains both a MPV::Server and a MPV::Client
26
- session.callbacks << MPV::Callback.new(self, :something_happened)
26
+ session.callbacks << method(:something_happened)
27
27
  session.get_property "pause"
28
28
  session.command "get_version"
29
29
  session.command "loadlist", "my_huge_playlist.txt", "append"
data/lib/mpv.rb CHANGED
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative "mpv/exceptions"
2
4
  require_relative "mpv/utils"
3
- require_relative "mpv/callback"
4
5
  require_relative "mpv/client"
5
6
  require_relative "mpv/server"
6
7
  require_relative "mpv/session"
@@ -8,5 +9,5 @@ require_relative "mpv/session"
8
9
  # The toplevel namespace for ruby-mpv.
9
10
  module MPV
10
11
  # The current version of ruby-mpv.
11
- VERSION = "1.2.1".freeze
12
+ VERSION = "2.0.1"
12
13
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "socket"
2
4
  require "json"
3
5
  require "thread"
@@ -13,7 +15,7 @@ module MPV
13
15
  # @return [String] the path of the socket used to communicate with mpv
14
16
  attr_reader :socket_path
15
17
 
16
- # @return [Array<MPV::Callback>] callback objects that will be invoked
18
+ # @return [Array<Proc>] callback procs that will be invoked
17
19
  # whenever mpv emits an event
18
20
  attr_accessor :callbacks
19
21
 
@@ -50,7 +52,7 @@ module MPV
50
52
  return unless alive?
51
53
 
52
54
  payload = {
53
- "command" => args
55
+ "command" => args,
54
56
  }
55
57
 
56
58
  @command_queue << JSON.generate(payload)
@@ -84,8 +86,7 @@ module MPV
84
86
  # @return [void]
85
87
  # @note this object becomes garbage once this method is run
86
88
  def quit!
87
- return unless alive?
88
- command "quit"
89
+ command "quit" if alive?
89
90
  ensure
90
91
  @alive = false
91
92
  @socket = nil
@@ -131,7 +132,7 @@ module MPV
131
132
 
132
133
  callbacks.each do |callback|
133
134
  Thread.new do
134
- callback.dispatch! event
135
+ callback.call event
135
136
  end
136
137
  end
137
138
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module MPV
2
4
  # A generic error class for ruby-mpv.
3
5
  class MPVError < RuntimeError
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "tempfile"
2
4
 
3
5
  module MPV
@@ -19,14 +21,14 @@ module MPV
19
21
 
20
22
  # @return [Boolean] whether `mpv` supports the given flag
21
23
  # @note returns false if `mpv` is not available
22
- def self.has_flag?(flag)
24
+ def self.flag?(flag)
23
25
  return false unless available?
24
26
 
25
27
  # MPV allows flags to be suffixed with =yes or =no, but doesn't
26
28
  # include these variations in their list. They also allow a --no-
27
29
  # prefix that isn't included in the list, so we normalize these out.
28
30
  # Additionally, we need to remove trailing arguments.
29
- normalized_flag = flag.sub(/^--no-/, '--').sub(/=\S*/, '')
31
+ normalized_flag = flag.sub(/^--no-/, "--").sub(/=\S*/, "")
30
32
 
31
33
  flags = `mpv --list-options`.split.select { |s| s.start_with?("--") }
32
34
  flags.include?(normalized_flag)
@@ -43,7 +45,7 @@ module MPV
43
45
  # @raise [MPVUnsupportedFlagError] if `mpv` does not support the given flag
44
46
  def self.ensure_flag!(flag)
45
47
  ensure_available!
46
- raise MPVUnsupportedFlagError, flag unless has_flag?(flag)
48
+ raise MPVUnsupportedFlagError, flag unless flag?(flag)
47
49
  end
48
50
 
49
51
  # @param path [String] the path of the socket to be created
@@ -57,7 +59,7 @@ module MPV
57
59
  @args = [
58
60
  "--idle",
59
61
  "--terminal=no",
60
- "--input-ipc-server=%{path}" % { path: @socket_path },
62
+ "--input-ipc-server=%<path>s" % { path: @socket_path },
61
63
  ].concat(user_args).uniq
62
64
 
63
65
  @args.each { |arg| self.class.ensure_flag! arg }
@@ -67,11 +69,9 @@ module MPV
67
69
 
68
70
  # @return [Boolean] whether or not the mpv process is running
69
71
  def running?
70
- begin
71
- !!@pid && Process.waitpid(@pid, Process::WNOHANG).nil?
72
- rescue Errno::ECHILD
73
- false
74
- end
72
+ !!@pid && Process.waitpid(@pid, Process::WNOHANG).nil?
73
+ rescue Errno::ECHILD
74
+ false
75
75
  end
76
76
  end
77
77
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "forwardable"
2
4
 
3
5
  module MPV
@@ -25,9 +27,7 @@ module MPV
25
27
 
26
28
  @server = Server.new(path: @socket_path, user_args: user_args)
27
29
 
28
- until File.exist?(@socket_path)
29
- sleep 0.1
30
- end
30
+ sleep 0.1 until File.exist?(@socket_path)
31
31
 
32
32
  @client = Client.new(@socket_path)
33
33
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module MPV
2
4
  # Various utility methods for ruby-mpv.
3
5
  module Utils
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mpv
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Woodruff
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-24 00:00:00.000000000 Z
11
+ date: 2017-06-04 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A library for creating and controlling mpv instances.
14
14
  email: william@tuffbizz.com
@@ -20,7 +20,6 @@ files:
20
20
  - LICENSE
21
21
  - README.md
22
22
  - lib/mpv.rb
23
- - lib/mpv/callback.rb
24
23
  - lib/mpv/client.rb
25
24
  - lib/mpv/exceptions.rb
26
25
  - lib/mpv/server.rb
@@ -38,7 +37,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
38
37
  requirements:
39
38
  - - ">="
40
39
  - !ruby/object:Gem::Version
41
- version: 2.0.0
40
+ version: 2.3.0
42
41
  required_rubygems_version: !ruby/object:Gem::Requirement
43
42
  requirements:
44
43
  - - ">="
@@ -46,7 +45,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
46
45
  version: '0'
47
46
  requirements: []
48
47
  rubyforge_project:
49
- rubygems_version: 2.5.2
48
+ rubygems_version: 2.6.11
50
49
  signing_key:
51
50
  specification_version: 4
52
51
  summary: mpv - A ruby library for controlling mpv processes.
@@ -1,35 +0,0 @@
1
- module MPV
2
- # Encapsulates an object-method pair that will be invoked whenever
3
- # an {MPV::Client} receives an event.
4
- class Callback
5
- # @return [Object] the object that the callback will be issued to
6
- attr_accessor :object
7
-
8
- # @return [Symbol] the method that the callback will invoke
9
- attr_accessor :method
10
-
11
- # @param object [Object] the object that the callback will be issued to
12
- # @param method [Symbol] the method that the callback will invoke
13
- def initialize(object, method)
14
- @object = object
15
- @method = method
16
- end
17
-
18
- # Determines the validity of the instantiated callback. A callback
19
- # is said to be valid if the object responds to the given method
20
- # and the method has an arity of 1 (for the event data).
21
- # @return [Boolean] whether or not the callback is valid
22
- def valid?
23
- object.respond_to?(method) && object.method(method).arity == 1
24
- end
25
-
26
- # Dispatches the callback. Does nothing unless {#valid?} is true.
27
- # @param event [string] the event name
28
- # @return [void]
29
- def dispatch!(event)
30
- return unless valid?
31
-
32
- object.send method, event
33
- end
34
- end
35
- end