flammarion 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Readme.md +3 -3
- data/lib/flammarion/engraving.rb +3 -1
- data/lib/flammarion/revelator.rb +16 -3
- data/lib/flammarion/version.rb +1 -1
- data/lib/html/build/javascripts/actions.js +1 -1
- data/lib/html/build/javascripts/all.js +1 -1
- data/lib/html/build/javascripts/input.js +1 -1
- data/lib/html/build/javascripts/map.js +1 -1
- data/lib/html/build/javascripts/websocket.js +1 -1
- data/lib/html/source/javascripts/websocket.coffee +1 -1
- metadata +2 -2
data/Readme.md
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/flammarion.svg)](https://badge.fury.io/rb/flammarion)
|
4
4
|
|
5
5
|
* [Source](https://github.com/zach-capalbo/flammarion)
|
6
|
-
* [Documentation](http://zach-capalbo.github.io/flammarion/doc/Flammarion)
|
6
|
+
* [Documentation](http://zach-capalbo.github.io/flammarion/doc/Flammarion.html)
|
7
7
|
|
8
8
|
## Overview
|
9
9
|
|
@@ -76,8 +76,8 @@ f.button("Click Here!!!") {f.puts "You clicked the button!"}
|
|
76
76
|
f.input("Placeholder > ") {|msg| f.puts "You wrote: #{msg['text'].light_magenta}"}
|
77
77
|
```
|
78
78
|
|
79
|
-
The [api documetaion](http://zach-capalbo.github.io/flammarion/doc/Flammarion)
|
80
|
-
is available at <http://zach-capalbo.github.io/flammarion/doc/Flammarion>.
|
79
|
+
The [api documetaion](http://zach-capalbo.github.io/flammarion/doc/Flammarion.html)
|
80
|
+
is available at <http://zach-capalbo.github.io/flammarion/doc/Flammarion.html>.
|
81
81
|
|
82
82
|
## Screenshots / Samples
|
83
83
|
|
data/lib/flammarion/engraving.rb
CHANGED
@@ -26,8 +26,10 @@ module Flammarion
|
|
26
26
|
# @option options [Boolean] :close_on_exit (false) Will close the window
|
27
27
|
# when the process exits if this is true. Otherwise, it will just stay
|
28
28
|
# around, but not actually be interactive.
|
29
|
-
# @
|
29
|
+
# @option options [String] :title The initial title of the engraving. If
|
30
30
|
# empty, a random title will be generated.
|
31
|
+
# @raise {SetupError} if neither chrome nor electron is set up correctly and
|
32
|
+
# and Flammarion is unable to display the engraving.
|
31
33
|
def initialize(options = {})
|
32
34
|
options = {:title => options} if options.is_a?(String)
|
33
35
|
@chrome = OpenStruct.new
|
data/lib/flammarion/revelator.rb
CHANGED
@@ -1,8 +1,19 @@
|
|
1
1
|
module Flammarion
|
2
|
+
# Raised when flammarion cannot find any way to display an engraving.
|
3
|
+
# On Linux, Flammarion will first try to launch Electron using the command
|
4
|
+
# +electron+. If that fails, it will try common aliases of Google Chrome. If
|
5
|
+
# none of them execute succesfully, it will raise this error. On Windows, it
|
6
|
+
# will try to launch Google Chrome from Program Files (x86). If chrome has
|
7
|
+
# been installed somewhere else, the user can set the environment variable
|
8
|
+
# FLAMMARION_REVELATOR_PATH to point to +chrome.exe+.
|
9
|
+
# @see http://electron.atom.io/
|
10
|
+
# @see http://www.google.com/chrome/
|
11
|
+
class SetupError < StandardError; end
|
12
|
+
|
2
13
|
# @api private
|
3
14
|
# @todo This all needs a lot of clean up
|
4
15
|
module Revelator
|
5
|
-
CHROME_PATH = 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
|
16
|
+
CHROME_PATH = ENV["FLAMMARION_REVELATOR_PATH"] || 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
|
6
17
|
def open_a_window_on_windows(options)
|
7
18
|
file_path = File.absolute_path(File.join(File.dirname(__FILE__), ".."))
|
8
19
|
file_path = `cygpath -w '#{file_path}'`.strip if RbConfig::CONFIG["host_os"] == "cygwin"
|
@@ -10,6 +21,7 @@ module Flammarion
|
|
10
21
|
resource = "http://localhost:4567/" if ENV["FLAMMARION_DEVELOPMENT"] == "true"
|
11
22
|
chrome_path = CHROME_PATH
|
12
23
|
chrome_path = `cygpath -u '#{CHROME_PATH}'`.strip if RbConfig::CONFIG["host_os"] == "cygwin"
|
24
|
+
raise SetupError.new("Cannot find #{chrome_path}. You need to install Google Chrome or set the environment variable FLAMMARION_REVELATOR_PATH to point to chrome.exe") unless File.exist?(chrome_path)
|
13
25
|
Process.detach(spawn(chrome_path, %[--app=#{resource}?path=#{@window_id}&port=#{server.port}&title="#{options[:title] || "Flammarion%20Engraving"}"]))
|
14
26
|
end
|
15
27
|
|
@@ -26,12 +38,13 @@ module Flammarion
|
|
26
38
|
return
|
27
39
|
end
|
28
40
|
|
29
|
-
%w[google-chrome google-chrome-stable chromium chromium-browser chrome
|
41
|
+
%w[google-chrome google-chrome-stable chromium chromium-browser chrome].each do |executable|
|
42
|
+
next unless which(executable)
|
30
43
|
@chrome.in, @chrome.out, @chrome.err, @chrome.thread = Open3.popen3("#{executable} --app='#{host}?path=#{@window_id}&port=#{server.port}&title=#{@expect_title}'")
|
31
44
|
break if @chrome.in
|
32
45
|
end
|
33
46
|
|
34
|
-
raise
|
47
|
+
raise SetupError.new("You must have either electron or google-chrome installed and accesible via your path.") unless @chrome.in
|
35
48
|
end
|
36
49
|
|
37
50
|
private
|
data/lib/flammarion/version.rb
CHANGED
@@ -68,7 +68,7 @@ void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?voi
|
|
68
68
|
console.log("Path: " + ($qs.get("path")) + ", Port: " + ($qs.get("port")) + ", Host: " + host);
|
69
69
|
this.ws = new WebSocket("ws://" + host + ":" + ($qs.get("port")) + "/" + ($qs.get("path")));
|
70
70
|
this.actions["__parent"] = this;
|
71
|
-
document.title = $qs.get("title") || "Flammarion
|
71
|
+
document.title = decodeURIComponent($qs.get("title")) || "Flammarion";
|
72
72
|
this.ws.onopen = function(msg) {
|
73
73
|
return $('body').addClass("connected");
|
74
74
|
};
|
@@ -6689,7 +6689,7 @@ if (typeof module !== 'undefined') {
|
|
6689
6689
|
console.log("Path: " + ($qs.get("path")) + ", Port: " + ($qs.get("port")) + ", Host: " + host);
|
6690
6690
|
this.ws = new WebSocket("ws://" + host + ":" + ($qs.get("port")) + "/" + ($qs.get("path")));
|
6691
6691
|
this.actions["__parent"] = this;
|
6692
|
-
document.title = $qs.get("title") || "Flammarion
|
6692
|
+
document.title = decodeURIComponent($qs.get("title")) || "Flammarion";
|
6693
6693
|
this.ws.onopen = function(msg) {
|
6694
6694
|
return $('body').addClass("connected");
|
6695
6695
|
};
|
@@ -68,7 +68,7 @@ void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?voi
|
|
68
68
|
console.log("Path: " + ($qs.get("path")) + ", Port: " + ($qs.get("port")) + ", Host: " + host);
|
69
69
|
this.ws = new WebSocket("ws://" + host + ":" + ($qs.get("port")) + "/" + ($qs.get("path")));
|
70
70
|
this.actions["__parent"] = this;
|
71
|
-
document.title = $qs.get("title") || "Flammarion
|
71
|
+
document.title = decodeURIComponent($qs.get("title")) || "Flammarion";
|
72
72
|
this.ws.onopen = function(msg) {
|
73
73
|
return $('body').addClass("connected");
|
74
74
|
};
|
@@ -68,7 +68,7 @@ void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?voi
|
|
68
68
|
console.log("Path: " + ($qs.get("path")) + ", Port: " + ($qs.get("port")) + ", Host: " + host);
|
69
69
|
this.ws = new WebSocket("ws://" + host + ":" + ($qs.get("port")) + "/" + ($qs.get("path")));
|
70
70
|
this.actions["__parent"] = this;
|
71
|
-
document.title = $qs.get("title") || "Flammarion
|
71
|
+
document.title = decodeURIComponent($qs.get("title")) || "Flammarion";
|
72
72
|
this.ws.onopen = function(msg) {
|
73
73
|
return $('body').addClass("connected");
|
74
74
|
};
|
@@ -68,7 +68,7 @@ void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?voi
|
|
68
68
|
console.log("Path: " + ($qs.get("path")) + ", Port: " + ($qs.get("port")) + ", Host: " + host);
|
69
69
|
this.ws = new WebSocket("ws://" + host + ":" + ($qs.get("port")) + "/" + ($qs.get("path")));
|
70
70
|
this.actions["__parent"] = this;
|
71
|
-
document.title = $qs.get("title") || "Flammarion
|
71
|
+
document.title = decodeURIComponent($qs.get("title")) || "Flammarion";
|
72
72
|
this.ws.onopen = function(msg) {
|
73
73
|
return $('body').addClass("connected");
|
74
74
|
};
|
@@ -7,7 +7,7 @@ class WSClient
|
|
7
7
|
console.log "Path: #{$qs.get("path")}, Port: #{$qs.get("port")}, Host: #{host}"
|
8
8
|
@ws = new WebSocket "ws://#{host}:#{$qs.get("port")}/#{$qs.get("path")}"
|
9
9
|
@actions["__parent"] = this
|
10
|
-
document.title = $qs.get("title") || "Flammarion
|
10
|
+
document.title = decodeURIComponent($qs.get("title")) || "Flammarion"
|
11
11
|
@ws.onopen = (msg) ->
|
12
12
|
$('body').addClass("connected")
|
13
13
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flammarion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-01-
|
12
|
+
date: 2016-01-02 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: em-websocket
|