obsws 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e5e9cb2c558346b12dde7736519342ede8d4e0a366b1bd8b6e6d16df3009cafc
4
- data.tar.gz: bbafa4a7fdd292d4469d8ff368dbc42e97da22cd2551da2c57728928d19d70ce
3
+ metadata.gz: a79951b0215195512bd8972528425795f3893a3c9605009803f5583b36e54618
4
+ data.tar.gz: 4515b14d0bab1934e3eb1a8e5b626660a970ae1c6358c5ba2f47a6320562845b
5
5
  SHA512:
6
- metadata.gz: 05abfc47adc6b94e75acc55277fc78856f4cf9c003c358c16e447323d779435c1bb1f11654bde7665afdb67c6a063ec510e147a085b41a540af6e2881e4efaf9
7
- data.tar.gz: 3472fa88a6704b2c91e016b8edc9aade0d47e43b42997c9647b2306fea627d79cbb240193731abb374d9798cca08c76e69fc1a0061fdf4b0ab8dceec1b6a9ae5
6
+ metadata.gz: b43b242dc256207ebf7f5ebe78e720416a68a4e9dcfc665de3a880b9a027e859db1ae805aeb9e363bb5a3f62487fb0e19ee8cda2ff2d871cec24ff82e4e7fda6
7
+ data.tar.gz: d13c2e1bfdd1931f251f52d42b2851040bb352ba7991ea5ec678dae5631349125440201b65e64a6c01d1d61f2419cac7911f2f64abd1765fab9870a5224bafab
data/lib/obsws/event.rb CHANGED
@@ -35,27 +35,28 @@ module OBSWS
35
35
  end
36
36
 
37
37
  module Callbacks
38
- include Util
38
+ include Util::String
39
+
40
+ def observers
41
+ @observers ||= []
42
+ end
39
43
 
40
44
  def add_observer(observer)
41
- @observers = [] unless defined?(@observers)
42
45
  observer = [observer] if !observer.respond_to? :each
43
- observer.each { |o| @observers.append(o) }
46
+ observer.each { |o| observers << o }
44
47
  end
45
48
 
46
49
  def remove_observer(observer)
47
- @observers.delete(observer)
50
+ observers.delete(observer)
48
51
  end
49
52
 
50
53
  def notify_observers(event, data)
51
- if defined?(@observers)
52
- @observers.each do |o|
53
- if o.respond_to? "on_#{event.to_snake}"
54
- if data.empty?
55
- o.send("on_#{event.to_snake}")
56
- else
57
- o.send("on_#{event.to_snake}", data)
58
- end
54
+ observers.each do |o|
55
+ if o.respond_to? "on_#{snakecase(event)}"
56
+ if data.empty?
57
+ o.send("on_#{snakecase(event)}")
58
+ else
59
+ o.send("on_#{snakecase(event)}", data)
59
60
  end
60
61
  end
61
62
  end
data/lib/obsws/mixin.rb CHANGED
@@ -3,11 +3,11 @@ require_relative "util"
3
3
  module OBSWS
4
4
  module Mixin
5
5
  module Meta
6
- include Util
6
+ include Util::String
7
7
 
8
8
  def make_field_methods(*params)
9
9
  params.each do |param|
10
- define_singleton_method(param.to_s.to_snake) { @resp[param] }
10
+ define_singleton_method(snakecase(param.to_s)) { @resp[param] }
11
11
  end
12
12
  end
13
13
  end
@@ -23,7 +23,7 @@ module OBSWS
23
23
 
24
24
  def empty? = @fields.empty?
25
25
 
26
- def attrs = @fields.map { |f| f.to_s.to_snake }
26
+ def attrs = @fields.map { |f| snakecase(f.to_s) }
27
27
  end
28
28
 
29
29
  class Response < MetaObject
data/lib/obsws/util.rb CHANGED
@@ -1,12 +1,13 @@
1
1
  module OBSWS
2
2
  module Util
3
- class ::String
4
- def to_camel
5
- split("_").map(&:capitalize).join
3
+ module String
4
+ def camelcase(s)
5
+ s.split("_").map(&:capitalize).join
6
6
  end
7
7
 
8
- def to_snake
9
- gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
8
+ def snakecase(s)
9
+ s
10
+ .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
10
11
  .gsub(/([a-z\d])([A-Z])/, '\1_\2')
11
12
  .downcase
12
13
  end
data/lib/obsws/version.rb CHANGED
@@ -11,7 +11,7 @@ module OBSWS
11
11
  end
12
12
 
13
13
  def patch
14
- 2
14
+ 3
15
15
  end
16
16
 
17
17
  def to_a
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: obsws
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - onyx_online