web-repl 0.9 → 0.10.1

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
2
  SHA1:
3
- metadata.gz: f8c3919a04f29a4a9db4c11fe64eb5d0046600bc
4
- data.tar.gz: 6314aeb1faa747caffd8520b0a9d452f1632a43c
3
+ metadata.gz: a6a0ad277ec5784183b51b03e62b06cfb0e37dc2
4
+ data.tar.gz: 627b30b062576ee663088ed9d4e63f27e8ccb620
5
5
  SHA512:
6
- metadata.gz: 4fdbd4706c3a6c65d253f890166d2050428eece64d981c45c70f99313db71e85f22ba7c4c275d5b961a9ff06de5fffa2e35febbee4d02043d3f94f4aa785e455
7
- data.tar.gz: 8c22fe879002d5ab099bceea2fbb2a961629e17314f5d18b41f7703153207e0da97c5afba3504f24f18c5dc500fc5c01f936b6bc49ad3c9cba7637d2d41932fe
6
+ metadata.gz: 72f65b498afe760381f2c2d73610f8124b00b3867f9edda0f981701ee055006cad4befaa1798dc1c7a036d5c1025f6badc03fd45c3c1bf87464799222adb8b2b
7
+ data.tar.gz: 8f0b40f894d64462abd7a5789a7a5e65ba19e615eba1bca1fa648574947da04004f75cfba8f331b2cd7a3df235afac0b977c6c31d176d3817e7e5f6b1b97606c
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $:.unshift(File.join("..", "lib"))
3
3
 
4
4
  require "optparse"
5
5
  require "web-repl"
@@ -0,0 +1 @@
1
+ function ReplConnection(e,t,n){n="undefined"==typeof n?{}:n,this.debug=!!n.debug,this.reconnect=!!n.reconnect,this.retryTime=n.retryTime||1e3,this.evalFunction=n.evalFunction,this.host=e,this.port=t,this.active=!1,this.socket,this.supported="WebSocket"in window,console.log(this.supported?"REPL: socket ok":"REPL: socket not supported")}ReplConnection.prototype.eval=function(statement){options="undefined"==typeof options?{}:options;var response={};try{response.value="function"==typeof this.evalFunction?this.evalFunction(statement):eval(statement)}catch(err){response.error=err.message}return response},ReplConnection.prototype.initSocket=function(e){void 0!==this.socket&&null!==this.socket&&this.socket.close();var t="ws://"+this.host+":"+this.port+"/echo";this.socket=new WebSocket(t),e()},ReplConnection.prototype.handleSocketOpen=function(){this.active=!0,console.log("REPL: socket ready")},ReplConnection.prototype.tryConnection=function(){if(console.log("REPL: waiting for connection"),this.reconnect){var e=this;window.setTimeout(function(){e.start()},this.retryTime)}},ReplConnection.prototype.handleSocketClose=function(){this.active?(console.log("REPL: socket closed"),this.active=!1,this.reconnect&&this.tryConnection()):this.tryConnection()},ReplConnection.prototype.convertTimestamp=function(e){var t=e.timestamp;return e.timestamp=new Date(t),e.timestamp},ReplConnection.prototype.handleMessageReceived=function(e){this.debug&&(console.log("REPL: message received"),console.log(e));var t=JSON.parse(e.data);this.convertTimestamp(t);var n=this.eval(t.statement);return this.send(n)},ReplConnection.prototype.send=function(e){var t=this.prepareJSON(e);return this.debug&&(console.log("REPL: sending"),console.log(t)),this.socket.send(t)},ReplConnection.prototype.prepareJSON=function(e){var t;try{e.timestamp=(new Date).getTime(),t=JSON.stringify(e)}catch(n){t=this.handleJsonError(e,n)}return t},ReplConnection.prototype.handleJsonError=function(e,t){return e.value=null,e.error=t.message,this.prepareJSON(e)},ReplConnection.prototype.initEventHandling=function(){var e=this;this.socket.onopen=function(){e.handleSocketOpen()},this.socket.onclose=function(t){e.handleSocketClose(t)},this.socket.onmessage=function(t){e.handleMessageReceived(t)}},ReplConnection.prototype.start=function(e){if(this.supported){var t=this;this.initSocket(function(){t.initEventHandling(),void 0!==e&&e(t)})}};
@@ -2,7 +2,7 @@
2
2
  require "colorize"
3
3
  require "em-websocket"
4
4
  require "json"
5
- require "readline"
5
+ require "readline" unless defined?(Readline)
6
6
  require "socket"
7
7
 
8
8
  # classes
@@ -13,7 +13,7 @@ require "web-repl/repl"
13
13
  # A Javascript REPL that runs in Ruby. Evaluation is done by a web browser instance.
14
14
  module WebRepl
15
15
 
16
- VERSION = "0.9"
16
+ VERSION = "0.10.1"
17
17
 
18
18
  # Shortcut to REPL.start
19
19
  def self.start(*a)
@@ -1,7 +1,6 @@
1
- dir = File.dirname(File.expand_path(__FILE__))
2
- $LOAD_PATH.unshift dir + '/../lib'
1
+ $:.unshift(File.join("..", "lib"))
3
2
 
4
- require 'test/unit'
3
+ require "minitest/autorun"
5
4
  require "mocha/test_unit"
6
5
  require "shoulda-context"
7
6
 
@@ -1,14 +1,12 @@
1
1
  require "helper"
2
2
 
3
- class WebRepl::MessengerTest < Test::Unit::TestCase
4
-
5
- include WebRepl
3
+ class WebRepl::MessengerTest < Minitest::Test
6
4
 
7
5
  context "Messenger" do
8
6
 
9
7
  setup do
10
8
  @socket = Object.new
11
- @messager = Messenger.new(@socket)
9
+ @messager = WebRepl::Messenger.new(@socket)
12
10
  end
13
11
 
14
12
  context "#in" do
@@ -19,27 +17,27 @@ class WebRepl::MessengerTest < Test::Unit::TestCase
19
17
  end
20
18
 
21
19
  should "convert from String to Hash" do
22
- assert_not_nil @result
20
+ refute_nil @result
23
21
  assert_equal Hash, @result.class
24
22
  assert_equal "blah", @result[:value]
25
23
  end
26
24
 
27
25
  should "convert timestamp from js time to ruby" do
28
26
  timestamp = @result[:timestamp]
29
- assert_not_nil timestamp
27
+ refute_nil timestamp
30
28
  assert_equal Time, timestamp.class
31
29
  assert_equal 2014, timestamp.year
32
30
  assert_equal 4, timestamp.month
33
31
  assert_equal 22, timestamp.hour
34
32
  end
35
-
33
+
36
34
  end
37
35
 
38
36
  context "#new_timestamp" do
39
37
 
40
38
  should "be js int time format" do
41
39
  result = @messager.new_timestamp
42
- assert_not_nil result
40
+ refute_nil result
43
41
  assert_equal Fixnum, result.class
44
42
  assert result.to_s.size > Time.new.to_i.to_s.size
45
43
  assert_equal (result / 1000).to_s.size, Time.new.to_i.to_s.size
@@ -64,12 +62,12 @@ class WebRepl::MessengerTest < Test::Unit::TestCase
64
62
  should "generate new timestamp" do
65
63
  @socket.expects(:send).once
66
64
  @messager.out(@message)
67
- assert_not_nil @message[:timestamp]
65
+ refute_nil @message[:timestamp]
68
66
  assert_equal Fixnum, @message[:timestamp].class
69
67
  end
70
68
 
71
69
  should "return nil if fails" do
72
- messager = Messenger.new(nil)
70
+ messager = WebRepl::Messenger.new(nil)
73
71
  result = messager.out(@message)
74
72
  assert_nil result
75
73
  end
@@ -77,7 +75,7 @@ class WebRepl::MessengerTest < Test::Unit::TestCase
77
75
  should "return json string if success" do
78
76
  @socket.expects(:send).once
79
77
  result = @messager.out(@message)
80
- assert_not_nil result
78
+ refute_nil result
81
79
  assert_equal String, result.class
82
80
  end
83
81
 
@@ -1,6 +1,6 @@
1
1
  require "helper"
2
2
 
3
- class WebRepl::ReplTest < Test::Unit::TestCase
3
+ class WebRepl::ReplTest < Minitest::Test
4
4
 
5
5
  include WebRepl
6
6
 
@@ -11,4 +11,3 @@ class WebRepl::ReplTest < Test::Unit::TestCase
11
11
  end
12
12
 
13
13
  end
14
-
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: web-repl
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.9'
4
+ version: 0.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ari Russo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-14 00:00:00.000000000 Z
11
+ date: 2015-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize
@@ -16,84 +16,140 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '0.7'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.7.7
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - "~>"
25
28
  - !ruby/object:Gem::Version
26
- version: '0'
29
+ version: '0.7'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.7.7
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: em-websocket
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: '0'
39
+ version: '0.5'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.5.1
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
47
  - - "~>"
39
48
  - !ruby/object:Gem::Version
40
- version: '0'
49
+ version: '0.5'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.5.1
41
53
  - !ruby/object:Gem::Dependency
42
54
  name: rb-readline
43
55
  requirement: !ruby/object:Gem::Requirement
44
56
  requirements:
45
57
  - - "~>"
46
58
  - !ruby/object:Gem::Version
47
- version: '0'
59
+ version: '0.5'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 0.5.2
48
63
  type: :runtime
49
64
  prerelease: false
50
65
  version_requirements: !ruby/object:Gem::Requirement
51
66
  requirements:
52
67
  - - "~>"
53
68
  - !ruby/object:Gem::Version
54
- version: '0'
69
+ version: '0.5'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 0.5.2
73
+ - !ruby/object:Gem::Dependency
74
+ name: minitest
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '5.5'
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 5.5.0
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '5.5'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 5.5.0
55
93
  - !ruby/object:Gem::Dependency
56
94
  name: mocha
57
95
  requirement: !ruby/object:Gem::Requirement
58
96
  requirements:
59
97
  - - "~>"
60
98
  - !ruby/object:Gem::Version
61
- version: '0'
99
+ version: '1.1'
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 1.1.0
62
103
  type: :development
63
104
  prerelease: false
64
105
  version_requirements: !ruby/object:Gem::Requirement
65
106
  requirements:
66
107
  - - "~>"
67
108
  - !ruby/object:Gem::Version
68
- version: '0'
109
+ version: '1.1'
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 1.1.0
69
113
  - !ruby/object:Gem::Dependency
70
114
  name: rake
71
115
  requirement: !ruby/object:Gem::Requirement
72
116
  requirements:
73
117
  - - "~>"
74
118
  - !ruby/object:Gem::Version
75
- version: '0'
119
+ version: '10.4'
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 10.4.2
76
123
  type: :development
77
124
  prerelease: false
78
125
  version_requirements: !ruby/object:Gem::Requirement
79
126
  requirements:
80
127
  - - "~>"
81
128
  - !ruby/object:Gem::Version
82
- version: '0'
129
+ version: '10.4'
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: 10.4.2
83
133
  - !ruby/object:Gem::Dependency
84
134
  name: shoulda-context
85
135
  requirement: !ruby/object:Gem::Requirement
86
136
  requirements:
87
137
  - - "~>"
88
138
  - !ruby/object:Gem::Version
89
- version: '0'
139
+ version: '1.2'
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: 1.2.1
90
143
  type: :development
91
144
  prerelease: false
92
145
  version_requirements: !ruby/object:Gem::Requirement
93
146
  requirements:
94
147
  - - "~>"
95
148
  - !ruby/object:Gem::Version
96
- version: '0'
149
+ version: '1.2'
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: 1.2.1
97
153
  description: Javascript/Web REPL in Ruby
98
154
  email:
99
155
  - ari.russo@gmail.com
@@ -106,6 +162,7 @@ files:
106
162
  - README.md
107
163
  - bin/web-repl
108
164
  - js/replConnection-0.1.min.js
165
+ - js/replConnection-0.10.1.min.js
109
166
  - js/replConnection-0.3.min.js
110
167
  - js/replConnection-0.4.min.js
111
168
  - js/replConnection-0.5.min.js
@@ -146,3 +203,4 @@ summary: Javascript/Web REPL in Ruby
146
203
  test_files:
147
204
  - test/messenger_test.rb
148
205
  - test/repl_test.rb
206
+ has_rdoc: