farcall 0.4.5 → 0.4.6

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
- SHA1:
3
- metadata.gz: 94be337904ffb80e4699091e65d7ccd85c5abfbd
4
- data.tar.gz: 267901a2112a6502d4f6226338eda4a326567452
2
+ SHA256:
3
+ metadata.gz: ef4214b7086263085157f0c0933815afcfafac6e2c1edb3f3a75ef83c6a371d4
4
+ data.tar.gz: bc5dc845c3f8f418b219c99ec437c12676008192bf18d2a6c2a411ae6e9946be
5
5
  SHA512:
6
- metadata.gz: 281679347ac52ba8e630b36021982e98edb70571e1ccf4d80a486c15474a1a6439d95cae037f57a5571c97121be8acf43af035a1208dbe6b3b035e7fbe6c542f
7
- data.tar.gz: 8d22d1ddfc96c928d9f9c4aa3cef2002d385feb4c44fcb62e82392419fffb696cb73a06c6ba55b82f9611678d7999686a591db0dfcb47c65ca13b301ab6318fa
6
+ metadata.gz: 8c29cd434eb643778ec39f9f14c47a26cd9c1011acc1f69c2b0a386b8f038ba9d0f739c8712f1030e252dd69428ce77d3cf0e96395645d18d32eee72bf76b2b8
7
+ data.tar.gz: 574e9bd05e4269a4f60bce45abcc8269c2de04ae9886348a71c4040a5ffad539c1dd0baca5983211b1df9e16b9ff5415e35dc932ea33686684d0eb6e16175d5e
@@ -23,8 +23,8 @@ Gem::Specification.new do |spec|
23
23
  spec.require_paths = ["lib"]
24
24
 
25
25
  spec.add_dependency 'hashie'
26
- spec.add_development_dependency 'bundler', '~> 1.7'
27
- spec.add_development_dependency 'rake', '~> 10.0'
26
+ spec.add_development_dependency 'bundler', '>= 1.7'
27
+ spec.add_development_dependency 'rake', '>= 10.0'
28
28
  spec.add_development_dependency 'rspec'
29
29
  spec.add_development_dependency 'em-websocket'
30
30
  spec.add_development_dependency 'websocket-client-simple'
@@ -1,5 +1,5 @@
1
-
2
1
  require 'farcall/version'
2
+ require 'farcall/smart_hash'
3
3
  require 'farcall/transport'
4
4
  require 'farcall/json_transport'
5
5
  require 'farcall/endpoint'
@@ -15,8 +15,6 @@ rescue LoadError
15
15
  $!.to_s =~ /em-websocket/ or raise
16
16
  end
17
17
 
18
-
19
-
20
18
  module Farcall
21
19
  # Your code goes here...
22
20
  end
@@ -1,7 +1,8 @@
1
- require 'hashie'
2
1
  require 'eventmachine'
3
2
  require_relative './promise'
4
3
 
4
+ include Farcall
5
+
5
6
  # As the eventmachine callback paradigm is completely different from the threaded paradigm
6
7
  # of the Farcall, that runs pretty well under JRuby and in multithreaded MRI, we provide
7
8
  # compatible but different implementations: {EmFarcall::Endpoint}, {EmFarcall::Interface}
@@ -14,7 +15,7 @@ require_relative './promise'
14
15
  # require 'eventmachine'
15
16
  # require 'farcall'
16
17
  module EmFarcall
17
-
18
+
18
19
  # Endpoint that run in the reactor thread of the EM. Eventmachine should run by the time of
19
20
  # creation of the endpoint. All the methods can be called from any thread, not only
20
21
  # EM's reactor thread.
@@ -195,7 +196,7 @@ module EmFarcall
195
196
  # :nodoc: important that this method is called from reactor thread only
196
197
  def process_input data
197
198
  # To be free from :keys and 'keys'
198
- data = Hashie::Mash.new(data) unless data.is_a?(Hashie::Mash)
199
+ data = SmartHash.new(data) unless data.is_a?(SmartHash)
199
200
  if data.serial != @in_serial
200
201
  error "framing error (wrong serial:)"
201
202
  else
@@ -206,7 +207,7 @@ module EmFarcall
206
207
  ref = data.ref
207
208
  if ref
208
209
  if (block = @callbacks.delete(ref)) != nil
209
- block.call(Hashie::Mash.new(result: data.result, error: data.error))
210
+ block.call(SmartHash.new(result: data.result, error: data.error))
210
211
  end
211
212
  else
212
213
  error "framing error: no ref in block #{data.inspect}"
@@ -1,4 +1,3 @@
1
- require 'hashie'
2
1
  require_relative 'promise'
3
2
 
4
3
  module Farcall
@@ -7,7 +6,7 @@ module Farcall
7
6
  # it. You can use it direcly or with Farcall::RemoteInterface and Farcall::LocalProvider helper
8
7
  # classes.
9
8
  #
10
- # Note that the returned data is converted to Hashie::Mash primarily for the sake of :key vs.
9
+ # Note that the returned data is converted to SmartHash primarily for the sake of :key vs.
11
10
  # 'key' ambigity that otherwise might appear depending on the transport encoding protocol. Anyway
12
11
  # it is better than ruby hash ;)
13
12
  #
@@ -84,7 +83,7 @@ module Farcall
84
83
  # Optionally the block could be provided
85
84
  # that takes |error, result| parameters. Error must be nil or
86
85
  #
87
- # Hashie::Mash.new({'class' =>, 'text' => text [, data: {some_data}] })
86
+ # SmartHash.new({'class' =>, 'text' => text [, data: {some_data}] })
88
87
  #
89
88
  # if error is presented, the result is always the nil.
90
89
  #
@@ -118,7 +117,7 @@ module Farcall
118
117
  # Farcall::RemoteInterface rather than this low-level method.
119
118
  #
120
119
  # @param [String] name of the remote command
121
- # @return [Object] any data that remote party retruns. If it is a hash, it is a Hashie::Mash
120
+ # @return [Object] any data that remote party retruns. If it is a hash, it is a SmartHash
122
121
  # instance.
123
122
  # @raise [Farcall::RemoteError]
124
123
  #
@@ -197,7 +196,7 @@ module Farcall
197
196
 
198
197
  def _received(data)
199
198
  # p [:r, data]
200
- data = Hashie::Mash.new data
199
+ data = SmartHash.new data
201
200
 
202
201
  cmd, serial, args, kwargs, ref, result, error =
203
202
  %w{cmd serial args kwargs ref result error}.map { |k| data[k] || data[k.to_sym] }
@@ -0,0 +1,11 @@
1
+ require 'hashie'
2
+
3
+ module Farcall
4
+
5
+ class SmartHash < Hashie::Mash
6
+
7
+ disable_warnings
8
+
9
+ end
10
+
11
+ end
@@ -1,3 +1,3 @@
1
1
  module Farcall
2
- VERSION = "0.4.5"
2
+ VERSION = "0.4.6"
3
3
  end
@@ -1,9 +1,11 @@
1
1
  require 'spec_helper'
2
2
  require 'eventmachine'
3
3
 
4
+ include Farcall
5
+
4
6
  def standard_check_wsclient(cnt1, r1, r2, r3)
5
- r1 = Hashie::Mash.new(r1)
6
- r2 = Hashie::Mash.new(r2)
7
+ r1 = SmartHash.new(r1)
8
+ r2 = SmartHash.new(r2)
7
9
 
8
10
  r1.kwargs.hello.should == 'world'
9
11
  r1.superpong.should == [1, 2, 3]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: farcall
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - sergeych
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-12 00:00:00.000000000 Z
11
+ date: 2018-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashie
@@ -28,28 +28,28 @@ dependencies:
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.7'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.7'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '10.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '10.0'
55
55
  - !ruby/object:Gem::Dependency
@@ -135,6 +135,7 @@ files:
135
135
  - lib/farcall/json_transport.rb
136
136
  - lib/farcall/monitor_lock.rb
137
137
  - lib/farcall/promise.rb
138
+ - lib/farcall/smart_hash.rb
138
139
  - lib/farcall/transport.rb
139
140
  - lib/farcall/version.rb
140
141
  - lib/farcall/wsclient_transport.rb
@@ -162,7 +163,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
162
163
  version: '0'
163
164
  requirements: []
164
165
  rubyforge_project:
165
- rubygems_version: 2.5.1
166
+ rubygems_version: 2.7.3
166
167
  signing_key:
167
168
  specification_version: 4
168
169
  summary: Simple, elegant and cross-platofrm RPC protocol