embarista 1.1.5 → 2.0.3

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.
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: