pug-rails 2.0.1 → 2.0.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d2ee6cfa5cb0f403f9915684482372246d0b3738
4
- data.tar.gz: a935349991032d68d97798221fa1671a54e4aaf9
3
+ metadata.gz: b2391f26ad0a9641784adb7a692a7bc057d42db3
4
+ data.tar.gz: 3b8529acc4f579511a7371662b0f43d41475c822
5
5
  SHA512:
6
- metadata.gz: a0fcdd3ca76839df19092eae04f27aca116cfeb21648cddc4e5f8000de14fc83c923c71de86060b68be871f3f523082de484341f38799643e5c9bf50a933dd29
7
- data.tar.gz: a2f2f9025ccc701f2af8e2d8264a91e0e62ec61e74648b498bf77854e31d028867184ee2a3dbdbf2c17dfc5aafeaca20892dcbe443e8cc2447e338c8891ad103
6
+ metadata.gz: 62bc6d6bd5882c022a7d2501f3325220b59e0f23c4881a6a57f0572d5d93f74197eb7eaa48149496082e32cfb8be443d2b0340e35e5c1413433ebc11a32f6925
7
+ data.tar.gz: a4226d6e29f3da4212c6b6821a05e1057757528c45997ca071c02d992ca2307e1b9f5f1929faa909e9e133a749d168b201ff32687852d8bde38aa2365bdb7ddf
@@ -5,12 +5,29 @@ module Jade
5
5
  config.jade.pretty = Rails.env.development?
6
6
  config.jade.compile_debug = Rails.env.development?
7
7
 
8
- config.before_initialize do |app|
9
- register_template = -> (env) { (env || app.assets).register_engine('.jade', Jade::Template) }
10
- if app.config.assets.respond_to?(:configure)
11
- app.config.assets.configure { |env| register_template.call(env) }
8
+ def configure_assets(app)
9
+ if config.respond_to?(:assets) && config.assets.respond_to?(:configure)
10
+ # Rails 4.x
11
+ config.assets.configure { |env| yield(env) }
12
12
  else
13
- register_template.call(nil)
13
+ # Rails 3.2
14
+ yield(app.assets)
15
+ end
16
+ end
17
+
18
+ initializer 'sprockets.jade', group: :all, after: 'sprockets.environment' do |app|
19
+ configure_assets(app) do |env|
20
+ # Sprockets 2, 3, and 4
21
+ if env.respond_to?(:register_transformer)
22
+ env.register_mime_type 'text/x-jade', extensions: ['.jade']
23
+ env.register_transformer 'text/x-jade', 'application/javascript', Jade::SprocketsTransformer
24
+ end
25
+
26
+ if env.respond_to?(:register_engine)
27
+ args = ['.jade', Jade::SprocketsTransformer]
28
+ args << { mime_type: 'text/x-jade', silence_deprecation: true } if Sprockets::VERSION.start_with?('3')
29
+ env.register_engine(*args)
30
+ end
14
31
  end
15
32
  end
16
33
  end
@@ -1,12 +1,28 @@
1
1
  # frozen_string_literal: true
2
- require 'tilt'
3
2
  module Jade
4
- class Template < Tilt::Template
5
- def prepare
3
+ # Sprockets 2, 3 & 4 interface
4
+ # https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#registering-all-versions-of-sprockets-in-processors
5
+ class SprocketsTransformer
6
+ def initialize(filename, &block)
7
+ @filename = filename
8
+ @source = block.call
6
9
  end
7
10
 
8
- def evaluate(context, locals, &block)
9
- Jade.compile(data, filename: file, client: true)
11
+ def render(context, empty_hash_wtf)
12
+ self.class.run(@filename, @source, context)
13
+ end
14
+
15
+ def self.run(filename, source, context)
16
+ Jade.compile(source, filename: filename, client: true)
17
+ end
18
+
19
+ def self.call(input)
20
+ filename = input[:filename]
21
+ source = input[:data]
22
+ context = input[:environment].context_class.new(input)
23
+
24
+ result = run(filename, source, context)
25
+ context.metadata.merge(data: result)
10
26
  end
11
27
  end
12
28
  end
@@ -5,12 +5,29 @@ module Pug
5
5
  config.pug.pretty = Rails.env.development?
6
6
  config.pug.compile_debug = Rails.env.development?
7
7
 
8
- config.before_initialize do |app|
9
- register_template = -> (env) { (env || app.assets).register_engine('.pug', Pug::Template) }
10
- if app.config.assets.respond_to?(:configure)
11
- app.config.assets.configure { |env| register_template.call(env) }
8
+ def configure_assets(app)
9
+ if config.respond_to?(:assets) && config.assets.respond_to?(:configure)
10
+ # Rails 4.x
11
+ config.assets.configure { |env| yield(env) }
12
12
  else
13
- register_template.call(nil)
13
+ # Rails 3.2
14
+ yield(app.assets)
15
+ end
16
+ end
17
+
18
+ initializer 'sprockets.pug', group: :all, after: 'sprockets.environment' do |app|
19
+ configure_assets(app) do |env|
20
+ # Sprockets 2, 3, and 4
21
+ if env.respond_to?(:register_transformer)
22
+ env.register_mime_type 'text/x-pug', extensions: ['.pug']
23
+ env.register_transformer 'text/x-pug', 'application/javascript+function', Pug::SprocketsTransformer
24
+ end
25
+
26
+ if env.respond_to?(:register_engine)
27
+ args = ['.pug', Pug::SprocketsTransformer]
28
+ args << { mime_type: 'text/x-pug', silence_deprecation: true } if Sprockets::VERSION.start_with?('3')
29
+ env.register_engine(*args)
30
+ end
14
31
  end
15
32
  end
16
33
  end
@@ -1,12 +1,28 @@
1
1
  # frozen_string_literal: true
2
- require 'tilt'
3
2
  module Pug
4
- class Template < Tilt::Template
5
- def prepare
3
+ # Sprockets 2, 3 & 4 interface
4
+ # https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#registering-all-versions-of-sprockets-in-processors
5
+ class SprocketsTransformer
6
+ def initialize(filename, &block)
7
+ @filename = filename
8
+ @source = block.call
6
9
  end
7
10
 
8
- def evaluate(context, locals, &block)
9
- Pug.compile(data, filename: file, client: true)
11
+ def render(context, empty_hash_wtf)
12
+ self.class.run(@filename, @source, context)
13
+ end
14
+
15
+ def self.run(filename, source, context)
16
+ Pug.compile(source, filename: filename, client: true)
17
+ end
18
+
19
+ def self.call(input)
20
+ filename = input[:filename]
21
+ source = input[:data]
22
+ context = input[:environment].context_class.new(input)
23
+
24
+ result = run(filename, source, context)
25
+ context.metadata.merge(data: result)
10
26
  end
11
27
  end
12
28
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  Gem::Specification.new do |s|
3
3
  s.name = 'pug-rails'
4
- s.version = '2.0.1'
4
+ s.version = '2.0.2'
5
5
  s.author = 'Yaroslav Konoplov'
6
6
  s.email = 'eahome00@gmail.com'
7
7
  s.summary = 'Pug/Jade template engine integration with Rails asset pipeline.'
@@ -15,5 +15,4 @@ Gem::Specification.new do |s|
15
15
  s.require_paths = ['lib']
16
16
 
17
17
  s.add_dependency 'pug-ruby', '~> 1.0'
18
- s.add_dependency 'tilt', '~> 2.0'
19
18
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pug-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
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-09-18 00:00:00.000000000 Z
11
+ date: 2016-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pug-ruby
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.0'
27
- - !ruby/object:Gem::Dependency
28
- name: tilt
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '2.0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '2.0'
41
27
  description: Pug/Jade template engine integration with Rails asset pipeline.
42
28
  email: eahome00@gmail.com
43
29
  executables: []