phlex 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of phlex might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8df07c966d273976d91feebba2528a5cdacb5bb28116af48a54f42a97128ad94
4
- data.tar.gz: 638529d514e4d1938ec0c0bab224969cc16a252752da3e1ab67ae2f217f4ea3e
3
+ metadata.gz: 9cd9fd26d33fcf92978a26d9d94b81485871fa3f54c98639eb4ba5932960df84
4
+ data.tar.gz: c8f0ded1ee9cd43c12e8358af687b7fe4f21e732031ca4fb009020dfaaeb72b5
5
5
  SHA512:
6
- metadata.gz: 3728d8501c975eef2caa6c8b7c78d98d0f4aa654a88787e13e58c608331112b06074a177f401f6691713e8bbc4eac863e2b318e6d58cc61a3bfa38319e69e82d
7
- data.tar.gz: bfd075ce712b522da689ed643b9a52536a80a7e779b807e8994c00a623a9e45b8a051f2dc78166efeebed047f02cda97c10f70c8165b99325e9c0236937ab918
6
+ metadata.gz: 890ccb499d210d332f5b2213bfdce51bd1e2212c550b20b0d9de3d1698205ca45b82e86e7850dc037e07a43e3da70a011e27d2310618f203882a00b32750704d
7
+ data.tar.gz: fd9794d862a27ddaafa53c1f0d5fcecd3a967391083e2073922a2e83cbc19db7f95f4d19dd5db64b3c186e5c1c6292a6cef71dc05842c7216bd1e9b07046edc8
data/lib/phlex/html.rb CHANGED
@@ -126,6 +126,8 @@ module Phlex
126
126
 
127
127
  EVENT_ATTRIBUTES = %w[onabort onafterprint onbeforeprint onbeforeunload onblur oncanplay oncanplaythrough onchange onclick oncontextmenu oncopy oncuechange oncut ondblclick ondrag ondragend ondragenter ondragleave ondragover ondragstart ondrop ondurationchange onemptied onended onerror onerror onfocus onhashchange oninput oninvalid onkeydown onkeypress onkeyup onload onloadeddata onloadedmetadata onloadstart onmessage onmousedown onmousemove onmouseout onmouseover onmouseup onmousewheel onoffline ononline onpagehide onpageshow onpaste onpause onplay onplaying onpopstate onprogress onratechange onreset onresize onscroll onsearch onseeked onseeking onselect onstalled onstorage onsubmit onsuspend ontimeupdate ontoggle onunload onvolumechange onwaiting onwheel].to_h { [_1, true] }.freeze
128
128
 
129
+ UNBUFFERED_MUTEX = Mutex.new
130
+
129
131
  extend Elements
130
132
  include Helpers
131
133
 
@@ -149,6 +151,16 @@ module Phlex
149
151
  alias_method :__attributes__, :__final_attributes__
150
152
  alias_method :call, :__final_call__
151
153
  end
154
+
155
+ def __unbuffered_class__
156
+ UNBUFFERED_MUTEX.synchronize do
157
+ if defined? @unbuffered_class
158
+ @unbuffered_class
159
+ else
160
+ @unbuffered_class = Class.new(Unbuffered)
161
+ end
162
+ end
163
+ end
152
164
  end
153
165
 
154
166
  def call(...)
@@ -272,6 +284,10 @@ module Phlex
272
284
  @_target = original_buffer
273
285
  end
274
286
 
287
+ def unbuffered
288
+ self.class.__unbuffered_class__.new(self)
289
+ end
290
+
275
291
  # Like `capture` but the output is vanished into a BlackHole buffer.
276
292
  # Becuase the BlackHole does nothing with the output, this should be faster.
277
293
  private def __vanish__(*args)
@@ -2,13 +2,6 @@
2
2
 
3
3
  module Phlex
4
4
  class Unbuffered < BasicObject
5
- CACHE = ::Concurrent::Map.new
6
-
7
- def self.call(object)
8
- decorator = CACHE.compute_if_absent(object.class.name) { ::Class.new(self) }
9
- decorator.new(object)
10
- end
11
-
12
5
  def initialize(object)
13
6
  @object = object
14
7
  end
@@ -24,9 +17,6 @@ module Phlex
24
17
  define_method :__public_send__,
25
18
  ::Object.instance_method(:public_send)
26
19
 
27
- define_method :__callee__,
28
- ::Object.instance_method(:__callee__)
29
-
30
20
  def respond_to_missing?(...)
31
21
  @object.respond_to?(...)
32
22
  end
@@ -39,7 +29,7 @@ module Phlex
39
29
  end
40
30
 
41
31
  # Now we've defined this missing method, we can call it.
42
- __public_send__(name, *args, &block)
32
+ __public_send__(name, *args, **kwargs, &block)
43
33
  else
44
34
  super
45
35
  end
data/lib/phlex/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Phlex
4
- VERSION = "1.3.0"
4
+ VERSION = "1.3.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phlex
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joel Drapper
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-28 00:00:00.000000000 Z
11
+ date: 2023-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby