jade-rails 1.11.0.0 → 1.11.0.1
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 +4 -4
- data/README.md +1 -1
- data/integration-tests/Gemfile +5 -0
- data/integration-tests/fixtures/amazing_template.jst.jade +4 -0
- data/integration-tests/fixtures/index.html.erb +7 -0
- data/integration-tests/fixtures/routes.rb +3 -0
- data/integration-tests/fixtures/test_controller.rb +4 -0
- data/integration-tests/run-tests.sh +153 -0
- data/jade-rails.gemspec +2 -2
- data/lib/jade-rails.rb +1 -24
- data/lib/jade/rails.rb +10 -0
- data/lib/jade/rails/compiler.rb +26 -0
- data/lib/jade/rails/engine.rb +35 -0
- data/lib/jade/rails/processor.rb +27 -0
- data/lib/jade/rails/template.rb +36 -0
- data/lib/jade/rails/version.rb +5 -0
- metadata +26 -17
- data/lib/jade/railtie.rb +0 -25
- data/lib/jade/template.rb +0 -49
- data/lib/jade/version.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5daf720219cde3a9acc61c884bdb8c36c945b7d1
|
4
|
+
data.tar.gz: 0a846c24ab2f425032e18dd23715db7f168400c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fbff9f116362d01341ed86b535417cee43a2490ae59cb0b2bc186df48c8d91e5353cc7c721366418e21ec5f60b8bb1425a61759527b133a2fd483154196a8419
|
7
|
+
data.tar.gz: b13772c010acbae87dc7ef609be6ad3e1a15734739b55b01064809d78d2e3f875dcf8ee2d72f40e7980fd8cd4febf80c96749c96fbefeefd0b1a317ac70d3d7b
|
data/README.md
CHANGED
@@ -11,7 +11,7 @@ to render Jade templates anywhere on the front end of your Rails app.
|
|
11
11
|
Add to your Gemfile:
|
12
12
|
|
13
13
|
```ruby
|
14
|
-
gem 'jade-rails', '~> 1.11.0.
|
14
|
+
gem 'jade-rails', '~> 1.11.0.1'
|
15
15
|
```
|
16
16
|
|
17
17
|
In your `application.js`, require the Jade runtime before any files that include
|
@@ -0,0 +1,153 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
#
|
3
|
+
# This script runs "integration tests" for the jade-rails gem.
|
4
|
+
# For each Rails version we'd like to confirm compatibility with, the script will:
|
5
|
+
# 1. Instantiate a new Rails app.
|
6
|
+
# 2. Add the jade-rails gem to the app.
|
7
|
+
# 3. Set up a basic controller and view.
|
8
|
+
# 4. Add a simple Jade template, and set up the view to render it.
|
9
|
+
# 5. Assert that the Jade template is correctly compiled. Specifically:
|
10
|
+
# 5.1. In development, assert that the Jade template correctly compiles to a JS file.
|
11
|
+
# 5.2. In production, assert that:
|
12
|
+
# - the application.js file compiles
|
13
|
+
# - the application.js file contains the Jade template JS
|
14
|
+
#
|
15
|
+
# ASSUMPTIONS:
|
16
|
+
# - This script is running on OS X. (The sed syntax is specific to OS X.)
|
17
|
+
# - The bundler gem is globally available.
|
18
|
+
# - rbenv is being used to manage Ruby versions.
|
19
|
+
#---------------------------------------------------------------------------------------------------
|
20
|
+
set -e
|
21
|
+
set -o pipefail
|
22
|
+
|
23
|
+
# This is a utility function to fail-fast if an assertion fails.
|
24
|
+
# It takes 1 argument which is the text of the error itself.
|
25
|
+
raise () {
|
26
|
+
echo
|
27
|
+
echo "ERROR"
|
28
|
+
echo $1
|
29
|
+
echo
|
30
|
+
exit 1
|
31
|
+
}
|
32
|
+
|
33
|
+
# To simplify all the other references to files and paths, force this script to only run from inside
|
34
|
+
# the integration-tests directory itself.
|
35
|
+
current_directory=$(pwd)
|
36
|
+
if [[ $current_directory != *"integration-tests" ]]; then
|
37
|
+
raise "This script must be run from inside the integration-tests directory."
|
38
|
+
fi
|
39
|
+
|
40
|
+
# Test against the currently-supported Rails versions.
|
41
|
+
# See: http://guides.rubyonrails.org/maintenance_policy.html
|
42
|
+
rails_versions=(4.1.15 4.2.6)
|
43
|
+
# rails_versions=(4.1.15)
|
44
|
+
dev_server_port=30000
|
45
|
+
for rails_version in ${rails_versions[@]}; do
|
46
|
+
echo
|
47
|
+
echo "Beginning integration test for Rails v${rails_version}..."
|
48
|
+
echo
|
49
|
+
|
50
|
+
# Set up the version of Rails we're testing against.
|
51
|
+
sed -i '' "5 s/.*/gem 'rails', '${rails_version}'/" ./Gemfile
|
52
|
+
bundle install
|
53
|
+
rbenv rehash
|
54
|
+
installed_rails_version=$(bundle exec rails -v)
|
55
|
+
if [[ $installed_rails_version != "Rails ${rails_version}" ]]; then
|
56
|
+
raise "Failed to correctly install Rails version ${rails_version}."
|
57
|
+
fi
|
58
|
+
|
59
|
+
# Instantiate a new Rails app using that version.
|
60
|
+
app_name="test-${rails_version}"
|
61
|
+
bundle exec rails new ${app_name}
|
62
|
+
|
63
|
+
# Inside this Rails app, set up the jade-rails gem.
|
64
|
+
# (1) Add it to the Gemfile.
|
65
|
+
sed -i '' "$ a\\
|
66
|
+
gem 'jade-rails', :path => '../../'
|
67
|
+
" ./${app_name}/Gemfile
|
68
|
+
# (2) Run `bundle install` for the Rails app.
|
69
|
+
cd ${app_name}
|
70
|
+
bundle install
|
71
|
+
# (3) Add the jade-runtime to the application.js.
|
72
|
+
sed -i '' "/require_tree/ i\\
|
73
|
+
//= require jade/runtime
|
74
|
+
" ./app/assets/javascripts/application.js
|
75
|
+
|
76
|
+
# Now set up a simple Jade template, along with the controller, view, and route to render it.
|
77
|
+
# These files look exactly the same regardless of Rails version or app name.
|
78
|
+
cp ../fixtures/amazing_template.jst.jade ./app/assets/javascripts/
|
79
|
+
cp ../fixtures/test_controller.rb ./app/controllers/
|
80
|
+
mkdir ./app/views/test
|
81
|
+
cp ../fixtures/index.html.erb ./app/views/test/
|
82
|
+
cp ../fixtures/routes.rb ./config/routes.rb
|
83
|
+
|
84
|
+
# Now that we have a barebones Rails app set up with the gem and a Jade
|
85
|
+
# template, we test to ensure the template compiles and renders properly, in
|
86
|
+
# both dev and production. We also want to test the ability to set the
|
87
|
+
# config.jade flags in the app code. So, specifically, the test plan is:
|
88
|
+
#
|
89
|
+
# 1. Test production assets.
|
90
|
+
# - Compile assets for production.
|
91
|
+
# - Confirm that the compiled application.js contains a Jade template ready to use.
|
92
|
+
# - Confirm that the compiled application.js does not have Jade code
|
93
|
+
# compiled with compileDebug (because this should be disabled by the
|
94
|
+
# default configuration for this gem). See lib/jade/rails/engine.rb.
|
95
|
+
# 2. Test development assets.
|
96
|
+
# - Start a Rails dev server and request the application.js compiled on the fly for dev.
|
97
|
+
# - Confirm that the application.js served in development has the Jade template ready to use.
|
98
|
+
# - Confirm that the template was compiled with compileDebug turned on.
|
99
|
+
# 3. Test app-level configuration.
|
100
|
+
# - Set config.jade.compile_debug to true in config/environments/production.rb.
|
101
|
+
# - Recompile assets for production.
|
102
|
+
# - Confirm that the compiled application.js has debugging code inside the Jade template.
|
103
|
+
#
|
104
|
+
# (Note that, by default, our test code also requires all commands to execute
|
105
|
+
# successfully, because of the settings at the top of this script.)
|
106
|
+
|
107
|
+
# These are the strings we'll check for to indicate whether or not
|
108
|
+
# compileDebug was used when compiling the Jade template.
|
109
|
+
compile_debug_off_string="this.JST.amazing_template=function(){var e=[];return e.push('<h1>Jade: A Template Engine</h1>"
|
110
|
+
compile_debug_on_string="unshift(new jade.DebugItem("
|
111
|
+
|
112
|
+
# 1. Test production assets.
|
113
|
+
RAILS_ENV=production bundle exec rake assets:precompile
|
114
|
+
production_compiled_js=$(cat public/assets/application-*.js)
|
115
|
+
if [[ $production_compiled_js != *"$compile_debug_off_string"* ]]; then
|
116
|
+
raise "Precompiled application.js did not have expected production-ready Jade template code."
|
117
|
+
fi
|
118
|
+
if [[ $production_compiled_js == *"$compile_debug_on_string"* ]]; then
|
119
|
+
raise "Precompiled application.js contained debugging code inside Jade template."
|
120
|
+
fi
|
121
|
+
|
122
|
+
# 2. Test development assets.
|
123
|
+
# Start up a server, request the compiled asset for the Jade template, and check its contents.
|
124
|
+
# bundle exec rails s -p ${dev_server_port} > /dev/null 2>&1 &
|
125
|
+
bundle exec rails s -p ${dev_server_port} &
|
126
|
+
sleep 5 # Give the dev server time to boot.
|
127
|
+
dev_compiled_js=$(curl localhost:${dev_server_port}/assets/application.js)
|
128
|
+
if [[ $dev_compiled_js != *"$compile_debug_on_string"* ]]; then
|
129
|
+
raise "Development application.js did not contain debugging code inside Jade template."
|
130
|
+
fi
|
131
|
+
# Clean up the backgrounded dev server.
|
132
|
+
kill %%
|
133
|
+
|
134
|
+
# 3. Test app-level configuration.
|
135
|
+
sed -i '' "/Rails.application.configure do/ a\\
|
136
|
+
config.jade.compile_debug = true
|
137
|
+
" ./config/environments/production.rb
|
138
|
+
rm -r tmp/
|
139
|
+
rm -r public/assets
|
140
|
+
RAILS_ENV=production bundle exec rake assets:precompile
|
141
|
+
production_compiled_js=$(cat public/assets/application-*.js)
|
142
|
+
if [[ $production_compiled_js != *"$compile_debug_on_string"* ]]; then
|
143
|
+
raise "Precompiled application.js with compileDebug true did not contain debugging code inside Jade template."
|
144
|
+
fi
|
145
|
+
|
146
|
+
# Clean out the instantiated Rails app.
|
147
|
+
cd ..
|
148
|
+
rm -r ${app_name}
|
149
|
+
|
150
|
+
echo
|
151
|
+
echo "Successfully completed integration test for Rails v${rails_version}."
|
152
|
+
echo
|
153
|
+
done
|
data/jade-rails.gemspec
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
lib = File.expand_path('../lib', __FILE__)
|
2
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
|
-
require 'jade/version'
|
3
|
+
require 'jade/rails/version'
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = 'jade-rails'
|
7
|
-
spec.version = Jade::VERSION
|
7
|
+
spec.version = Jade::Rails::VERSION
|
8
8
|
spec.author = 'Paul Raythattha'
|
9
9
|
spec.email = 'paul@appfactories.com'
|
10
10
|
spec.summary = %q{Jade adapter for the Rails asset pipeline.}
|
data/lib/jade-rails.rb
CHANGED
@@ -1,25 +1,2 @@
|
|
1
1
|
# Jade Template Compiler for Ruby
|
2
|
-
|
3
|
-
require 'json'
|
4
|
-
require 'execjs'
|
5
|
-
|
6
|
-
module Jade
|
7
|
-
class << self
|
8
|
-
|
9
|
-
def compile(source, options = {})
|
10
|
-
@@context ||= begin
|
11
|
-
jade_js = File.read(File.expand_path('../../vendor/assets/javascripts/jade/jade.js', __FILE__))
|
12
|
-
ExecJS.compile <<-JS
|
13
|
-
var window = {};
|
14
|
-
#{jade_js}
|
15
|
-
var jade = window.jade;
|
16
|
-
JS
|
17
|
-
end
|
18
|
-
source = source.read if source.respond_to?(:read)
|
19
|
-
@@context.eval("jade.compileClient(#{source.to_json}, #{options.to_json})")
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
require 'jade/railtie' if defined?(Rails)
|
2
|
+
require 'jade/rails'
|
data/lib/jade/rails.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
module Jade
|
2
|
+
module Rails
|
3
|
+
class Compiler
|
4
|
+
def self.compile(source, options = {})
|
5
|
+
@@context ||= begin
|
6
|
+
jade_js = File.read(File.expand_path('../../../../vendor/assets/javascripts/jade/jade.js', __FILE__))
|
7
|
+
ExecJS.compile <<-JS
|
8
|
+
var window = {};
|
9
|
+
#{jade_js}
|
10
|
+
var jade = window.jade;
|
11
|
+
JS
|
12
|
+
end
|
13
|
+
|
14
|
+
# Get the compilation options from the application's config.jade.
|
15
|
+
# See lib/jade/rails/engine.rb for details.
|
16
|
+
options = ::Rails.application.config.jade.merge(options)
|
17
|
+
# For one of the options keys, we need to manually camel-case before
|
18
|
+
# passing to the Jade compiler.
|
19
|
+
options[:compileDebug] = options.delete(:compile_debug) { false }
|
20
|
+
|
21
|
+
source = source.read if source.respond_to?(:read)
|
22
|
+
compiled = @@context.eval("jade.compileClient(#{source.to_json}, #{options.to_json})")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Jade
|
2
|
+
module Rails
|
3
|
+
class Engine < ::Rails::Engine
|
4
|
+
|
5
|
+
config.jade = ActiveSupport::OrderedOptions.new
|
6
|
+
|
7
|
+
# Set default values. See README for details.
|
8
|
+
config.jade.pretty = ::Rails.env.development?
|
9
|
+
config.jade.self = false
|
10
|
+
config.jade.compile_debug = ::Rails.env.development?
|
11
|
+
config.jade.globals = []
|
12
|
+
|
13
|
+
initializer 'jade.assets.register', :group => :all do |app|
|
14
|
+
config.assets.configure do |env|
|
15
|
+
env.register_mime_type 'text/x-jade-template', :extensions => ['.jade', '.jst.jade']
|
16
|
+
if env.respond_to?(:register_transformer)
|
17
|
+
# Sprockets 3 introduces the idea of "transformers," which is
|
18
|
+
# exactly what we want here. Note that this transformer class
|
19
|
+
# should also be compatible with Sprockets 4. For details, see:
|
20
|
+
# https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md
|
21
|
+
env.register_transformer 'text/x-jade-template', 'application/javascript', Jade::Rails::Processor
|
22
|
+
else
|
23
|
+
# If it's not possible to register a transformer, we must be in
|
24
|
+
# Sprockets 2. In this case, we'll continue with the old way of
|
25
|
+
# using a Tilt template. Later, when we decide to drop support for
|
26
|
+
# Sprockets 2, it should be a simple matter of just deleting this
|
27
|
+
# clause and the lib/jade/rails/template.rb file.
|
28
|
+
app.assets.register_engine '.jade', ::Jade::Rails::Template
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Jade
|
2
|
+
module Rails
|
3
|
+
class Processor
|
4
|
+
|
5
|
+
def initialize(filename, &block)
|
6
|
+
@filename = filename
|
7
|
+
@source = block.call
|
8
|
+
end
|
9
|
+
|
10
|
+
def render(variable, empty_hash)
|
11
|
+
self.class.run(@filename, @source)
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.call(input)
|
15
|
+
# Compile the Jade template into a JS template function.
|
16
|
+
source = input[:data]
|
17
|
+
filename = input[:filename]
|
18
|
+
compiled = Compiler.compile(source, { :filename => filename })
|
19
|
+
|
20
|
+
# Then use the JST processor to add the template to the window.JST object.
|
21
|
+
input[:data] = compiled
|
22
|
+
return ::Sprockets::JstProcessor.call(input)
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'tilt'
|
2
|
+
|
3
|
+
module Jade
|
4
|
+
module Rails
|
5
|
+
class Template < Tilt::Template
|
6
|
+
def self.engine_initialized?
|
7
|
+
true
|
8
|
+
end
|
9
|
+
|
10
|
+
def initialize_engine
|
11
|
+
end
|
12
|
+
|
13
|
+
def prepare
|
14
|
+
end
|
15
|
+
|
16
|
+
# Compile template data using Jade compiler.
|
17
|
+
#
|
18
|
+
# This returns a String containing a JS function, which is intended
|
19
|
+
# to be used with the Sprockets JST engine. Name your file so that
|
20
|
+
# it is processed by both of these engines, and then the template
|
21
|
+
# will be available on the JST global on the front end.
|
22
|
+
#
|
23
|
+
# For example, `my_template.jst.jade` will be available on the front
|
24
|
+
# end as JST['my_template'], which is a function that takes a single
|
25
|
+
# argument containing the locals to use in rendering the template:
|
26
|
+
#
|
27
|
+
# # => function template(locals) { ... }
|
28
|
+
#
|
29
|
+
def evaluate(context, locals, &block)
|
30
|
+
options = { }
|
31
|
+
options[:filename] = eval_file
|
32
|
+
Compiler.compile(data, options)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jade-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.11.0.
|
4
|
+
version: 1.11.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Raythattha
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-06-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: execjs
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: tilt
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.7'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.7'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '10.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '10.0'
|
69
69
|
description: Jade adapter for the Rails asset pipeline.
|
@@ -72,16 +72,25 @@ executables: []
|
|
72
72
|
extensions: []
|
73
73
|
extra_rdoc_files: []
|
74
74
|
files:
|
75
|
-
- .gitignore
|
75
|
+
- ".gitignore"
|
76
76
|
- Gemfile
|
77
77
|
- LICENSE
|
78
78
|
- README.md
|
79
79
|
- Rakefile
|
80
|
+
- integration-tests/Gemfile
|
81
|
+
- integration-tests/fixtures/amazing_template.jst.jade
|
82
|
+
- integration-tests/fixtures/index.html.erb
|
83
|
+
- integration-tests/fixtures/routes.rb
|
84
|
+
- integration-tests/fixtures/test_controller.rb
|
85
|
+
- integration-tests/run-tests.sh
|
80
86
|
- jade-rails.gemspec
|
81
87
|
- lib/jade-rails.rb
|
82
|
-
- lib/jade/
|
83
|
-
- lib/jade/
|
84
|
-
- lib/jade/
|
88
|
+
- lib/jade/rails.rb
|
89
|
+
- lib/jade/rails/compiler.rb
|
90
|
+
- lib/jade/rails/engine.rb
|
91
|
+
- lib/jade/rails/processor.rb
|
92
|
+
- lib/jade/rails/template.rb
|
93
|
+
- lib/jade/rails/version.rb
|
85
94
|
- test/test_jade-rails.rb
|
86
95
|
- vendor/assets/javascripts/jade/LICENSE
|
87
96
|
- vendor/assets/javascripts/jade/jade.js
|
@@ -97,17 +106,17 @@ require_paths:
|
|
97
106
|
- lib
|
98
107
|
required_ruby_version: !ruby/object:Gem::Requirement
|
99
108
|
requirements:
|
100
|
-
- -
|
109
|
+
- - ">="
|
101
110
|
- !ruby/object:Gem::Version
|
102
111
|
version: '0'
|
103
112
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
113
|
requirements:
|
105
|
-
- -
|
114
|
+
- - ">="
|
106
115
|
- !ruby/object:Gem::Version
|
107
116
|
version: '0'
|
108
117
|
requirements: []
|
109
118
|
rubyforge_project:
|
110
|
-
rubygems_version: 2.
|
119
|
+
rubygems_version: 2.5.1
|
111
120
|
signing_key:
|
112
121
|
specification_version: 4
|
113
122
|
summary: Jade adapter for the Rails asset pipeline.
|
data/lib/jade/railtie.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
require 'jade/template'
|
2
|
-
|
3
|
-
module Jade
|
4
|
-
class Railtie < Rails::Engine
|
5
|
-
module JadeContext
|
6
|
-
attr_accessor :jade_config
|
7
|
-
end
|
8
|
-
|
9
|
-
config.jade = ActiveSupport::OrderedOptions.new
|
10
|
-
|
11
|
-
config.jade.pretty = Rails.env.development?
|
12
|
-
config.jade.self = false
|
13
|
-
config.jade.compile_debug = Rails.env.development?
|
14
|
-
config.jade.globals = []
|
15
|
-
|
16
|
-
initializer :setup_jade, after: 'sprockets.environment', group: :all do |app|
|
17
|
-
if app.assets
|
18
|
-
app.assets.register_engine '.jade', ::Jade::Template
|
19
|
-
|
20
|
-
app.assets.context_class.extend(JadeContext)
|
21
|
-
app.assets.context_class.jade_config = app.config.jade
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
data/lib/jade/template.rb
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
require 'tilt'
|
2
|
-
|
3
|
-
module Jade
|
4
|
-
class Template < Tilt::Template
|
5
|
-
|
6
|
-
def self.engine_initialized?
|
7
|
-
defined? ::Jade
|
8
|
-
end
|
9
|
-
|
10
|
-
def initialize_engine
|
11
|
-
require_template_library 'jade'
|
12
|
-
end
|
13
|
-
|
14
|
-
def prepare
|
15
|
-
end
|
16
|
-
|
17
|
-
# Compile template data using Jade compiler.
|
18
|
-
#
|
19
|
-
# This returns a String containing a JS function, which is intended
|
20
|
-
# to be used with the Sprockets JST engine. Name your file so that
|
21
|
-
# it is processed by both of these engines, and then the template
|
22
|
-
# will be available on the JST global on the front end.
|
23
|
-
#
|
24
|
-
# For example, `my_template.jst.jade` will be available on the front
|
25
|
-
# end as JST['my_template'], which is a function that takes a single
|
26
|
-
# argument containing the locals to use in rendering the template:
|
27
|
-
#
|
28
|
-
# # => function template(locals) { ... }
|
29
|
-
#
|
30
|
-
def evaluate(context, locals, &block)
|
31
|
-
options = { }
|
32
|
-
options[:filename] = eval_file
|
33
|
-
|
34
|
-
# For Rails 4.0.x and 4.1.x, the app-level config is on context.environment.
|
35
|
-
# For Rails 4.2.x, it's on context.assets instead.
|
36
|
-
app_level_config = context.environment.context_class.jade_config
|
37
|
-
if app_level_config.nil?
|
38
|
-
app_level_config = context.assets.context_class.jade_config
|
39
|
-
end
|
40
|
-
jade_config = app_level_config.merge(options)
|
41
|
-
|
42
|
-
# Manually camelize the one option key that needs to be camelized.
|
43
|
-
jade_config[:compileDebug] = jade_config.delete(:compile_debug) { false }
|
44
|
-
|
45
|
-
Jade.compile(data, jade_config)
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
49
|
-
end
|
data/lib/jade/version.rb
DELETED