magic_mirror 0.1.3 → 0.1.4
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 +4 -4
- data/changelog +3 -6
- data/lib/magic_mirror/command_cache.rb +59 -2
- data/lib/magic_mirror/mirror.rb +2 -1
- data/lib/magic_mirror/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5fa360c7a0a4dafbfc28a7f72830b5704a9b996d
|
4
|
+
data.tar.gz: 7c1cc12e923f2cea40123bb08d8898f59d0c76be
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c445d1a4ab8baccab23055f4376dbe4422531cbe3e08659ba48370a3607da3afe8af77ad57f8b02fb8a3ef0d7b6ac17119162def83ed83332f32342905148c88
|
7
|
+
data.tar.gz: 307a258db0ffe82fe49f1e16605a22c5e4d14ee519202a348e2ccbb3d40f2f7b8a6b51f88751a6f87fbeaa10f1d2d7d7cfffb50214e73b21056958d3b4545e72
|
data/changelog
CHANGED
@@ -16,20 +16,17 @@
|
|
16
16
|
> Solution: Make ports random?
|
17
17
|
> Solution: Make 1 port, but make things accessible as /roots/myRoot
|
18
18
|
|
19
|
-
|
20
|
-
- Think of other popular uses for rendering...
|
21
|
-
|
22
|
-
- secure by making servers listen only on localhost for websockets
|
19
|
+
- secure by making servers listen only on localhost for websockets
|
23
20
|
|
24
21
|
|
25
22
|
|
26
23
|
Currently:
|
27
24
|
|
28
|
-
- Small discrepencies in bigish trtl lines in the tree example
|
29
25
|
|
26
|
+
Finished:
|
30
27
|
|
28
|
+
- CORE: Introduced buffering when system is bogged down, tree draws in 3s
|
31
29
|
|
32
|
-
Finished:
|
33
30
|
|
34
31
|
** 0.1.1 **
|
35
32
|
|
@@ -1,12 +1,38 @@
|
|
1
1
|
module MagicMirror
|
2
2
|
|
3
3
|
class CommandCache < Array
|
4
|
+
attr_accessor :buffer
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@buffer = []
|
8
|
+
@buffer_flush_point = 500
|
9
|
+
@last_command_at = Time.now
|
10
|
+
|
11
|
+
@mutex = Mutex.new
|
12
|
+
|
13
|
+
@timeout_thread = Thread.new {
|
14
|
+
while true
|
15
|
+
@mutex.synchronize {
|
16
|
+
MagicMirror.command_cache.transmit_buffer!
|
17
|
+
}
|
18
|
+
Thread.stop
|
19
|
+
sleep 0.2
|
20
|
+
end
|
21
|
+
}
|
22
|
+
|
23
|
+
super
|
24
|
+
end
|
25
|
+
|
4
26
|
def <<(value)
|
5
|
-
|
6
|
-
|
27
|
+
@buffer << value
|
28
|
+
|
29
|
+
transmit_buffer_if_ripe
|
30
|
+
queue_buffer_to_be_transmitted
|
31
|
+
|
7
32
|
super
|
8
33
|
end
|
9
34
|
|
35
|
+
|
10
36
|
def reset
|
11
37
|
self.clear
|
12
38
|
MagicMirror.mirror.speak_into("MagicMirror.clearCommandCache();")
|
@@ -35,6 +61,37 @@ module MagicMirror
|
|
35
61
|
string
|
36
62
|
end
|
37
63
|
|
64
|
+
def transmit_buffer_if_ripe
|
65
|
+
if time_to_send_commands_through_mirror? or we_have_a_light_message_load?
|
66
|
+
transmit_buffer!
|
67
|
+
end
|
68
|
+
@last_command_at = Time.now
|
69
|
+
end
|
70
|
+
|
71
|
+
def transmit_buffer!
|
72
|
+
MagicMirror.mirror.speak_into(@buffer.join) if @buffer.length > 0
|
73
|
+
@buffer = []
|
74
|
+
end
|
75
|
+
|
76
|
+
def time_to_send_commands_through_mirror?
|
77
|
+
@buffer.length >= @buffer_flush_point
|
78
|
+
end
|
79
|
+
|
80
|
+
def we_have_a_light_message_load?
|
81
|
+
(Time.now - @last_command_at) > 0.10
|
82
|
+
end
|
83
|
+
|
84
|
+
# This method goes wrong because it can fire at the same time
|
85
|
+
# magic_mirror.speak_into may be firing....
|
86
|
+
def queue_buffer_to_be_transmitted
|
87
|
+
@timeout_thread.wakeup if @timeout_thread.status == "sleep"
|
88
|
+
end
|
89
|
+
|
90
|
+
def needs_flush?
|
91
|
+
@buffer.length >= 0
|
92
|
+
end
|
93
|
+
|
94
|
+
|
38
95
|
|
39
96
|
|
40
97
|
|
data/lib/magic_mirror/mirror.rb
CHANGED
@@ -69,8 +69,9 @@ module MagicMirror
|
|
69
69
|
uri = URI.parse("http://localhost:#{FAYE_PORT}/faye")
|
70
70
|
begin
|
71
71
|
Net::HTTP.post_form(uri, :message => message.to_json)
|
72
|
-
rescue
|
72
|
+
rescue Exception => e
|
73
73
|
$stderr.puts "failed to send message to faye server and thus webclient"
|
74
|
+
$stderr.puts e.message
|
74
75
|
return false
|
75
76
|
end
|
76
77
|
true
|
data/lib/magic_mirror/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: magic_mirror
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TheNotary
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-08-
|
11
|
+
date: 2015-08-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sinatra
|