pug-ruby 1.0.2 → 2.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/.rubocop.yml +81 -0
  4. data/.travis.yml +17 -8
  5. data/.yardopts +4 -0
  6. data/Gemfile +3 -3
  7. data/Gemfile.lock +32 -0
  8. data/LICENSE +21 -0
  9. data/README.md +256 -24
  10. data/Rakefile +74 -8
  11. data/lib/jade-pug/base.rb +178 -0
  12. data/lib/jade-pug/compiler.rb +166 -0
  13. data/lib/jade-pug/config.rb +60 -0
  14. data/lib/jade-pug/errors/compilation-error.rb +14 -0
  15. data/lib/jade-pug/errors/compiler-error.rb +13 -0
  16. data/lib/jade-pug/shipped-compiler.rb +80 -0
  17. data/lib/jade-pug/system-compiler.rb +139 -0
  18. data/lib/jade-ruby/compilation-essentials.rb +24 -0
  19. data/lib/jade-ruby/config.rb +17 -44
  20. data/lib/jade-ruby/errors/compilation-error.rb +14 -0
  21. data/lib/jade-ruby/errors/compiler-error.rb +13 -0
  22. data/lib/jade-ruby/shipped-compiler.rb +15 -0
  23. data/lib/jade-ruby/system-compiler.rb +15 -0
  24. data/lib/pug-ruby.rb +46 -5
  25. data/lib/pug-ruby/compilation-essentials.rb +29 -0
  26. data/lib/pug-ruby/config.rb +11 -37
  27. data/lib/pug-ruby/errors/compilation-error.rb +14 -0
  28. data/lib/pug-ruby/errors/compiler-error.rb +13 -0
  29. data/lib/pug-ruby/shipped-compiler.rb +15 -0
  30. data/lib/pug-ruby/system-compiler.rb +15 -0
  31. data/lib/pug-ruby/version.rb +7 -0
  32. data/package.json +11 -0
  33. data/pug-ruby.gemspec +19 -12
  34. data/support/browserify-jade-runtime.js +19 -0
  35. data/support/browserify-jade.js +17 -0
  36. data/support/browserify-pug-runtime.js +19 -0
  37. data/support/browserify-pug.js +23 -0
  38. data/support/minify-jade.js +11 -0
  39. data/support/minify-pug.js +11 -0
  40. data/test/helper.rb +202 -0
  41. data/test/jade/includes/includes/footer.jade +1 -1
  42. data/test/manual.html +21 -0
  43. data/test/manual.rb +25 -0
  44. data/test/pug/includes/includes/footer.pug +1 -1
  45. data/test/pug/index.pug +3 -3
  46. data/test/test-jade.rb +3 -67
  47. data/test/test-pug.rb +3 -67
  48. data/vendor/jade-1.0.0.min.js +1 -0
  49. data/vendor/jade-1.0.1.min.js +1 -0
  50. data/vendor/jade-1.0.2.min.js +1 -0
  51. data/vendor/jade-1.1.0.min.js +1 -0
  52. data/vendor/jade-1.1.1.min.js +1 -0
  53. data/vendor/jade-1.1.2.min.js +1 -0
  54. data/vendor/jade-1.1.3.min.js +1 -0
  55. data/vendor/jade-1.1.4.min.js +1 -0
  56. data/vendor/jade-1.1.5.min.js +1 -0
  57. data/vendor/jade-1.10.0.min.js +1 -0
  58. data/vendor/jade-1.11.0.min.js +1 -0
  59. data/vendor/jade-1.2.0.min.js +1 -0
  60. data/vendor/jade-1.3.0.min.js +1 -0
  61. data/vendor/jade-1.3.1.min.js +1 -0
  62. data/vendor/jade-1.4.0.min.js +1 -0
  63. data/vendor/jade-1.4.1.min.js +1 -0
  64. data/vendor/jade-1.4.2.min.js +1 -0
  65. data/vendor/jade-1.5.0.min.js +1 -0
  66. data/vendor/jade-1.6.0.min.js +1 -0
  67. data/vendor/jade-1.7.0.min.js +1 -0
  68. data/vendor/jade-1.8.0.min.js +1 -0
  69. data/vendor/jade-1.8.1.min.js +1 -0
  70. data/vendor/jade-1.8.2.min.js +1 -0
  71. data/vendor/jade-1.9.0.min.js +1 -0
  72. data/vendor/jade-1.9.1.min.js +1 -0
  73. data/vendor/jade-1.9.2.min.js +1 -0
  74. data/vendor/jade-runtime-1.0.0-license +22 -0
  75. data/vendor/jade-runtime-1.0.0.js +199 -0
  76. data/vendor/jade-runtime-1.0.1-license +22 -0
  77. data/vendor/jade-runtime-1.0.1.js +199 -0
  78. data/vendor/jade-runtime-1.0.2-license +22 -0
  79. data/vendor/jade-runtime-1.0.2.js +199 -0
  80. data/vendor/jade-runtime-1.1.0-license +22 -0
  81. data/vendor/jade-runtime-1.1.0.js +199 -0
  82. data/vendor/jade-runtime-1.1.1-license +22 -0
  83. data/vendor/jade-runtime-1.1.1.js +199 -0
  84. data/vendor/jade-runtime-1.1.2-license +22 -0
  85. data/vendor/jade-runtime-1.1.2.js +200 -0
  86. data/vendor/jade-runtime-1.1.3-license +22 -0
  87. data/vendor/jade-runtime-1.1.3.js +200 -0
  88. data/vendor/jade-runtime-1.1.4-license +22 -0
  89. data/vendor/jade-runtime-1.1.4.js +200 -0
  90. data/vendor/jade-runtime-1.1.5-license +22 -0
  91. data/vendor/jade-runtime-1.1.5.js +200 -0
  92. data/vendor/jade-runtime-1.10.0-license +22 -0
  93. data/vendor/jade-runtime-1.10.0.js +233 -0
  94. data/vendor/jade-runtime-1.11.0-license +22 -0
  95. data/vendor/jade-runtime-1.11.0.js +246 -0
  96. data/vendor/jade-runtime-1.2.0-license +22 -0
  97. data/vendor/jade-runtime-1.2.0.js +200 -0
  98. data/vendor/jade-runtime-1.3.0-license +22 -0
  99. data/vendor/jade-runtime-1.3.0.js +200 -0
  100. data/vendor/jade-runtime-1.3.1-license +22 -0
  101. data/vendor/jade-runtime-1.3.1.js +200 -0
  102. data/vendor/jade-runtime-1.4.0-license +22 -0
  103. data/vendor/jade-runtime-1.4.0.js +200 -0
  104. data/vendor/jade-runtime-1.4.1-license +22 -0
  105. data/vendor/jade-runtime-1.4.1.js +200 -0
  106. data/vendor/jade-runtime-1.4.2-license +22 -0
  107. data/vendor/jade-runtime-1.4.2.js +200 -0
  108. data/vendor/jade-runtime-1.5.0-license +22 -0
  109. data/vendor/jade-runtime-1.5.0.js +200 -0
  110. data/vendor/jade-runtime-1.6.0-license +22 -0
  111. data/vendor/jade-runtime-1.6.0.js +200 -0
  112. data/vendor/jade-runtime-1.7.0-license +22 -0
  113. data/vendor/jade-runtime-1.7.0.js +200 -0
  114. data/vendor/jade-runtime-1.8.0-license +22 -0
  115. data/vendor/jade-runtime-1.8.0.js +228 -0
  116. data/vendor/jade-runtime-1.8.1-license +22 -0
  117. data/vendor/jade-runtime-1.8.1.js +228 -0
  118. data/vendor/jade-runtime-1.8.2-license +22 -0
  119. data/vendor/jade-runtime-1.8.2.js +228 -0
  120. data/vendor/jade-runtime-1.9.0-license +22 -0
  121. data/vendor/jade-runtime-1.9.0.js +228 -0
  122. data/vendor/jade-runtime-1.9.1-license +22 -0
  123. data/vendor/jade-runtime-1.9.1.js +228 -0
  124. data/vendor/jade-runtime-1.9.2-license +22 -0
  125. data/vendor/jade-runtime-1.9.2.js +228 -0
  126. data/vendor/pug-2.0.0-beta.12-license +22 -0
  127. data/vendor/pug-2.0.0-beta.12.min.js +1 -0
  128. data/vendor/pug-2.0.0-beta1-license +22 -0
  129. data/vendor/pug-2.0.0-beta1.min.js +1 -0
  130. data/vendor/pug-2.0.0-beta10-license +22 -0
  131. data/vendor/pug-2.0.0-beta10.min.js +1 -0
  132. data/vendor/pug-2.0.0-beta11-license +22 -0
  133. data/vendor/pug-2.0.0-beta11.min.js +1 -0
  134. data/vendor/pug-2.0.0-beta2-license +22 -0
  135. data/vendor/pug-2.0.0-beta2.min.js +1 -0
  136. data/vendor/pug-2.0.0-beta3-license +22 -0
  137. data/vendor/pug-2.0.0-beta3.min.js +1 -0
  138. data/vendor/pug-2.0.0-beta4-license +22 -0
  139. data/vendor/pug-2.0.0-beta4.min.js +1 -0
  140. data/vendor/pug-2.0.0-beta5-license +22 -0
  141. data/vendor/pug-2.0.0-beta5.min.js +1 -0
  142. data/vendor/pug-2.0.0-beta6-license +22 -0
  143. data/vendor/pug-2.0.0-beta6.min.js +1 -0
  144. data/vendor/pug-2.0.0-beta7-license +22 -0
  145. data/vendor/pug-2.0.0-beta7.min.js +1 -0
  146. data/vendor/pug-2.0.0-beta8-license +22 -0
  147. data/vendor/pug-2.0.0-beta8.min.js +1 -0
  148. data/vendor/pug-2.0.0-beta9-license +22 -0
  149. data/vendor/pug-2.0.0-beta9.min.js +1 -0
  150. data/vendor/pug-2.0.0-rc.1-license +22 -0
  151. data/vendor/pug-2.0.0-rc.1.min.js +1 -0
  152. data/vendor/pug-2.0.0-rc.2-license +22 -0
  153. data/vendor/pug-2.0.0-rc.2.min.js +1 -0
  154. data/vendor/pug-2.0.0-rc.3-license +22 -0
  155. data/vendor/pug-2.0.0-rc.3.min.js +1 -0
  156. data/vendor/pug-runtime-2.0.0-license +19 -0
  157. data/vendor/pug-runtime-2.0.0.js +266 -0
  158. data/vendor/pug-runtime-2.0.1-license +19 -0
  159. data/vendor/pug-runtime-2.0.1.js +266 -0
  160. data/vendor/pug-runtime-2.0.2-license +19 -0
  161. data/vendor/pug-runtime-2.0.2.js +267 -0
  162. metadata +242 -13
  163. data/lib/jade-ruby/compile.rb +0 -79
  164. data/lib/pug-ruby/compile.rb +0 -88
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 51f257cb6fe31e9b1a23d17a012ae428530c963f
4
- data.tar.gz: ce10856aff1c95432672b4947edb8e420ec89730
3
+ metadata.gz: 9aa23c41b83a1717528e1aa9dc496b6d0fd83c16
4
+ data.tar.gz: '0234974dc3e87481d6ef79e812af08c9250e1ab9'
5
5
  SHA512:
6
- metadata.gz: 9b9105920f6fc3dd35e6db1f1b68c5195ae92ee9dd06004242e73c93187d65531f3800e1142512ae1495d1c629cfff0e3a83e61794543e55a6a6fda64ac015b8
7
- data.tar.gz: bf5784df0a404c4dcb636894d11684dabab4fb0e8850c7ceefef6bbc7acab2f073c2ebc2b224e56c2e203d3350ad3d7e72f062497580e96700994d64e5e8e9f0
6
+ metadata.gz: 40553d0204e7d973609ccaa4bf37c8bd947f0bbb25a449b9097dca7f6411777cbb581171bc7a02b0e3fef0214652991118dcaffe60df1e865e9fa05e4f7b23b1
7
+ data.tar.gz: b995486264f39ed7ad5ed275db5ac9204f97e09586b00677b93fe62123e1003ce68b1cb4864ca91200aada12f9ad19bf7400acb8a235e85951bdf1aeb2eaf3ec
data/.gitignore CHANGED
@@ -1,7 +1,9 @@
1
1
  *.gem
2
- *.lock
3
2
  .bundle
4
3
  .ruby-version
5
4
  pkg/
6
5
  tmp/
7
6
  /.idea/
7
+ /node_modules/
8
+ /.yardoc/
9
+ /doc/
@@ -0,0 +1,81 @@
1
+ Style/StringLiterals:
2
+ EnforcedStyle: double_quotes
3
+
4
+ Metrics/LineLength:
5
+ Enabled: false
6
+ Max: 110
7
+
8
+ Style/FileName:
9
+ Regex: !ruby/regexp /\A[-a-z0-9]+\z/
10
+
11
+ Layout/CaseIndentation:
12
+ EnforcedStyle: end
13
+ IndentOneStep: true
14
+
15
+ Layout/AccessModifierIndentation:
16
+ EnforcedStyle: outdent
17
+
18
+ Layout/SpaceInsideArrayPercentLiteral:
19
+ Enabled: false
20
+
21
+ Layout/EmptyLinesAroundClassBody:
22
+ Enabled: false
23
+
24
+ Style/PerlBackrefs:
25
+ Enabled: false
26
+
27
+ Bundler/OrderedGems:
28
+ Enabled: false
29
+
30
+ Metrics/BlockLength:
31
+ Enabled: false
32
+
33
+ Style/EmptyMethod:
34
+ Enabled: false
35
+
36
+ Lint/UselessAssignment:
37
+ Enabled: false
38
+
39
+ Lint/EndAlignment:
40
+ EnforcedStyleAlignWith: variable
41
+
42
+ Lint/UnusedBlockArgument:
43
+ Enabled: false
44
+
45
+ Metrics/MethodLength:
46
+ Max: 20
47
+
48
+ Layout/ExtraSpacing:
49
+ Enabled: false
50
+ AllowForAlignment: true
51
+ ForceEqualSignAlignment: true
52
+
53
+ Style/PercentLiteralDelimiters:
54
+ PreferredDelimiters:
55
+ default: '[]'
56
+ '%i': '[]'
57
+ '%': '{}'
58
+
59
+ Layout/AlignParameters:
60
+ Enabled: false
61
+
62
+ Lint/UnusedMethodArgument:
63
+ Enabled: false
64
+
65
+ Style/StringLiteralsInInterpolation:
66
+ EnforcedStyle: double_quotes
67
+
68
+ Layout/SpaceBeforeBlockBraces:
69
+ Enabled: true
70
+
71
+ Layout/SpaceInsideBlockBraces:
72
+ Enabled: true
73
+
74
+ Layout/SpaceInsideHashLiteralBraces:
75
+ Enabled: true
76
+
77
+ Style/DoubleNegation:
78
+ Enabled: false
79
+
80
+ Style/CaseEquality:
81
+ Enabled: false
@@ -1,17 +1,26 @@
1
1
  language: ruby
2
2
 
3
3
  rvm:
4
- - 2.0.0
5
- - 2.1.10
6
- - 2.2.5
7
- - 2.3.1
8
- - 2.4.0
4
+ - 2.0
5
+ - 2.1
6
+ - 2.2
7
+ - 2.3
8
+ - 2.4
9
9
 
10
10
  cache: bundler
11
11
 
12
12
  env:
13
- - RAILS_ENV=test RAKE_ENV=test
13
+ - RAKE_ENV=test BUNDLE_PATH=vendor/bundle
14
14
 
15
15
  before_install:
16
- - npm install --global jade
17
- - npm install --global pug-cli
16
+ - . $HOME/.nvm/nvm.sh
17
+ - nvm install stable
18
+ - nvm use stable
19
+ - npm install --global jade pug
20
+ - gem install bundler
21
+
22
+ install:
23
+ - bundle install
24
+
25
+ script:
26
+ - bundle exec rake test
@@ -0,0 +1,4 @@
1
+ --protected
2
+ --private
3
+ -
4
+ lib/**/*.rb
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
- # encoding: utf-8
1
+ # encoding: UTF-8
2
2
  # frozen_string_literal: true
3
3
 
4
- source 'https://rubygems.org'
4
+ source "https://rubygems.org"
5
+
5
6
  gemspec
6
- gem 'test-unit'
@@ -0,0 +1,32 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ pug-ruby (2.0.0)
5
+ execjs (~> 2.0)
6
+ memoist (~> 0.15)
7
+ method-not-implemented (~> 1.0, >= 1.0.1)
8
+ regexp-match-polyfill (~> 1.0, >= 1.0.2)
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ execjs (2.7.0)
14
+ memoist (0.16.0)
15
+ method-not-implemented (1.0.1)
16
+ power_assert (1.0.2)
17
+ rake (10.5.0)
18
+ regexp-match-polyfill (1.0.2)
19
+ test-unit (3.2.5)
20
+ power_assert
21
+
22
+ PLATFORMS
23
+ ruby
24
+
25
+ DEPENDENCIES
26
+ bundler (~> 1.7)
27
+ pug-ruby!
28
+ rake (~> 10.0)
29
+ test-unit (~> 3.1)
30
+
31
+ BUNDLED WITH
32
+ 1.15.3
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2017 Yaroslav Konoplov
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md CHANGED
@@ -1,53 +1,285 @@
1
- ## Ruby wrapper for the Pug/Jade template engine
1
+ ## Ruby wrapper for the Jade and Pug
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/pug-ruby.svg)](https://badge.fury.io/rb/pug-ruby)
4
4
  [![Build Status](https://travis-ci.org/yivo/pug-ruby.svg?branch=master)](https://travis-ci.org/yivo/pug-ruby)
5
5
 
6
+ <img width="49.710808069%" alt="jade" align="left" src="https://user-images.githubusercontent.com/7421323/29007509-4fb4e004-7b0d-11e7-9b21-6bdd98a24344.png">
7
+
8
+ <img width="48.035162854%" alt="pug" src="https://user-images.githubusercontent.com/7421323/29007510-4fcdb638-7b0d-11e7-80c7-e3c49434ca8a.png">
9
+
6
10
  ## About
7
- This gem is wrapper for Pug/Jade command line interface. You can compile both Jade templates ([version 1.x](https://github.com/pugjs/pug/tree/v1.x.x)) and Pug ([version 2.x](https://github.com/pugjs/pug)).
8
- <br>
11
+
12
+ This gem allows to invoke Jade / Pug from the Ruby code.
13
+
14
+ **You can compile both Jade and Pug:**
15
+
16
+ * supports Jade [1.x.x](https://github.com/pugjs/pug/tree/v1.x.x).
17
+ * supports Pug [2.x.x](https://github.com/pugjs/pug/tree/master).
18
+
19
+ **You can choose what compiler to use:**
20
+
21
+ * *system compiler* – compiler that is installed globally via NPM.
22
+ * *shipped compiler* – compiler that is shipped with the gem as Web version.
23
+
24
+ Available versions of shipped compilers are listed below.
25
+
26
+ **You can lock the Jade / Pug version:**
27
+
28
+ ```ruby
29
+ NEEDED_JADE_VERSION = "1.9.2"
30
+
31
+ unless Jade.compiler.version == NEEDED_JADE_VERSION
32
+ raise "Jade #{NEEDED_JADE_VERSION} needed. You have #{Jade.compiler.version}."
33
+ end
34
+ ```
35
+
36
+ **You can configure globally or per compilation:**
37
+
38
+ ```ruby
39
+ Jade.config.pretty = true
40
+ Jade.compile "div Hello, Jade!", pretty: false
41
+ ```
42
+
43
+ **You can render template or compile it to the JavaScript function:**
44
+
9
45
  ```ruby
10
- Jade.compile(source, options)
11
- Pug.compile(source, options)
46
+ Jade.compile "div=greeting", locals: { greeting: "Hello, Jade!" } # => "<div>Hello, Jade!</div>"
47
+ Jade.compile "div=greeting", client: true # => "(function(jade) { function template(locals) {var buf = [];var jade_mixins = {};var jade_interp;;var locals_for_with = (locals || {});(function (greeting) {buf.push("<div>" + (jade.escape(null == (jade_interp = greeting) ? "" : jade_interp)) + "</div>");}.call(this,"greeting" in locals_for_with?locals_for_with.greeting:typeof greeting!=="undefined"?greeting:undefined));;return buf.join("");}; return template; }).call(this, jade);"
48
+ ```
49
+
50
+ **Advanced language features like `include`, `extends` and `block` are supported (only system compilers):**
51
+ ```jade
52
+ //- File: /var/www/app/views/header.jade
53
+ ul
54
+ li: a(href='/') Home
55
+ ```
56
+
57
+ ```jade
58
+ //- File: /var/www/app/views/layout.jade
59
+ doctype html
60
+ html
61
+ head
62
+ title Application
63
+ body
64
+ header
65
+ include ./header.jade
66
+ ```
67
+
68
+ ```ruby
69
+ Jade.use :system
70
+
71
+ Jade.compile File.read("/var/www/app/views/layout.jade"), filename: "/var/www/app/views/layout.jade"
72
+ # => "<!DOCTYPE html><html><head><title>Application</title></head><body><header><ul><li><a href="/">Home</a></li></ul></header></body></html>"
12
73
  ```
13
74
 
14
75
  ## Installing gem
15
- Run `gem install pug-ruby -v '~> 1.0'`. Add `require 'pug-ruby'` to your code.
16
76
 
77
+ **RubyGems users**
78
+
79
+ 1. Run `gem install pug-ruby --version "~> 2.0.0"`.
80
+ 2. Add `require "pug-ruby"` to your code.
81
+
82
+ **Bundler users**
17
83
 
18
- **If you are using bundler.**
19
- <br>
20
- Add to your Gemfile:
84
+ 1. Add to your Gemfile:
21
85
  ```ruby
22
- gem 'pug-ruby', '~> 1.0'
86
+ gem "pug-ruby", "~> 2.0.0"
23
87
  ```
88
+ 2. Run `bundle install`.
24
89
 
25
90
  ## Installing Jade
91
+
26
92
  Install Jade globally via npm:
27
93
  ```bash
28
94
  npm install --global jade
29
95
  ```
96
+ You may require `sudo` depending on your system.
30
97
 
31
98
  ## Installing Pug
99
+
32
100
  Install Pug globally via npm:
33
101
  ```bash
34
- npm install --global pug-cli
102
+ npm install --global pug
35
103
  ```
104
+ You may require `sudo` depending on your system.
105
+
106
+ ## Switching Jade / Pug version
107
+
108
+ The gem is shipped with different prebuilt versions of Jade and Pug.
109
+ That prebuilt versions are Web version, e.g. they are limited to browser JavaScript.
110
+ Advanced Jade / Pug features like `includes`, `extends`, `block`, and other require filesystem access.
111
+ You will not be able to use that features while dealing with shipped Jade / Pug.
112
+ Use system Jade / Pug in such cases.
113
+
114
+ **Switching the version permanently:**
115
+
116
+ ```ruby
117
+ Pug.use "2.0.0" # You have just switched to shipped Pug 2.0.0.
118
+ Pug.compiler.version # Returns "2.0.0".
119
+
120
+ Pug.use :system # You have just switched to system Pug.
121
+ Pug.compiler.version # Returns the version of your system-wide installed Pug.
122
+ ```
123
+
124
+ **Switching the version temporarily:**
125
+
126
+ ```ruby
127
+ Jade.use "1.11.0" # You have just switched to shipped Jade 1.11.0.
128
+
129
+ Jade.use "1.9.2" do
130
+ # You have just switched to shipped Jade 1.9.2.
131
+ Jade.compiler.version # Returns "1.9.2".
132
+
133
+ # Do you stuff.
134
+ end
135
+
136
+ # You have been switched back to the 1.11.0.
137
+ Jade.compiler.version # Returns "1.11.0".
138
+ ```
139
+
140
+ **Switching to the system Jade / Pug:**
141
+
142
+ ```ruby
143
+ # Pass :system to switch to the system Jade / Pug.
144
+ Jade.use :system
145
+ Pug.use :system
146
+ ```
147
+
148
+ **Shipped versions of Jade:**
149
+
150
+ * 1.0.0
151
+ * 1.0.1
152
+ * 1.0.2
153
+ * 1.1.0
154
+ * 1.1.1
155
+ * 1.1.2
156
+ * 1.1.3
157
+ * 1.1.4
158
+ * 1.1.5
159
+ * 1.2.0
160
+ * 1.3.0
161
+ * 1.3.1
162
+ * 1.4.0
163
+ * 1.4.1
164
+ * 1.4.2
165
+ * 1.5.0
166
+ * 1.6.0
167
+ * 1.7.0
168
+ * 1.8.0
169
+ * 1.8.1
170
+ * 1.8.2
171
+ * 1.9.0
172
+ * 1.9.1
173
+ * 1.9.2
174
+ * 1.10.0
175
+ * 1.11.0
176
+
177
+ **Shipped versions of Jade runtime:**
178
+
179
+ * 1.0.0
180
+ * 1.0.1
181
+ * 1.0.2
182
+ * 1.1.0
183
+ * 1.1.1
184
+ * 1.1.2
185
+ * 1.1.3
186
+ * 1.1.4
187
+ * 1.1.5
188
+ * 1.2.0
189
+ * 1.3.0
190
+ * 1.3.1
191
+ * 1.4.0
192
+ * 1.4.1
193
+ * 1.4.2
194
+ * 1.5.0
195
+ * 1.6.0
196
+ * 1.7.0
197
+ * 1.8.0
198
+ * 1.8.1
199
+ * 1.8.2
200
+ * 1.9.0
201
+ * 1.9.1
202
+ * 1.9.2
203
+ * 1.10.0
204
+ * 1.11.0
205
+
206
+ **Shipped versions of Pug:**
207
+
208
+ * 2.0.0-beta1
209
+ * 2.0.0-beta2
210
+ * 2.0.0-beta3
211
+ * 2.0.0-beta4
212
+ * 2.0.0-beta5
213
+ * 2.0.0-beta6
214
+ * 2.0.0-beta7
215
+ * 2.0.0-beta8
216
+ * 2.0.0-beta9
217
+ * 2.0.0-beta10
218
+ * 2.0.0-beta11
219
+ * 2.0.0-beta.12 (the dot is not an error)
220
+ * 2.0.0-rc.1
221
+ * 2.0.0-rc.2
222
+ * 2.0.0-rc.3
223
+
224
+ **Shipped versions of Pug runtime:**
225
+
226
+ * 2.0.0
227
+ * 2.0.1
228
+ * 2.0.2
229
+
230
+ ## Configuring Jade / Pug
231
+
232
+ **Accessing configuration:**
233
+
234
+ ```ruby
235
+ Jade.config
236
+ ```
237
+
238
+ **Getting configuration options:**
239
+
240
+ ```ruby
241
+ Jade.config.pretty # => false
242
+ Jade.config.pretty? # => false
243
+ ```
244
+
245
+ **Setting configuration options:**
246
+
247
+ ```ruby
248
+ Jade.config.pretty = true
249
+ ```
250
+
251
+ **Setting custom configuration options:**
252
+
253
+ ```ruby
254
+ Jade.config.custom_option = "value"
255
+ ```
256
+
257
+ **Serializing configuration:**
258
+
259
+ ```ruby
260
+ Jade.config.to_h
261
+ # => { filename: nil, doctype: nil, pretty: false, self: false, compile_debug: false, globals: [], name: "template" }
262
+ ```
263
+
264
+ **The documentation for configuration options can be found here:**
265
+
266
+ * [Official Jade website (Web Archive only)](http://web.archive.org/web/*/jade-lang.com/api)
267
+ * [Jade CLI utility reference](https://github.com/pugjs/pug/blob/v1.x.x/bin/jade.js)
268
+ * [Official Pug website](https://pugjs.org/api/reference.html)
269
+ * [Pug CLI utility reference](https://github.com/pugjs/pug-cli/blob/master/index.js)
270
+
271
+ **Pass an options to `Jade#compile` or `Pug#compile` as second argument to override global config:**
36
272
 
37
- ## Configuring Pug and Jade
38
- Access Pug and Jade configurations:
39
273
  ```ruby
40
- Jade.config.compile_debug = false
41
- Pug.config.compile_debug = false
274
+ Jade.compile "h1 Title\ndiv Content"
275
+ # => "<h1>Title</h1><div>Content</div>"
276
+
277
+ Jade.compile "h1 Title\ndiv Content", pretty: true
278
+ # => "<h1>Title</h1>\n<div>Content</div>"
42
279
  ```
43
280
 
44
- Refer to official website for configuration options meaning:
45
- <br>
46
- [pugjs.org](https://pugjs.org)
47
- <br>
48
- [jade-lang.com (sorry, webarchive only)](http://web.archive.org/web/*/jade-lang.com)
281
+ ## Running tests
49
282
 
50
- ## Running Tests
51
- 1. Install both Pug and Jade
52
- 2. Install gem dependencies: `bundle install`
53
- 3. Finally run tests: `bundle exec rake test`
283
+ 1. Install both Jade and Pug: `npm install --global jade pug`.
284
+ 2. Install gem dependencies: `bundle install`.
285
+ 3. Finally, run tests: `bundle exec rake test`.