appetizer-ui 0.2.1 → 0.3.0
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.
- data/appetizer-ui.gemspec +2 -1
- data/lib/appetizer/ui/assets.rb +13 -4
- data/lib/appetizer/ui/assets/delivery.rb +29 -0
- metadata +33 -21
data/appetizer-ui.gemspec
CHANGED
@@ -10,13 +10,14 @@ Gem::Specification.new do |gem|
|
|
10
10
|
gem.test_files = `git ls-files -- test/*`.split("\n")
|
11
11
|
gem.name = "appetizer-ui"
|
12
12
|
gem.require_paths = ["lib"]
|
13
|
-
gem.version = "0.
|
13
|
+
gem.version = "0.3.0"
|
14
14
|
|
15
15
|
gem.required_ruby_version = ">= 1.9.2"
|
16
16
|
|
17
17
|
gem.add_dependency "appetizer", "~> 0.0"
|
18
18
|
gem.add_dependency "coffee-script", "~> 2.2"
|
19
19
|
gem.add_dependency "eco", "~> 1.0"
|
20
|
+
gem.add_dependency "rack-contrib", "~> 1.1"
|
20
21
|
gem.add_dependency "rack-ssl", "~> 1.3"
|
21
22
|
gem.add_dependency "sass", "~> 3.1"
|
22
23
|
gem.add_dependency "sinatra", "~> 1.3"
|
data/lib/appetizer/ui/assets.rb
CHANGED
@@ -11,7 +11,7 @@ require "yui/compressor"
|
|
11
11
|
module App
|
12
12
|
def self.assets
|
13
13
|
@sprockets ||= Sprockets::Environment.new.tap do |s|
|
14
|
-
if
|
14
|
+
if Appetizer::UI::Assets.compiled?
|
15
15
|
s.register_bundle_processor "application/javascript", :uglifier do |ctx, data|
|
16
16
|
Uglifier.compile data
|
17
17
|
end
|
@@ -26,7 +26,7 @@ module App
|
|
26
26
|
# don't understand it yet), so we're manually creating the
|
27
27
|
# over-nested directory for the moment.
|
28
28
|
|
29
|
-
unless
|
29
|
+
unless Appetizer::UI::Assets.compiled?
|
30
30
|
FileUtils.mkdir_p "tmp/sprockets/sprockets"
|
31
31
|
s.cache = Sprockets::Cache::FileStore.new "tmp/sprockets"
|
32
32
|
end
|
@@ -44,6 +44,10 @@ end
|
|
44
44
|
module Appetizer
|
45
45
|
module UI
|
46
46
|
module Assets
|
47
|
+
def self.compiled?
|
48
|
+
App.production? or ENV["APPETIZER_USE_COMPILED_ASSETS"]
|
49
|
+
end
|
50
|
+
|
47
51
|
def self.manifest
|
48
52
|
return @manifest if defined? @manifest
|
49
53
|
|
@@ -60,7 +64,7 @@ module Appetizer
|
|
60
64
|
def self.registered app
|
61
65
|
app.helpers do
|
62
66
|
def asset name
|
63
|
-
if
|
67
|
+
if Appetizer::UI::Assets.compiled?
|
64
68
|
return cdnify "/assets/#{Appetizer::UI::Assets.manifest[name]}"
|
65
69
|
end
|
66
70
|
|
@@ -69,7 +73,7 @@ module Appetizer
|
|
69
73
|
|
70
74
|
def assets *names
|
71
75
|
names.flat_map do |name|
|
72
|
-
next asset name if
|
76
|
+
next asset name if Appetizer::UI::Assets.compiled?
|
73
77
|
|
74
78
|
asset = App.assets[name]
|
75
79
|
|
@@ -89,3 +93,8 @@ module Appetizer
|
|
89
93
|
end
|
90
94
|
|
91
95
|
Sinatra.register Appetizer::UI::Assets
|
96
|
+
|
97
|
+
# Required at the bottom so it can conditionally require a few things
|
98
|
+
# based on Appetizer::UI::Assets.compiled?.
|
99
|
+
|
100
|
+
require "appetizer/ui/assets/delivery"
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Appetizer
|
2
|
+
module UI
|
3
|
+
module Assets
|
4
|
+
class Delivery < Struct.new(:app)
|
5
|
+
require "rack/contrib/static_cache" if Assets.compiled?
|
6
|
+
|
7
|
+
STATIC = {
|
8
|
+
root: "public",
|
9
|
+
urls: Dir["public/*"].map { |s| s[6..-1] }
|
10
|
+
}
|
11
|
+
|
12
|
+
def call env
|
13
|
+
cached(env) || asset(env) || app.call(env)
|
14
|
+
end
|
15
|
+
|
16
|
+
def asset env
|
17
|
+
if !Assets.compiled? and env["PATH_INFO"].start_with? "/assets"
|
18
|
+
env["PATH_INFO"] = env["PATH_INFO"][7..-1]
|
19
|
+
App.assets.call env
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def cached env
|
24
|
+
Rack::StaticCache.new(app, STATIC).call env if Assets.compiled?
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appetizer-ui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-01-10 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: appetizer
|
16
|
-
requirement: &
|
16
|
+
requirement: &70355474646500 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70355474646500
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: coffee-script
|
27
|
-
requirement: &
|
27
|
+
requirement: &70355474645960 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '2.2'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70355474645960
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: eco
|
38
|
-
requirement: &
|
38
|
+
requirement: &70355474636360 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,21 @@ dependencies:
|
|
43
43
|
version: '1.0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70355474636360
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rack-contrib
|
49
|
+
requirement: &70355474635400 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.1'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70355474635400
|
47
58
|
- !ruby/object:Gem::Dependency
|
48
59
|
name: rack-ssl
|
49
|
-
requirement: &
|
60
|
+
requirement: &70355474634520 !ruby/object:Gem::Requirement
|
50
61
|
none: false
|
51
62
|
requirements:
|
52
63
|
- - ~>
|
@@ -54,10 +65,10 @@ dependencies:
|
|
54
65
|
version: '1.3'
|
55
66
|
type: :runtime
|
56
67
|
prerelease: false
|
57
|
-
version_requirements: *
|
68
|
+
version_requirements: *70355474634520
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: sass
|
60
|
-
requirement: &
|
71
|
+
requirement: &70355474633540 !ruby/object:Gem::Requirement
|
61
72
|
none: false
|
62
73
|
requirements:
|
63
74
|
- - ~>
|
@@ -65,10 +76,10 @@ dependencies:
|
|
65
76
|
version: '3.1'
|
66
77
|
type: :runtime
|
67
78
|
prerelease: false
|
68
|
-
version_requirements: *
|
79
|
+
version_requirements: *70355474633540
|
69
80
|
- !ruby/object:Gem::Dependency
|
70
81
|
name: sinatra
|
71
|
-
requirement: &
|
82
|
+
requirement: &70355474632920 !ruby/object:Gem::Requirement
|
72
83
|
none: false
|
73
84
|
requirements:
|
74
85
|
- - ~>
|
@@ -76,10 +87,10 @@ dependencies:
|
|
76
87
|
version: '1.3'
|
77
88
|
type: :runtime
|
78
89
|
prerelease: false
|
79
|
-
version_requirements: *
|
90
|
+
version_requirements: *70355474632920
|
80
91
|
- !ruby/object:Gem::Dependency
|
81
92
|
name: sprockets
|
82
|
-
requirement: &
|
93
|
+
requirement: &70355474632060 !ruby/object:Gem::Requirement
|
83
94
|
none: false
|
84
95
|
requirements:
|
85
96
|
- - ~>
|
@@ -87,10 +98,10 @@ dependencies:
|
|
87
98
|
version: '2.1'
|
88
99
|
type: :runtime
|
89
100
|
prerelease: false
|
90
|
-
version_requirements: *
|
101
|
+
version_requirements: *70355474632060
|
91
102
|
- !ruby/object:Gem::Dependency
|
92
103
|
name: uglifier
|
93
|
-
requirement: &
|
104
|
+
requirement: &70355474630720 !ruby/object:Gem::Requirement
|
94
105
|
none: false
|
95
106
|
requirements:
|
96
107
|
- - ~>
|
@@ -98,10 +109,10 @@ dependencies:
|
|
98
109
|
version: '1.0'
|
99
110
|
type: :runtime
|
100
111
|
prerelease: false
|
101
|
-
version_requirements: *
|
112
|
+
version_requirements: *70355474630720
|
102
113
|
- !ruby/object:Gem::Dependency
|
103
114
|
name: yajl-ruby
|
104
|
-
requirement: &
|
115
|
+
requirement: &70355474618200 !ruby/object:Gem::Requirement
|
105
116
|
none: false
|
106
117
|
requirements:
|
107
118
|
- - ~>
|
@@ -109,10 +120,10 @@ dependencies:
|
|
109
120
|
version: '1.0'
|
110
121
|
type: :runtime
|
111
122
|
prerelease: false
|
112
|
-
version_requirements: *
|
123
|
+
version_requirements: *70355474618200
|
113
124
|
- !ruby/object:Gem::Dependency
|
114
125
|
name: yui-compressor
|
115
|
-
requirement: &
|
126
|
+
requirement: &70355474616500 !ruby/object:Gem::Requirement
|
116
127
|
none: false
|
117
128
|
requirements:
|
118
129
|
- - ~>
|
@@ -120,7 +131,7 @@ dependencies:
|
|
120
131
|
version: '0.9'
|
121
132
|
type: :runtime
|
122
133
|
prerelease: false
|
123
|
-
version_requirements: *
|
134
|
+
version_requirements: *70355474616500
|
124
135
|
description: A painfully opinionated Appetizer extension for web apps.
|
125
136
|
email:
|
126
137
|
- tech@audiosocket.com
|
@@ -142,6 +153,7 @@ files:
|
|
142
153
|
- lib/appetizer/ui/app/js/appetizer/xdr.coffee
|
143
154
|
- lib/appetizer/ui/app/views/client/appetizer/missing.jst.eco
|
144
155
|
- lib/appetizer/ui/assets.rb
|
156
|
+
- lib/appetizer/ui/assets/delivery.rb
|
145
157
|
- lib/appetizer/ui/jasmine/css/jasmine.css
|
146
158
|
- lib/appetizer/ui/jasmine/js/jasmine-html.js
|
147
159
|
- lib/appetizer/ui/jasmine/js/jasmine-jquery-matchers.js
|