embarista 1.1.5 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +1 -1
  3. data/.ruby-version +1 -0
  4. data/.travis.yml +2 -1
  5. data/Gemfile +4 -9
  6. data/embarista.gemspec +4 -5
  7. data/lib/embarista.rb +7 -0
  8. data/lib/embarista/app.rb +46 -0
  9. data/lib/embarista/dynamic_index.rb +3 -207
  10. data/lib/embarista/dynamic_index/context.rb +32 -0
  11. data/lib/embarista/dynamic_index/generator.rb +27 -0
  12. data/lib/embarista/dynamic_index/middleware.rb +25 -0
  13. data/lib/embarista/filters/manifest_url_filter.rb +12 -0
  14. data/lib/embarista/filters/precompile_handlebars_filter.rb +32 -5
  15. data/lib/embarista/filters/rewrite_minispade_requires_filter.rb +11 -7
  16. data/lib/embarista/helpers.rb +12 -12
  17. data/lib/embarista/precompiler.rb +84 -0
  18. data/lib/embarista/redis.rb +34 -0
  19. data/lib/embarista/s3.rb +59 -0
  20. data/lib/embarista/s3sync.rb +23 -75
  21. data/lib/embarista/sass_functions.rb +17 -7
  22. data/lib/embarista/tasks.rb +5 -0
  23. data/lib/embarista/tasks/assets.rb +41 -0
  24. data/lib/embarista/tasks/generate_index.rb +46 -0
  25. data/lib/embarista/tasks/generate_s3_index.rb +33 -0
  26. data/lib/embarista/tasks/set_current_index.rb +31 -0
  27. data/lib/embarista/tasks/updater.rb +114 -8
  28. data/lib/embarista/tasks/upload_index.rb +45 -0
  29. data/lib/embarista/version.rb +1 -1
  30. data/spec/manifest_builder_spec.rb +3 -3
  31. data/spec/manifest_url_filter_spec.rb +9 -3
  32. data/spec/precompile_handlebars_filter_spec.rb +6 -5
  33. data/spec/spec_helper.rb +3 -1
  34. data/vendor/ember-template-compiler.js +195 -0
  35. metadata +67 -98
  36. data/.rvmrc +0 -49
  37. data/lib/embarista/server.rb +0 -171
  38. data/vendor/ember.js +0 -21051
@@ -22,12 +22,13 @@ HBS
22
22
  Rake::Application.new
23
23
  }
24
24
 
25
- let(:emberjs) { File.expand_path('../../vendor/ember.js', __FILE__) }
26
- let(:handlebarsjs) { File.expand_path('../../vendor/handlebars.js', __FILE__) }
27
- let(:jquery_version) { '1.7.2' }
25
+ let(:ember_template_compiler) { File.expand_path('../../vendor/ember-template-compiler.js', __FILE__) }
26
+ let(:handlebars) { File.expand_path('../../vendor/handlebars.js', __FILE__) }
28
27
 
29
28
  let(:subject) {
30
- filter = described_class.new(:emberjs => emberjs, :handlebarsjs => handlebarsjs, :jquery_version => jquery_version)
29
+ filter = described_class.new(:handlebars => handlebars,
30
+ :ember_template_compiler => ember_template_compiler,
31
+ :templates_global => 'Ember.TEMPLATES_BAZ')
31
32
  filter.file_wrapper_class = file_wrapper_class
32
33
  filter.manifest = MemoryManifest.new
33
34
  filter.last_manifest = MemoryManifest.new
@@ -45,7 +46,7 @@ HBS
45
46
 
46
47
  file.should_not be_nil
47
48
  file.body.should_not be_nil
48
- file.body.should match(/^Ember\.TEMPLATES\[\'bar\/foo\'\] = Ember\.Handlebars\.template\(.*\"Hello \".*\"foo\"/m)
49
+ file.body.should match(/^Ember\.TEMPLATES_BAZ\[\'bar\/foo\'\] = Ember\.Handlebars\.template\(.*\"Hello \".*\"foo\"/m)
49
50
  file.encoding.should eq('UTF-8')
50
51
  end
51
52
  end
@@ -1,15 +1,17 @@
1
- require 'pry'
2
1
  require 'embarista'
3
2
  require 'fileutils'
4
3
 
5
4
  require "spec_helpers/memory_file_wrapper"
6
5
  require "spec_helpers/memory_manifest"
6
+ require 'rspec/its'
7
7
 
8
8
  RSpec.configure do |config|
9
9
  original = Dir.pwd
10
10
 
11
11
  config.include FileUtils
12
12
 
13
+ config.expect_with(:rspec) { |c| c.syntax = :should }
14
+
13
15
  def tmp
14
16
  File.expand_path("../tmp", __FILE__)
15
17
  end
@@ -0,0 +1,195 @@
1
+ (function() {
2
+ var Ember = { assert: function() {} };
3
+ // Version: v1.0.0-pre.4-277-gd0364de
4
+ // Last commit: d0364de (2013-02-21 06:00:54 -0500)
5
+
6
+
7
+ (function() {
8
+ /**
9
+ @module ember
10
+ @submodule ember-handlebars
11
+ */
12
+
13
+ // Eliminate dependency on any Ember to simplify precompilation workflow
14
+ var objectCreate = Object.create || function(parent) {
15
+ function F() {}
16
+ F.prototype = parent;
17
+ return new F();
18
+ };
19
+
20
+ var Handlebars = this.Handlebars || (Ember.imports && Ember.imports.Handlebars);
21
+ if(!Handlebars && typeof require === 'function') {
22
+ Handlebars = require('handlebars');
23
+ }
24
+
25
+ Ember.assert("Ember Handlebars requires Handlebars 1.0.0-rc.3 or greater", Handlebars && Handlebars.VERSION.match(/^1\.0\.[0-9](\.rc\.[23456789]+)?/));
26
+
27
+ /**
28
+ Prepares the Handlebars templating library for use inside Ember's view
29
+ system.
30
+
31
+ The `Ember.Handlebars` object is the standard Handlebars library, extended to
32
+ use Ember's `get()` method instead of direct property access, which allows
33
+ computed properties to be used inside templates.
34
+
35
+ To create an `Ember.Handlebars` template, call `Ember.Handlebars.compile()`.
36
+ This will return a function that can be used by `Ember.View` for rendering.
37
+
38
+ @class Handlebars
39
+ @namespace Ember
40
+ */
41
+ Ember.Handlebars = objectCreate(Handlebars);
42
+
43
+ /**
44
+ @class helpers
45
+ @namespace Ember.Handlebars
46
+ */
47
+ Ember.Handlebars.helpers = objectCreate(Handlebars.helpers);
48
+
49
+ /**
50
+ Override the the opcode compiler and JavaScript compiler for Handlebars.
51
+
52
+ @class Compiler
53
+ @namespace Ember.Handlebars
54
+ @private
55
+ @constructor
56
+ */
57
+ Ember.Handlebars.Compiler = function() {};
58
+
59
+ // Handlebars.Compiler doesn't exist in runtime-only
60
+ if (Handlebars.Compiler) {
61
+ Ember.Handlebars.Compiler.prototype = objectCreate(Handlebars.Compiler.prototype);
62
+ }
63
+
64
+ Ember.Handlebars.Compiler.prototype.compiler = Ember.Handlebars.Compiler;
65
+
66
+ /**
67
+ @class JavaScriptCompiler
68
+ @namespace Ember.Handlebars
69
+ @private
70
+ @constructor
71
+ */
72
+ Ember.Handlebars.JavaScriptCompiler = function() {};
73
+
74
+ // Handlebars.JavaScriptCompiler doesn't exist in runtime-only
75
+ if (Handlebars.JavaScriptCompiler) {
76
+ Ember.Handlebars.JavaScriptCompiler.prototype = objectCreate(Handlebars.JavaScriptCompiler.prototype);
77
+ Ember.Handlebars.JavaScriptCompiler.prototype.compiler = Ember.Handlebars.JavaScriptCompiler;
78
+ }
79
+
80
+
81
+ Ember.Handlebars.JavaScriptCompiler.prototype.namespace = "Ember.Handlebars";
82
+
83
+
84
+ Ember.Handlebars.JavaScriptCompiler.prototype.initializeBuffer = function() {
85
+ return "''";
86
+ };
87
+
88
+ /**
89
+ @private
90
+
91
+ Override the default buffer for Ember Handlebars. By default, Handlebars
92
+ creates an empty String at the beginning of each invocation and appends to
93
+ it. Ember's Handlebars overrides this to append to a single shared buffer.
94
+
95
+ @method appendToBuffer
96
+ @param string {String}
97
+ */
98
+ Ember.Handlebars.JavaScriptCompiler.prototype.appendToBuffer = function(string) {
99
+ return "data.buffer.push("+string+");";
100
+ };
101
+
102
+ var prefix = "ember" + (+new Date()), incr = 1;
103
+
104
+ /**
105
+ @private
106
+
107
+ Rewrite simple mustaches from `{{foo}}` to `{{bind "foo"}}`. This means that
108
+ all simple mustaches in Ember's Handlebars will also set up an observer to
109
+ keep the DOM up to date when the underlying property changes.
110
+
111
+ @method mustache
112
+ @for Ember.Handlebars.Compiler
113
+ @param mustache
114
+ */
115
+ Ember.Handlebars.Compiler.prototype.mustache = function(mustache) {
116
+ if (mustache.isHelper && mustache.id.string === 'control') {
117
+ mustache.hash = mustache.hash || new Handlebars.AST.HashNode([]);
118
+ mustache.hash.pairs.push(["controlID", new Handlebars.AST.StringNode(prefix + incr++)]);
119
+ } else if (mustache.params.length || mustache.hash) {
120
+ // no changes required
121
+ } else {
122
+ var id = new Handlebars.AST.IdNode(['_triageMustache']);
123
+
124
+ // Update the mustache node to include a hash value indicating whether the original node
125
+ // was escaped. This will allow us to properly escape values when the underlying value
126
+ // changes and we need to re-render the value.
127
+ if(!mustache.escaped) {
128
+ mustache.hash = mustache.hash || new Handlebars.AST.HashNode([]);
129
+ mustache.hash.pairs.push(["unescaped", new Handlebars.AST.StringNode("true")]);
130
+ }
131
+ mustache = new Handlebars.AST.MustacheNode([id].concat([mustache.id]), mustache.hash, !mustache.escaped);
132
+ }
133
+
134
+ return Handlebars.Compiler.prototype.mustache.call(this, mustache);
135
+ };
136
+
137
+ /**
138
+ Used for precompilation of Ember Handlebars templates. This will not be used
139
+ during normal app execution.
140
+
141
+ @method precompile
142
+ @for Ember.Handlebars
143
+ @static
144
+ @param {String} string The template to precompile
145
+ */
146
+ Ember.Handlebars.precompile = function(string) {
147
+ var ast = Handlebars.parse(string);
148
+
149
+ var options = {
150
+ knownHelpers: {
151
+ action: true,
152
+ unbound: true,
153
+ bindAttr: true,
154
+ template: true,
155
+ view: true,
156
+ _triageMustache: true
157
+ },
158
+ data: true,
159
+ stringParams: true
160
+ };
161
+
162
+ var environment = new Ember.Handlebars.Compiler().compile(ast, options);
163
+ return new Ember.Handlebars.JavaScriptCompiler().compile(environment, options, undefined, true);
164
+ };
165
+
166
+ // We don't support this for Handlebars runtime-only
167
+ if (Handlebars.compile) {
168
+ /**
169
+ The entry point for Ember Handlebars. This replaces the default
170
+ `Handlebars.compile` and turns on template-local data and String
171
+ parameters.
172
+
173
+ @method compile
174
+ @for Ember.Handlebars
175
+ @static
176
+ @param {String} string The template to compile
177
+ @return {Function}
178
+ */
179
+ Ember.Handlebars.compile = function(string) {
180
+ var ast = Handlebars.parse(string);
181
+ var options = { data: true, stringParams: true };
182
+ var environment = new Ember.Handlebars.Compiler().compile(ast, options);
183
+ var templateSpec = new Ember.Handlebars.JavaScriptCompiler().compile(environment, options, undefined, true);
184
+
185
+ return Ember.Handlebars.template(templateSpec);
186
+ };
187
+ }
188
+
189
+
190
+ })();
191
+
192
+
193
+ exports.precompile = Ember.Handlebars.precompile;
194
+ exports.EmberHandlebars = Ember.Handlebars;
195
+ })();
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embarista
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 1.1.5
4
+ version: 2.0.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Luke Melia
@@ -10,168 +9,134 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2013-01-17 00:00:00.000000000 Z
12
+ date: 2018-04-16 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
- version_requirements: !ruby/object:Gem::Requirement
17
- requirements:
18
- - - ! '>'
19
- - !ruby/object:Gem::Version
20
- version: 0.6.0
21
- none: false
22
- prerelease: false
23
15
  name: rake-pipeline
24
16
  requirement: !ruby/object:Gem::Requirement
25
17
  requirements:
26
- - - ! '>'
18
+ - - ">"
27
19
  - !ruby/object:Gem::Version
28
20
  version: 0.6.0
29
- none: false
30
21
  type: :runtime
31
- - !ruby/object:Gem::Dependency
22
+ prerelease: false
32
23
  version_requirements: !ruby/object:Gem::Requirement
33
24
  requirements:
34
- - - ! '>='
25
+ - - ">"
35
26
  - !ruby/object:Gem::Version
36
27
  version: 0.6.0
37
- none: false
38
- prerelease: false
28
+ - !ruby/object:Gem::Dependency
39
29
  name: rake-pipeline-web-filters
40
30
  requirement: !ruby/object:Gem::Requirement
41
31
  requirements:
42
- - - ! '>='
32
+ - - ">="
43
33
  - !ruby/object:Gem::Version
44
34
  version: 0.6.0
45
- none: false
46
35
  type: :runtime
47
- - !ruby/object:Gem::Dependency
36
+ prerelease: false
48
37
  version_requirements: !ruby/object:Gem::Requirement
49
38
  requirements:
50
- - - ! '>='
39
+ - - ">="
51
40
  - !ruby/object:Gem::Version
52
- version: '0'
53
- none: false
54
- prerelease: false
55
- name: barber
41
+ version: 0.6.0
42
+ - !ruby/object:Gem::Dependency
43
+ name: execjs
56
44
  requirement: !ruby/object:Gem::Requirement
57
45
  requirements:
58
- - - ! '>='
46
+ - - ">="
59
47
  - !ruby/object:Gem::Version
60
48
  version: '0'
61
- none: false
62
49
  type: :runtime
63
- - !ruby/object:Gem::Dependency
50
+ prerelease: false
64
51
  version_requirements: !ruby/object:Gem::Requirement
65
52
  requirements:
66
- - - ! '>='
53
+ - - ">="
67
54
  - !ruby/object:Gem::Version
68
55
  version: '0'
69
- none: false
70
- prerelease: false
71
- name: ruby_gntp
56
+ - !ruby/object:Gem::Dependency
57
+ name: colored
72
58
  requirement: !ruby/object:Gem::Requirement
73
59
  requirements:
74
- - - ! '>='
60
+ - - ">="
75
61
  - !ruby/object:Gem::Version
76
62
  version: '0'
77
- none: false
78
63
  type: :runtime
79
- - !ruby/object:Gem::Dependency
64
+ prerelease: false
80
65
  version_requirements: !ruby/object:Gem::Requirement
81
66
  requirements:
82
- - - ! '>='
67
+ - - ">="
83
68
  - !ruby/object:Gem::Version
84
69
  version: '0'
85
- none: false
86
- prerelease: false
87
- name: listen
70
+ - !ruby/object:Gem::Dependency
71
+ name: aws-sdk-s3
88
72
  requirement: !ruby/object:Gem::Requirement
89
73
  requirements:
90
- - - ! '>='
74
+ - - "~>"
91
75
  - !ruby/object:Gem::Version
92
- version: '0'
93
- none: false
76
+ version: '1'
94
77
  type: :runtime
95
- - !ruby/object:Gem::Dependency
78
+ prerelease: false
96
79
  version_requirements: !ruby/object:Gem::Requirement
97
80
  requirements:
98
- - - ! '>='
81
+ - - "~>"
99
82
  - !ruby/object:Gem::Version
100
- version: '0'
101
- none: false
102
- prerelease: false
103
- name: colored
83
+ version: '1'
84
+ - !ruby/object:Gem::Dependency
85
+ name: zopfli
104
86
  requirement: !ruby/object:Gem::Requirement
105
87
  requirements:
106
- - - ! '>='
88
+ - - ">="
107
89
  - !ruby/object:Gem::Version
108
90
  version: '0'
109
- none: false
110
91
  type: :runtime
111
- - !ruby/object:Gem::Dependency
92
+ prerelease: false
112
93
  version_requirements: !ruby/object:Gem::Requirement
113
94
  requirements:
114
- - - ! '>='
95
+ - - ">="
115
96
  - !ruby/object:Gem::Version
116
97
  version: '0'
117
- none: false
118
- prerelease: false
119
- name: rb-fsevent
98
+ - !ruby/object:Gem::Dependency
99
+ name: mime-types
120
100
  requirement: !ruby/object:Gem::Requirement
121
101
  requirements:
122
- - - ! '>='
102
+ - - ">="
123
103
  - !ruby/object:Gem::Version
124
104
  version: '0'
125
- none: false
126
105
  type: :runtime
127
- - !ruby/object:Gem::Dependency
106
+ prerelease: false
128
107
  version_requirements: !ruby/object:Gem::Requirement
129
108
  requirements:
130
- - - ! '>='
109
+ - - ">="
131
110
  - !ruby/object:Gem::Version
132
111
  version: '0'
133
- none: false
134
- prerelease: false
112
+ - !ruby/object:Gem::Dependency
135
113
  name: rspec
136
114
  requirement: !ruby/object:Gem::Requirement
137
115
  requirements:
138
- - - ! '>='
116
+ - - ">="
139
117
  - !ruby/object:Gem::Version
140
118
  version: '0'
141
- none: false
142
119
  type: :development
143
- - !ruby/object:Gem::Dependency
120
+ prerelease: false
144
121
  version_requirements: !ruby/object:Gem::Requirement
145
122
  requirements:
146
- - - ! '>='
123
+ - - ">="
147
124
  - !ruby/object:Gem::Version
148
125
  version: '0'
149
- none: false
150
- prerelease: false
126
+ - !ruby/object:Gem::Dependency
151
127
  name: rb-readline
152
128
  requirement: !ruby/object:Gem::Requirement
153
129
  requirements:
154
- - - ! '>='
130
+ - - ">="
155
131
  - !ruby/object:Gem::Version
156
132
  version: '0'
157
- none: false
158
133
  type: :development
159
- - !ruby/object:Gem::Dependency
160
- version_requirements: !ruby/object:Gem::Requirement
161
- requirements:
162
- - - ! '>='
163
- - !ruby/object:Gem::Version
164
- version: '0'
165
- none: false
166
134
  prerelease: false
167
- name: execjs
168
- requirement: !ruby/object:Gem::Requirement
135
+ version_requirements: !ruby/object:Gem::Requirement
169
136
  requirements:
170
- - - ! '>='
137
+ - - ">="
171
138
  - !ruby/object:Gem::Version
172
139
  version: '0'
173
- none: false
174
- type: :development
175
140
  description: A collection of web filters for rake-pipeline
176
141
  email:
177
142
  - tech@yapp.us
@@ -179,17 +144,21 @@ executables: []
179
144
  extensions: []
180
145
  extra_rdoc_files: []
181
146
  files:
182
- - .gitignore
183
- - .rspec
184
- - .rvmrc
185
- - .travis.yml
147
+ - ".gitignore"
148
+ - ".rspec"
149
+ - ".ruby-version"
150
+ - ".travis.yml"
186
151
  - Gemfile
187
152
  - LICENSE
188
153
  - README.md
189
154
  - Rakefile
190
155
  - embarista.gemspec
191
156
  - lib/embarista.rb
157
+ - lib/embarista/app.rb
192
158
  - lib/embarista/dynamic_index.rb
159
+ - lib/embarista/dynamic_index/context.rb
160
+ - lib/embarista/dynamic_index/generator.rb
161
+ - lib/embarista/dynamic_index/middleware.rb
193
162
  - lib/embarista/filters.rb
194
163
  - lib/embarista/filters/erb_filter.rb
195
164
  - lib/embarista/filters/manifest_url_filter.rb
@@ -200,12 +169,19 @@ files:
200
169
  - lib/embarista/helpers.rb
201
170
  - lib/embarista/javascript_pipeline.rb
202
171
  - lib/embarista/manifest_builder.rb
172
+ - lib/embarista/precompiler.rb
173
+ - lib/embarista/redis.rb
174
+ - lib/embarista/s3.rb
203
175
  - lib/embarista/s3sync.rb
204
176
  - lib/embarista/sass_functions.rb
205
- - lib/embarista/server.rb
206
177
  - lib/embarista/tasks.rb
178
+ - lib/embarista/tasks/assets.rb
207
179
  - lib/embarista/tasks/coffeelint.rb
180
+ - lib/embarista/tasks/generate_index.rb
181
+ - lib/embarista/tasks/generate_s3_index.rb
182
+ - lib/embarista/tasks/set_current_index.rb
208
183
  - lib/embarista/tasks/updater.rb
184
+ - lib/embarista/tasks/upload_index.rb
209
185
  - lib/embarista/version.rb
210
186
  - spec/erb_filter_spec.rb
211
187
  - spec/helpers_spec.rb
@@ -217,37 +193,30 @@ files:
217
193
  - spec/spec_helpers/memory_file_wrapper.rb
218
194
  - spec/spec_helpers/memory_manifest.rb
219
195
  - spec/strip_ember_asserts_filter_spec.rb
220
- - vendor/ember.js
196
+ - vendor/ember-template-compiler.js
221
197
  - vendor/handlebars.js
222
198
  homepage: http://github.com/yappbox/embarista
223
199
  licenses: []
200
+ metadata: {}
224
201
  post_install_message:
225
202
  rdoc_options: []
226
203
  require_paths:
227
204
  - lib
228
205
  required_ruby_version: !ruby/object:Gem::Requirement
229
206
  requirements:
230
- - - ! '>='
207
+ - - ">="
231
208
  - !ruby/object:Gem::Version
232
209
  version: '0'
233
- segments:
234
- - 0
235
- hash: -2852364876393853144
236
- none: false
237
210
  required_rubygems_version: !ruby/object:Gem::Requirement
238
211
  requirements:
239
- - - ! '>='
212
+ - - ">="
240
213
  - !ruby/object:Gem::Version
241
214
  version: '0'
242
- segments:
243
- - 0
244
- hash: -2852364876393853144
245
- none: false
246
215
  requirements: []
247
216
  rubyforge_project:
248
- rubygems_version: 1.8.24
217
+ rubygems_version: 2.4.8
249
218
  signing_key:
250
- specification_version: 3
219
+ specification_version: 4
251
220
  summary: A collection of web filters for rake-pipeline used to build Yapp Ember.js
252
221
  apps
253
222
  test_files: