Skip to content

Commit eccaa00

Browse files
authored
Improve buffered interface (#298)
1 parent 8f33ebe commit eccaa00

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

lib/phlex/rails/buffered.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,27 @@
11
# frozen_string_literal: true
22

33
module Phlex::Rails
4+
def Buffered(type)
5+
-> (value) { Phlex::Rails::Buffered === value && type === value.unwrap }
6+
end
7+
48
class Buffered < BasicObject
59
def initialize(object, component:)
610
@object = object
711
@component = component
812
end
913

1014
define_method :send, ::Kernel.instance_method(:send)
15+
define_method :class, ::Kernel.instance_method(:class)
16+
define_method :is_a?, ::Kernel.instance_method(:is_a?)
17+
18+
def inspect
19+
"Phlex::Rails::Buffered(#{@object.inspect})"
20+
end
21+
22+
def unwrap
23+
@object
24+
end
1125

1226
def respond_to_missing?(...)
1327
@object.respond_to?(...)

0 commit comments

Comments
 (0)