sprockets-iife 1.0.2 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +22 -0
  3. data/Appraisals +18 -0
  4. data/Gemfile +9 -0
  5. data/Rakefile +11 -0
  6. data/gemfiles/rails_3.gemfile +9 -0
  7. data/gemfiles/rails_4_with_sprockets_2.gemfile +9 -0
  8. data/gemfiles/rails_4_with_sprockets_3.gemfile +9 -0
  9. data/gemfiles/rails_5.gemfile +9 -0
  10. data/lib/sprockets-iife/processor.rb +42 -10
  11. data/lib/sprockets-iife/railtie.rb +6 -2
  12. data/lib/sprockets-iife/template.rb +21 -0
  13. data/lib/sprockets-iife/version.rb +1 -1
  14. data/lib/sprockets-iife/wrap.rb +18 -0
  15. data/lib/sprockets-iife.rb +2 -8
  16. data/sprockets-iife.gemspec +6 -1
  17. data/test/fixtures/javascripts/coffeebundle/bar-iife.js.erb +3 -0
  18. data/test/fixtures/javascripts/coffeebundle/bar.coffee +1 -0
  19. data/test/fixtures/javascripts/coffeebundle/foo.coffee +1 -0
  20. data/test/fixtures/javascripts/coffeebundle-iife.js.erb +3 -0
  21. data/test/fixtures/javascripts/coffeebundle.coffee +5 -0
  22. data/test/fixtures/javascripts/jsbundle/bar-iife.js.erb +3 -0
  23. data/test/fixtures/javascripts/jsbundle/bar.js +1 -0
  24. data/test/fixtures/javascripts/jsbundle/foo.js +1 -0
  25. data/test/fixtures/javascripts/jsbundle-iife.js.erb +3 -0
  26. data/test/fixtures/javascripts/jsbundle.js +5 -0
  27. data/test/fixtures/javascripts/mixedbundle/bar-iife.js.erb +3 -0
  28. data/test/fixtures/javascripts/mixedbundle/bar.coffee +1 -0
  29. data/test/fixtures/javascripts/mixedbundle/baz-iife.js.erb +3 -0
  30. data/test/fixtures/javascripts/mixedbundle/baz.js +1 -0
  31. data/test/fixtures/javascripts/mixedbundle/foo.js +1 -0
  32. data/test/fixtures/javascripts/mixedbundle-iife.js.erb +3 -0
  33. data/test/fixtures/javascripts/mixedbundle.coffee +6 -0
  34. data/test/test-sprockets-iife.rb +119 -0
  35. metadata +120 -5
  36. data/lib/sprockets-iife/legacy-processor.rb +0 -20
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d8442e14e04c5b085230235237caeef6cbf47360
4
- data.tar.gz: 04c772680c6c6f04a98c1d75c12a7d8bd501fe71
3
+ metadata.gz: 9054960a6ef80b43a4d1c456cdb5c8bbb5d8a9d9
4
+ data.tar.gz: b19de6947d03fedc86186bc391c5049eb6c5d21e
5
5
  SHA512:
6
- metadata.gz: 77008f7d66dfaa1dfd4ed1b3623d5c5b7528dd38fb72a30cb842d3e07856a63359e87c780b73f219921aa89545e4258ba411c2a0ac0be55b4e93bbac44a14adf
7
- data.tar.gz: c384c12ba12111cd6398cc4a98c7a706edfd3dac091ee834ffb4ee89f6bd747420321fbdae16d18be9e58ee76f37f89b025ace6e6a4cd71f09430595dc733f86
6
+ metadata.gz: 048f6a8ea56c515e51a30e7f2ee40519315df7da21b83da343b8050f24601324f41ca5ba42a8bf0b73ce5e21dedfead6fe83cc088c51598e5910699292b09144
7
+ data.tar.gz: 6bbc62993e0efd4ed04a5e08253936f43ec8f944957687e031051071dfe2667c1ff20bd28ab929ab56a5062216eb067450fa5dd5ff53ff5258ac65e1e27e1d87
data/.travis.yml ADDED
@@ -0,0 +1,22 @@
1
+ language: ruby
2
+
3
+ rvm:
4
+ - 2.0.0
5
+ - 2.1.10
6
+ - 2.2.5
7
+ - 2.3.1
8
+
9
+ cache: bundler
10
+
11
+ gemfile:
12
+ - gemfiles/rails_3.gemfile
13
+ - gemfiles/rails_4_with_sprockets_2.gemfile
14
+ - gemfiles/rails_4_with_sprockets_3.gemfile
15
+ - gemfiles/rails_5.gemfile
16
+
17
+ matrix:
18
+ exclude:
19
+ - rvm: 2.0.0
20
+ gemfile: gemfiles/rails_5.gemfile
21
+ - rvm: 2.1.10
22
+ gemfile: gemfiles/rails_5.gemfile
data/Appraisals ADDED
@@ -0,0 +1,18 @@
1
+ appraise 'rails-3' do
2
+ gem 'rails', '~> 3'
3
+ gem 'sprockets', '~> 2'
4
+ end
5
+
6
+ appraise 'rails-4-with-sprockets-2' do
7
+ gem 'rails', '~> 4'
8
+ gem 'sprockets', '~> 3'
9
+ end
10
+
11
+ appraise 'rails-4-with-sprockets-3' do
12
+ gem 'rails', '~> 4'
13
+ gem 'sprockets', '~> 3'
14
+ end
15
+
16
+ appraise 'rails-5' do
17
+ gem 'rails', '~> 5'
18
+ end
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ # encoding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ source 'https://rubygems.org'
5
+ gemspec
6
+
7
+ gem 'rails', '~> 4'
8
+ gem 'sprockets', '~> 3'
9
+ gem 'pry-byebug'
data/Rakefile ADDED
@@ -0,0 +1,11 @@
1
+ # encoding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ require 'bundler'
5
+ require 'bundler/setup'
6
+ require 'json'
7
+ require 'rake/testtask'
8
+
9
+ Rake::TestTask.new { |t| t.libs << 'test' }
10
+
11
+ task default: :test
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 3"
6
+ gem "sprockets", "~> 2"
7
+ gem "pry-byebug"
8
+
9
+ gemspec :path => "../"
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 4"
6
+ gem "sprockets", "~> 3"
7
+ gem "pry-byebug"
8
+
9
+ gemspec :path => "../"
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 4"
6
+ gem "sprockets", "~> 3"
7
+ gem "pry-byebug"
8
+
9
+ gemspec :path => "../"
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "rails", "~> 5"
6
+ gem "sprockets", "~> 3"
7
+ gem "pry-byebug"
8
+
9
+ gemspec :path => "../"
@@ -2,24 +2,56 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module SprocketsIIFE
5
- class Processor
6
- include Singleton
5
+ class AbstractProcessor
6
+ def initialize(script_path, &block)
7
+ @script_path = script_path
8
+ @script_source = block.call
9
+ end
10
+
11
+ def render(_, _)
12
+ self.class.wrap(@script_path, @script_source)
13
+ end
7
14
 
8
15
  class << self
9
16
  def call(input)
10
- instance.call(input)
17
+ script_path = input[:filename]
18
+ script_source = input[:data]
19
+ context = input[:environment].context_class.new(input)
20
+ context.metadata.merge(data: wrap(script_path, script_source))
21
+ end
22
+
23
+ def wrap(script_path, script_source)
24
+ raise NotImplementedError
11
25
  end
12
26
  end
27
+ end
13
28
 
14
- def call(input)
15
- @input = input
16
- source_path = @input[:filename]
17
- iife_path = File.join(File.dirname(source_path), "#{File.basename(source_path, '.*')}-iife.js.erb")
18
- File.readable?(iife_path) ? ERB.new(File.read(iife_path)).result(binding) : input[:data]
29
+ class ItemProcessor < AbstractProcessor
30
+ class << self
31
+ def wrap(script_path, script_source)
32
+ script_name = "#{File.basename(script_path, '.*')}.js"
33
+ seems_to_be_a_bundle = Rails.application.config.assets.precompile.any? do |x|
34
+ case x
35
+ when String then x == script_name
36
+ when Regexp then x =~ script_name
37
+ else false
38
+ end
39
+ end
40
+
41
+ if seems_to_be_a_bundle
42
+ script_source
43
+ else
44
+ SprocketsIIFE.wrap(script_path, script_source)
45
+ end
46
+ end
19
47
  end
48
+ end
20
49
 
21
- def source
22
- @input[:data]
50
+ class BundleProcessor < AbstractProcessor
51
+ class << self
52
+ def wrap(script_path, script_source)
53
+ SprocketsIIFE.wrap(script_path, script_source)
54
+ end
23
55
  end
24
56
  end
25
57
  end
@@ -1,6 +1,8 @@
1
1
  # encoding: utf-8
2
2
  # frozen_string_literal: true
3
3
 
4
+ require 'rails/railtie'
5
+
4
6
  module SprocketsIIFE
5
7
  class Railtie < Rails::Railtie
6
8
  def configure_assets(app)
@@ -13,10 +15,12 @@ module SprocketsIIFE
13
15
  end
14
16
  end
15
17
 
16
- initializer 'sprockets.iife', group: :all, after: 'sprockets.environment' do |app|
18
+ initializer 'sprockets.iife', after: 'sprockets.environment' do |app|
17
19
  configure_assets(app) do |env|
18
20
  # Sprockets 2, 3, and 4
19
- env.register_bundle_processor 'application/javascript', SprocketsIIFE::Processor
21
+ env.register_bundle_processor 'application/javascript', SprocketsIIFE::BundleProcessor
22
+ env.register_mime_type 'application/javascript', extensions: ['.js']
23
+ env.register_postprocessor 'application/javascript', SprocketsIIFE::ItemProcessor
20
24
  end
21
25
  end
22
26
  end
@@ -0,0 +1,21 @@
1
+ # encoding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ require 'erb'
5
+
6
+ module SprocketsIIFE
7
+ class Template < ERB
8
+ def initialize(script_iife_path, script_source)
9
+ @script_source = script_source
10
+ super(File.read(script_iife_path))
11
+ end
12
+
13
+ def source
14
+ @script_source
15
+ end
16
+
17
+ def result
18
+ super(binding)
19
+ end
20
+ end
21
+ end
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module SprocketsIIFE
5
- VERSION = '1.0.2'
5
+ VERSION = '1.1.0'
6
6
  end
@@ -0,0 +1,18 @@
1
+ # encoding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ require 'sprockets-iife/template'
5
+
6
+ module SprocketsIIFE
7
+ class << self
8
+ def wrap(script_path, script_source)
9
+ script_iife_path = File.join(File.dirname(script_path), "#{File.basename(script_path, '.*')}-iife.js.erb")
10
+
11
+ if File.readable?(script_iife_path)
12
+ Template.new(script_iife_path, script_source).result
13
+ else
14
+ script_source
15
+ end
16
+ end
17
+ end
18
+ end
@@ -2,12 +2,6 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require 'sprockets'
5
-
6
- Sprockets::VERSION =~ /\A\d/
7
- if $&.to_i > 2
8
- require 'sprockets-iife/processor'
9
- else
10
- require 'sprockets-iife/legacy-processor'
11
- end
12
-
5
+ require 'sprockets-iife/wrap'
6
+ require 'sprockets-iife/processor'
13
7
  require 'sprockets-iife/railtie' if defined?(Rails)
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
9
9
  s.author = 'Yaroslav Konoplov'
10
10
  s.email = 'eahome00@gmail.com'
11
11
  s.summary = 'IIFE wrapper generator for Sprockets'
12
- s.description = 'Generates IIFE wrapper for Sprockets JavaScript bundles'
12
+ s.description = 'Generates IIFE wrapper for Sprockets JavaScript files'
13
13
  s.homepage = 'https://github.com/yivo/sprockets-iife'
14
14
  s.license = 'MIT'
15
15
 
@@ -19,4 +19,9 @@ Gem::Specification.new do |s|
19
19
  s.require_paths = ['lib']
20
20
 
21
21
  s.add_dependency 'sprockets', '>= 2.0', '< 5.0'
22
+ s.add_development_dependency 'bundler', '~> 1.7'
23
+ s.add_development_dependency 'rake', '~> 10.0'
24
+ s.add_development_dependency 'appraisal', '~> 2.1'
25
+ s.add_development_dependency 'test-unit', '~> 3.1'
26
+ s.add_development_dependency 'coffee-rails'
22
27
  end
@@ -0,0 +1,3 @@
1
+ (function(/* bar-iife */) {
2
+ <%= source %>
3
+ }).call(this);
@@ -0,0 +1 @@
1
+ bar.coffee()
@@ -0,0 +1 @@
1
+ foo.coffee()
@@ -0,0 +1,3 @@
1
+ (function(/* coffeebundle-iife */) {
2
+ <%= source %>
3
+ }).call(this);
@@ -0,0 +1,5 @@
1
+ #= require_self
2
+ #= require coffeebundle/foo
3
+ #= require coffeebundle/bar
4
+
5
+ coffeebundle.coffee()
@@ -0,0 +1,3 @@
1
+ (function(/* bar-iife */) {
2
+ <%= source %>
3
+ }).call(this);
@@ -0,0 +1 @@
1
+ bar.js();
@@ -0,0 +1 @@
1
+ foo.js();
@@ -0,0 +1,3 @@
1
+ (function(/* jsbundle-iife */) {
2
+ <%= source %>
3
+ }).call(this);
@@ -0,0 +1,5 @@
1
+ // =require_self
2
+ // =require ./jsbundle/foo
3
+ // =require ./jsbundle/bar
4
+
5
+ jsbundle.js();
@@ -0,0 +1,3 @@
1
+ (function(/* bar-iife */) {
2
+ <%= source %>
3
+ }).call(this);
@@ -0,0 +1 @@
1
+ bar.coffee()
@@ -0,0 +1,3 @@
1
+ (function(/* baz-iife */) {
2
+ <%= source %>
3
+ }).call(this);
@@ -0,0 +1 @@
1
+ baz.js();
@@ -0,0 +1 @@
1
+ foo.js();
@@ -0,0 +1,3 @@
1
+ (function(/* mixedbundle-iife */) {
2
+ <%= source %>
3
+ }).call(this);
@@ -0,0 +1,6 @@
1
+ #= require_self
2
+ #= require ./mixedbundle/foo
3
+ #= require ./mixedbundle/bar
4
+ #= require ./mixedbundle/baz
5
+
6
+ mixedbundle.coffee()
@@ -0,0 +1,119 @@
1
+ # encoding: utf-8
2
+ # frozen_string_literal: true
3
+
4
+ require 'sprockets-iife'
5
+ require 'test/unit'
6
+ require 'fileutils'
7
+
8
+ class SprocketsIIFETest < Test::Unit::TestCase
9
+ def test_registration
10
+ app = create_rails_application
11
+ app.initialize!
12
+
13
+ assert app.assets.bundle_processors.key?('application/javascript')
14
+ assert Array === app.assets.bundle_processors['application/javascript']
15
+ assert app.assets.bundle_processors['application/javascript'].include?(SprocketsIIFE::BundleProcessor)
16
+
17
+ assert app.assets.postprocessors.key?('application/javascript')
18
+ assert Array === app.assets.postprocessors['application/javascript']
19
+ assert app.assets.postprocessors['application/javascript'].include?(SprocketsIIFE::ItemProcessor)
20
+ end
21
+
22
+ def test_compilation
23
+ app = create_rails_application
24
+ app.initialize!
25
+ task = create_sprockets_task(app)
26
+ task.instance_exec { manifest.compile(assets) }
27
+
28
+ expected = <<-JAVASCRIPT.squish
29
+ (function(/* jsbundle-iife */) {
30
+ jsbundle.js();
31
+ foo.js();
32
+ (function(/* bar-iife */) {
33
+ bar.js();
34
+ }).call(this);
35
+ }).call(this);
36
+ JAVASCRIPT
37
+ assert_equal expected, app.assets['jsbundle.js'].to_s.squish
38
+
39
+ expected = <<-JAVASCRIPT.squish
40
+ (function(/* coffeebundle-iife */) {
41
+ (function() { coffeebundle.coffee(); }).call(this);
42
+ (function() { foo.coffee(); }).call(this);
43
+ (function(/* bar-iife */) {
44
+ (function() { bar.coffee(); }).call(this);
45
+ }).call(this);
46
+ }).call(this);
47
+ JAVASCRIPT
48
+ assert_equal expected, app.assets['coffeebundle.js'].to_s.squish
49
+
50
+ expected = <<-JAVASCRIPT.squish
51
+ (function(/* mixedbundle-iife */) {
52
+ (function() { mixedbundle.coffee(); }).call(this);
53
+ foo.js();
54
+ (function(/* bar-iife */) {
55
+ (function() { bar.coffee(); }).call(this);
56
+ }).call(this);
57
+ (function(/* baz-iife */) {
58
+ baz.js();
59
+ }).call(this);
60
+ }).call(this);
61
+ JAVASCRIPT
62
+ assert_equal expected, app.assets['mixedbundle.js'].to_s.squish
63
+ end
64
+
65
+ def setup
66
+ super
67
+ clear_tmp
68
+ clear_logs
69
+ end
70
+
71
+ def teardown
72
+ super
73
+ clear_tmp
74
+ if defined?(Rails) && Rails.respond_to?(:application=)
75
+ Rails.application = nil
76
+ end
77
+ end
78
+
79
+ private
80
+ def create_rails_application
81
+ require 'rails'
82
+ require 'sprockets/railtie'
83
+ require 'sprockets-iife/railtie'
84
+
85
+ Class.new(Rails::Application) do
86
+ config.eager_load = false
87
+ config.assets.enabled = true
88
+ config.assets.gzip = false
89
+ config.assets.paths = [Rails.root.join('test/fixtures/javascripts').to_s]
90
+ config.assets.precompile = %w( jsbundle.js coffeebundle.js mixedbundle.js )
91
+ config.paths['public'] = [Rails.root.join('tmp').to_s]
92
+ config.active_support.deprecation = :stderr
93
+ end
94
+ end
95
+
96
+ def create_sprockets_task(app)
97
+ require 'sprockets/version' # Fix for sprockets 2.x
98
+
99
+ if Sprockets::VERSION.start_with?('2')
100
+ require 'rake/sprocketstask'
101
+ Rake::SprocketsTask.new do |t|
102
+ t.environment = app.assets
103
+ t.output = "#{app.config.paths['public'][0]}#{app.config.assets.prefix}"
104
+ t.assets = app.config.assets.precompile
105
+ end
106
+ else
107
+ require 'sprockets/rails/task'
108
+ Sprockets::Rails::Task.new(app)
109
+ end
110
+ end
111
+
112
+ def clear_tmp
113
+ FileUtils.rm_rf(File.expand_path('../../tmp', __FILE__))
114
+ end
115
+
116
+ def clear_logs
117
+ FileUtils.rm_rf(File.expand_path('../../log', __FILE__))
118
+ end
119
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sprockets-iife
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yaroslav Konoplov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-23 00:00:00.000000000 Z
11
+ date: 2016-12-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sprockets
@@ -30,20 +30,117 @@ dependencies:
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '5.0'
33
- description: Generates IIFE wrapper for Sprockets JavaScript bundles
33
+ - !ruby/object:Gem::Dependency
34
+ name: bundler
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.7'
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.7'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '10.0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '10.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: appraisal
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '2.1'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '2.1'
75
+ - !ruby/object:Gem::Dependency
76
+ name: test-unit
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '3.1'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '3.1'
89
+ - !ruby/object:Gem::Dependency
90
+ name: coffee-rails
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ description: Generates IIFE wrapper for Sprockets JavaScript files
34
104
  email: eahome00@gmail.com
35
105
  executables: []
36
106
  extensions: []
37
107
  extra_rdoc_files: []
38
108
  files:
39
109
  - ".gitignore"
110
+ - ".travis.yml"
111
+ - Appraisals
112
+ - Gemfile
40
113
  - README.md
114
+ - Rakefile
115
+ - gemfiles/rails_3.gemfile
116
+ - gemfiles/rails_4_with_sprockets_2.gemfile
117
+ - gemfiles/rails_4_with_sprockets_3.gemfile
118
+ - gemfiles/rails_5.gemfile
41
119
  - lib/sprockets-iife.rb
42
- - lib/sprockets-iife/legacy-processor.rb
43
120
  - lib/sprockets-iife/processor.rb
44
121
  - lib/sprockets-iife/railtie.rb
122
+ - lib/sprockets-iife/template.rb
45
123
  - lib/sprockets-iife/version.rb
124
+ - lib/sprockets-iife/wrap.rb
46
125
  - sprockets-iife.gemspec
126
+ - test/fixtures/javascripts/coffeebundle-iife.js.erb
127
+ - test/fixtures/javascripts/coffeebundle.coffee
128
+ - test/fixtures/javascripts/coffeebundle/bar-iife.js.erb
129
+ - test/fixtures/javascripts/coffeebundle/bar.coffee
130
+ - test/fixtures/javascripts/coffeebundle/foo.coffee
131
+ - test/fixtures/javascripts/jsbundle-iife.js.erb
132
+ - test/fixtures/javascripts/jsbundle.js
133
+ - test/fixtures/javascripts/jsbundle/bar-iife.js.erb
134
+ - test/fixtures/javascripts/jsbundle/bar.js
135
+ - test/fixtures/javascripts/jsbundle/foo.js
136
+ - test/fixtures/javascripts/mixedbundle-iife.js.erb
137
+ - test/fixtures/javascripts/mixedbundle.coffee
138
+ - test/fixtures/javascripts/mixedbundle/bar-iife.js.erb
139
+ - test/fixtures/javascripts/mixedbundle/bar.coffee
140
+ - test/fixtures/javascripts/mixedbundle/baz-iife.js.erb
141
+ - test/fixtures/javascripts/mixedbundle/baz.js
142
+ - test/fixtures/javascripts/mixedbundle/foo.js
143
+ - test/test-sprockets-iife.rb
47
144
  homepage: https://github.com/yivo/sprockets-iife
48
145
  licenses:
49
146
  - MIT
@@ -68,4 +165,22 @@ rubygems_version: 2.5.1
68
165
  signing_key:
69
166
  specification_version: 4
70
167
  summary: IIFE wrapper generator for Sprockets
71
- test_files: []
168
+ test_files:
169
+ - test/fixtures/javascripts/coffeebundle-iife.js.erb
170
+ - test/fixtures/javascripts/coffeebundle.coffee
171
+ - test/fixtures/javascripts/coffeebundle/bar-iife.js.erb
172
+ - test/fixtures/javascripts/coffeebundle/bar.coffee
173
+ - test/fixtures/javascripts/coffeebundle/foo.coffee
174
+ - test/fixtures/javascripts/jsbundle-iife.js.erb
175
+ - test/fixtures/javascripts/jsbundle.js
176
+ - test/fixtures/javascripts/jsbundle/bar-iife.js.erb
177
+ - test/fixtures/javascripts/jsbundle/bar.js
178
+ - test/fixtures/javascripts/jsbundle/foo.js
179
+ - test/fixtures/javascripts/mixedbundle-iife.js.erb
180
+ - test/fixtures/javascripts/mixedbundle.coffee
181
+ - test/fixtures/javascripts/mixedbundle/bar-iife.js.erb
182
+ - test/fixtures/javascripts/mixedbundle/bar.coffee
183
+ - test/fixtures/javascripts/mixedbundle/baz-iife.js.erb
184
+ - test/fixtures/javascripts/mixedbundle/baz.js
185
+ - test/fixtures/javascripts/mixedbundle/foo.js
186
+ - test/test-sprockets-iife.rb
@@ -1,20 +0,0 @@
1
- # encoding: utf-8
2
- # frozen_string_literal: true
3
-
4
- require 'tilt'
5
-
6
- module SprocketsIIFE
7
- class Processor < Tilt::Template
8
- def prepare
9
- end
10
-
11
- # Call processor block with `context` and `data`.
12
- def evaluate(context, locals, &block)
13
- source_file = file
14
- iife_file = File.join(File.dirname(source_file), "#{File.basename(source_file, '.*')}-iife.js.erb")
15
- File.readable?(iife_file) ? ERB.new(File.read(iife_file)).result(binding) : data
16
- end
17
-
18
- alias source data
19
- end
20
- end