isomorfeus-transport 1.0.0.zeta10 → 1.0.0.zeta11

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: 3d03e6a2c495ac1a9a3afb16b7b9cc3fa6f1b3908db385cec171df6b6c35bd3c
4
- data.tar.gz: 28d317e3675d25fdb2103f6c372f01c9c509205766b7eb6436cd67dd118b7d4b
3
+ metadata.gz: 4dd43b6af7e9c4592787be224ebcf05ede88f7169098cd773aa2ad2c5f314a1d
4
+ data.tar.gz: 4902ffccbc569314da2b83dbeee8422b3cad7d8a62ca94de6fdeb4c0d069f110
5
5
  SHA512:
6
- metadata.gz: d90b3e8090897bf91a24e36c8bb4f23b01af3ca132df3abe0fe3771af7a7758c962e99acd20e91417c767e175a8095baac6742579d248594b520d14eb3f71b91
7
- data.tar.gz: 5d9d84fed4b39966124fa24dc066931a76d0d8f12c426c7508e26cb44d935c31f23631f2479f4d6a7f10e765a05341d0bd3172bba0fea544198c1593fbf99a38
6
+ metadata.gz: 7f6570f7548f423cd6782e8bc3ea9574dc4fb0e63e0e7051a0c50f896aeba297bea40bfe2c3d448c30814235b8c4e66a5bf612e3d909d60c2320910e074fdf8f
7
+ data.tar.gz: c7be8c4efbb79221f4215a3734d40fd731710fdec8579ad3cad18db593cf2eef2eccc673c60697666afd50cb825c8b57b6517b91e0e2db2d8aa068525e0efc3a
@@ -1,5 +1,6 @@
1
1
  require 'isomorfeus-policy'
2
2
  require 'lucid_authentication/mixin'
3
+ require 'isomorfeus/transport/props_proxy'
3
4
  if RUBY_ENGINE == 'opal'
4
5
  require 'json'
5
6
  require 'isomorfeus/config'
@@ -0,0 +1,95 @@
1
+ module Isomorfeus
2
+ module Transport
3
+ class PropsProxy
4
+ def initialize(props_hash)
5
+ props_hash = {} unless props_hash
6
+ @props_hash = props_hash
7
+ end
8
+
9
+ def any?
10
+ @props_hash.keys.size > 0
11
+ end
12
+
13
+ if RUBY_ENGINE == 'opal'
14
+ def [](prop_name)
15
+ @props_hash[prop_name]
16
+ end
17
+
18
+ def []=(prop_name, value)
19
+ @props_hash[prop_name] = value
20
+ end
21
+
22
+ def key?(prop_name)
23
+ @props_hash.key?(prop_name)
24
+ end
25
+
26
+ def keys
27
+ @props_hash.keys
28
+ end
29
+
30
+ def method_missing(prop_name, *args, &block)
31
+ return @props_hash[prop_name] if @props_hash.key?(prop_name)
32
+ super(prop_name, *args, &block)
33
+ end
34
+
35
+ def set(prop_name, value)
36
+ @props_hash[prop_name] = value
37
+ end
38
+
39
+ def to_json
40
+ JSON.dump(to_transport)
41
+ end
42
+
43
+ def to_transport
44
+ transport_hash = {}.merge(@props_hash)
45
+ transport_hash
46
+ end
47
+ else # RUBY_ENGINE
48
+ def [](prop_name)
49
+ name = prop_name.to_sym
50
+ return @props_hash[name] if @props_hash.key?(name)
51
+ name = prop_name.to_s
52
+ return @props_hash[name] if @props_hash.key?(name)
53
+ nil
54
+ end
55
+
56
+ def []=(prop_name, value)
57
+ @props_hash[prop_name.to_sym] = value
58
+ end
59
+
60
+ def key?(prop_name)
61
+ @props_hash.key?(prop_name.to_sym) || @props_hash.key?(prop_name.to_s)
62
+ end
63
+
64
+ def keys
65
+ @props_hash.keys.map(&:to_sym)
66
+ end
67
+
68
+ def method_missing(prop_name, *args, &block)
69
+ name = prop_name.to_sym
70
+ return @props_hash[name] if @props_hash.key?(name)
71
+ name = prop_name.to_s
72
+ return @props_hash[name] if @props_hash.key?(name)
73
+ super(prop_name, *args, &block)
74
+ end
75
+
76
+ def set(prop_name, value)
77
+ @props_hash[prop_name.to_sym] = value
78
+ end
79
+
80
+ def to_json
81
+ Oj.dump(to_transport, mode: :strict)
82
+ end
83
+
84
+ def to_transport
85
+ transport_hash = {}.merge(@props_hash)
86
+ transport_hash.delete(:pub_sub_client)
87
+ transport_hash.delete(:current_user)
88
+ transport_hash
89
+ end
90
+ end # RUBY_ENGINE
91
+
92
+ alias_method :has_key?, :key?
93
+ end
94
+ end
95
+ end
@@ -1,5 +1,5 @@
1
1
  module Isomorfeus
2
2
  module Transport
3
- VERSION = '1.0.0.zeta10'
3
+ VERSION = '1.0.0.zeta11'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isomorfeus-transport
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.zeta10
4
+ version: 1.0.0.zeta11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Biedermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-19 00:00:00.000000000 Z
11
+ date: 2019-12-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -86,28 +86,28 @@ dependencies:
86
86
  requirements:
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 16.12.4
89
+ version: 16.12.6
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: 16.12.4
96
+ version: 16.12.6
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: isomorfeus-policy
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - '='
102
102
  - !ruby/object:Gem::Version
103
- version: 1.0.0.zeta10
103
+ version: 1.0.0.zeta11
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - '='
109
109
  - !ruby/object:Gem::Version
110
- version: 1.0.0.zeta10
110
+ version: 1.0.0.zeta11
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: websocket-driver
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -128,28 +128,28 @@ dependencies:
128
128
  requirements:
129
129
  - - '='
130
130
  - !ruby/object:Gem::Version
131
- version: 1.0.0.zeta10
131
+ version: 1.0.0.zeta11
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - '='
137
137
  - !ruby/object:Gem::Version
138
- version: 1.0.0.zeta10
138
+ version: 1.0.0.zeta11
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: opal-webpack-loader
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - ">="
144
144
  - !ruby/object:Gem::Version
145
- version: 0.9.9
145
+ version: 0.9.10
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: 0.9.9
152
+ version: 0.9.10
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: rake
155
155
  requirement: !ruby/object:Gem::Requirement
@@ -192,6 +192,7 @@ files:
192
192
  - lib/isomorfeus/transport/config.rb
193
193
  - lib/isomorfeus/transport/handler/authentication_handler.rb
194
194
  - lib/isomorfeus/transport/middlewares.rb
195
+ - lib/isomorfeus/transport/props_proxy.rb
195
196
  - lib/isomorfeus/transport/rack_middleware.rb
196
197
  - lib/isomorfeus/transport/request_agent.rb
197
198
  - lib/isomorfeus/transport/response_agent.rb