helium 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +6 -0
- data/Manifest.txt +3 -3
- data/README.txt +0 -2
- data/lib/helium.rb +1 -1
- data/lib/helium/deployer.rb +10 -6
- data/lib/helium/public/prettify.css +14 -0
- data/{templates/web → lib/helium}/public/prettify.js +0 -0
- data/{templates/web → lib/helium}/public/style.css +0 -0
- data/lib/helium/web.rb +8 -4
- data/lib/helium/web_helpers.rb +8 -0
- data/templates/packages.js.erb +3 -7
- metadata +9 -7
- data/templates/web/public/prettify.css +0 -6
data/History.txt
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
=== 0.1.1 / 2009-11-09
|
2
|
+
|
3
|
+
* Don't place style.css etc in the local app directory, serve them from the gem
|
4
|
+
* Allow a `location` field in `deploy.yml` that changes the paths rendered in `helium.js`
|
5
|
+
|
6
|
+
|
1
7
|
=== 0.1.0 / 2009-11-02
|
2
8
|
|
3
9
|
* First public release under the GPL v2
|
data/Manifest.txt
CHANGED
@@ -13,6 +13,9 @@ lib/helium/logger.rb
|
|
13
13
|
lib/helium/trie.rb
|
14
14
|
lib/helium/web.rb
|
15
15
|
lib/helium/web_helpers.rb
|
16
|
+
lib/helium/public/prettify.css
|
17
|
+
lib/helium/public/prettify.js
|
18
|
+
lib/helium/public/style.css
|
16
19
|
lib/helium/views/deploy.erb
|
17
20
|
lib/helium/views/edit.erb
|
18
21
|
lib/helium/views/index.erb
|
@@ -27,9 +30,6 @@ templates/project/test/index.html.erb
|
|
27
30
|
templates/web/config.ru
|
28
31
|
templates/web/deploy.yml
|
29
32
|
templates/web/custom.js
|
30
|
-
templates/web/public/prettify.css
|
31
|
-
templates/web/public/prettify.js
|
32
|
-
templates/web/public/style.css
|
33
33
|
test/test_helium.rb
|
34
34
|
test/deploy.yml
|
35
35
|
test/index.html
|
data/README.txt
CHANGED
data/lib/helium.rb
CHANGED
data/lib/helium/deployer.rb
CHANGED
@@ -22,15 +22,19 @@ module Helium
|
|
22
22
|
@options = options
|
23
23
|
end
|
24
24
|
|
25
|
+
# Returns the deserialized contents of `deploy.yml`.
|
26
|
+
def config
|
27
|
+
@config_data ||= YAML.load(File.read(@config))
|
28
|
+
end
|
29
|
+
|
25
30
|
# Returns a hash of projects names and their Git URLs.
|
26
31
|
def projects
|
27
32
|
return @projects if defined?(@projects)
|
28
33
|
|
29
|
-
|
30
|
-
raise "No configuration for JS.Class" unless js_class = data[JS_CLASS]
|
34
|
+
raise "No configuration for JS.Class" unless js_class = config[JS_CLASS]
|
31
35
|
@jsclass_version = js_class['version']
|
32
36
|
|
33
|
-
@projects =
|
37
|
+
@projects = config['projects'] || {}
|
34
38
|
@projects[JS_CLASS] = js_class['repository']
|
35
39
|
@projects
|
36
40
|
end
|
@@ -104,9 +108,9 @@ module Helium
|
|
104
108
|
def run_builds!(options = nil)
|
105
109
|
options ||= @options
|
106
110
|
|
107
|
-
@tree
|
108
|
-
@custom
|
109
|
-
@
|
111
|
+
@tree = Trie.new
|
112
|
+
@custom = options[:custom]
|
113
|
+
@location = options[:location]
|
110
114
|
manifest = []
|
111
115
|
|
112
116
|
# Loop over checked-out projects. Skip directories with no Jake file.
|
@@ -0,0 +1,14 @@
|
|
1
|
+
/* Pretty printing styles. Used with prettify.js. */
|
2
|
+
|
3
|
+
.str{color:#d14}
|
4
|
+
.kwd{color:#000;font-weight:bold}
|
5
|
+
.com{color:#998;font-style:italic}
|
6
|
+
.typ{color:#458}
|
7
|
+
.lit{color:#099}
|
8
|
+
.pun{color:#666}
|
9
|
+
.pln{color:#000}
|
10
|
+
.tag{color:#000080}
|
11
|
+
.atn{color:#008080}
|
12
|
+
.atv{color:#008080}
|
13
|
+
.dec{color:#000;font-weight:bold}
|
14
|
+
|
File without changes
|
File without changes
|
data/lib/helium/web.rb
CHANGED
@@ -7,7 +7,7 @@ module Helium
|
|
7
7
|
class Web < Sinatra::Base
|
8
8
|
|
9
9
|
|
10
|
-
ROOT_DIR = File.dirname(__FILE__)
|
10
|
+
ROOT_DIR = File.expand_path(File.dirname(__FILE__))
|
11
11
|
require File.join(ROOT_DIR, '..', 'helium')
|
12
12
|
require File.join(ROOT_DIR, 'web_helpers')
|
13
13
|
|
@@ -26,8 +26,7 @@ module Helium
|
|
26
26
|
|
27
27
|
before do
|
28
28
|
@projects = project_config
|
29
|
-
@
|
30
|
-
@location = @domain + '/' + Helium::WEB_ROOT
|
29
|
+
@location = get_location
|
31
30
|
end
|
32
31
|
|
33
32
|
## Home page -- just loads the project list and renders.
|
@@ -62,7 +61,7 @@ module Helium
|
|
62
61
|
deployer.cleanup!
|
63
62
|
|
64
63
|
custom = File.file?(CUSTOM) ? File.read(CUSTOM) : nil
|
65
|
-
files = deployer.run_builds!(:custom => custom, :
|
64
|
+
files = deployer.run_builds!(:custom => custom, :location => @location)
|
66
65
|
|
67
66
|
FileUtils.rm_rf(PUBLIC) if File.exists?(PUBLIC)
|
68
67
|
|
@@ -114,6 +113,11 @@ module Helium
|
|
114
113
|
erb :edit
|
115
114
|
end
|
116
115
|
|
116
|
+
## Catch requests for public files and serve them from the gem
|
117
|
+
get '/*' do
|
118
|
+
send_file(File.join(ROOT_DIR, 'public', env['PATH_INFO']))
|
119
|
+
end
|
120
|
+
|
117
121
|
end
|
118
122
|
end
|
119
123
|
|
data/lib/helium/web_helpers.rb
CHANGED
@@ -7,6 +7,14 @@ module Helium
|
|
7
7
|
Helium::Deployer.new(File.dirname(CONFIG)).projects
|
8
8
|
end
|
9
9
|
|
10
|
+
# Returns the domain and path from which script files are served.
|
11
|
+
def get_location
|
12
|
+
location = Helium::Deployer.new(File.dirname(CONFIG)).config['location'] ||
|
13
|
+
env['HTTP_HOST'] + '/' + Helium::WEB_ROOT
|
14
|
+
|
15
|
+
location.gsub(/\/*$/, '')
|
16
|
+
end
|
17
|
+
|
10
18
|
# Returns the list of IP addresses that have write access to the app.
|
11
19
|
def allowed_ips
|
12
20
|
Helium::Web.config.allow_ips
|
data/templates/packages.js.erb
CHANGED
@@ -1,10 +1,8 @@
|
|
1
|
-
<% if @domain -%>
|
2
1
|
(function() {
|
3
2
|
var protocol = ("https:" == document.location.protocol) ? "https:" : "http:";
|
4
3
|
window.JSCLASS_PATH = window.JSCLASS_PATH ||
|
5
|
-
protocol + "//<%= @
|
4
|
+
protocol + "//<%= @location %><%= File.dirname(@js_loader.sub(static_dir, '')) %>";
|
6
5
|
})();
|
7
|
-
<% end -%>
|
8
6
|
|
9
7
|
<%= File.read(@js_loader) %>
|
10
8
|
|
@@ -17,7 +15,7 @@
|
|
17
15
|
* then use the `require()` function to load objects on demand.
|
18
16
|
*
|
19
17
|
* <!-- Step 1. Load JS.Class and the package listing -->
|
20
|
-
* <script type="text/javascript" src="http://<%= @
|
18
|
+
* <script type="text/javascript" src="http://<%= @location %>/<%= PACKAGES_MIN %>"></script>
|
21
19
|
*
|
22
20
|
* <!-- Step 2. Declare which branches to use -->
|
23
21
|
* <script type="text/javascript">
|
@@ -73,10 +71,8 @@ JS.Packages(function() { with(this) {
|
|
73
71
|
|
74
72
|
window.Helium = window.Helium || {};
|
75
73
|
|
76
|
-
<% if @domain -%>
|
77
74
|
var protocol = ("https:" == document.location.protocol) ? "https:" : "http:";
|
78
|
-
Helium.PATH = protocol + "//<%= @
|
79
|
-
<% end -%>
|
75
|
+
Helium.PATH = protocol + "//<%= @location %>";
|
80
76
|
|
81
77
|
/**
|
82
78
|
* Helium.use(project, branch) -> undefined
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: helium
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Coglan
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-11-
|
12
|
+
date: 2009-11-09 00:00:00 +00:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -109,6 +109,9 @@ files:
|
|
109
109
|
- lib/helium/trie.rb
|
110
110
|
- lib/helium/web.rb
|
111
111
|
- lib/helium/web_helpers.rb
|
112
|
+
- lib/helium/public/prettify.css
|
113
|
+
- lib/helium/public/prettify.js
|
114
|
+
- lib/helium/public/style.css
|
112
115
|
- lib/helium/views/deploy.erb
|
113
116
|
- lib/helium/views/edit.erb
|
114
117
|
- lib/helium/views/index.erb
|
@@ -123,14 +126,13 @@ files:
|
|
123
126
|
- templates/web/config.ru
|
124
127
|
- templates/web/deploy.yml
|
125
128
|
- templates/web/custom.js
|
126
|
-
- templates/web/public/prettify.css
|
127
|
-
- templates/web/public/prettify.js
|
128
|
-
- templates/web/public/style.css
|
129
129
|
- test/test_helium.rb
|
130
130
|
- test/deploy.yml
|
131
131
|
- test/index.html
|
132
132
|
has_rdoc: true
|
133
133
|
homepage: http://github.com/othermedia/helium
|
134
|
+
licenses: []
|
135
|
+
|
134
136
|
post_install_message:
|
135
137
|
rdoc_options:
|
136
138
|
- --main
|
@@ -152,9 +154,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
152
154
|
requirements: []
|
153
155
|
|
154
156
|
rubyforge_project: helium
|
155
|
-
rubygems_version: 1.3.
|
157
|
+
rubygems_version: 1.3.5
|
156
158
|
signing_key:
|
157
|
-
specification_version:
|
159
|
+
specification_version: 3
|
158
160
|
summary: ""
|
159
161
|
test_files:
|
160
162
|
- test/test_helium.rb
|
@@ -1,6 +0,0 @@
|
|
1
|
-
/* Defaults */
|
2
|
-
.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun{color:#660}.pln{color:#000}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec{color:#606}@media print{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun{color:#440}.pln{color:#000}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}
|
3
|
-
|
4
|
-
/* Overrides */
|
5
|
-
.str{color:#d14}.kwd{color:#000;font-weight:bold}.com{color:#998;font-style:italic}.typ{color:#458}.lit{color:#099}.pun{color:#666}.pln{color:#000}.tag{color:#000080}.atn{color:#008080}.atv{color:#008080}.dec{color:#000;font-weight:bold}
|
6
|
-
|