angular-rails-templates 0.3.0 → 1.0.0.beta1
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 +4 -31
- data/lib/angular-rails-templates.rb +2 -1
- data/lib/angular-rails-templates/engine.rb +7 -21
- data/lib/angular-rails-templates/processor.rb +52 -0
- data/lib/angular-rails-templates/version.rb +1 -1
- metadata +12 -40
- data/lib/angular-rails-templates/template.rb +0 -58
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9fb45cac6296e091c98d1a3d48afb136d320f074
|
4
|
+
data.tar.gz: 4df7de01e2ff66162c323393b968e291d5e281ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 76656192c87de937514ae8708ac1a2b45ec4062b4cf8c21dd04823e6f6b38e5552ca994151b71ccb89f408ce0e42cb09306d93634742619c9e177e8ec5cb5d66
|
7
|
+
data.tar.gz: b8c956f2e4dd71889e1fa6f4b93b64446386a553d61dfbe95d127385254fe6fb435b261781e41e2712b48b499b18753c18ccf78a40096dab0db0de1228f9d76e
|
data/README.md
CHANGED
@@ -43,7 +43,7 @@ foo.html.haml
|
|
43
43
|
foo.html.slim
|
44
44
|
```
|
45
45
|
|
46
|
-
Caution: *`.ngslim`
|
46
|
+
Caution: *`.ngslim` is no longer supported!*
|
47
47
|
|
48
48
|
Angular Rails Templates will try to load support for the following markups if their gems are present:
|
49
49
|
|
@@ -80,7 +80,7 @@ modals/dialog.html.slim.erb.str => modals/dialog.html # don't do this
|
|
80
80
|
The templates can then be accessed via `templateUrl` as expected:
|
81
81
|
|
82
82
|
```javascript
|
83
|
-
// Template: app/assets/templates/yourTemplate.html.
|
83
|
+
// Template: app/assets/templates/yourTemplate.html.nghaml
|
84
84
|
{
|
85
85
|
templateUrl: 'yourTemplate.html'
|
86
86
|
}
|
@@ -107,7 +107,6 @@ config.angular_templates.module_name = 'templates'
|
|
107
107
|
config.angular_templates.ignore_prefix = %w(templates/)
|
108
108
|
config.angular_templates.inside_paths = [Rails.root.join('app', 'assets')]
|
109
109
|
config.angular_templates.markups = %w(erb str haml slim md)
|
110
|
-
config.angular_templates.htmlcompressor = false
|
111
110
|
```
|
112
111
|
|
113
112
|
### Configuration Option: `module_name`
|
@@ -188,39 +187,13 @@ config.angular_templates.markups.push 'nghaml'
|
|
188
187
|
```
|
189
188
|
Note: You would still need to use `foo`**`.html`**`.nghaml`
|
190
189
|
|
191
|
-
|
192
|
-
### Configuration Option: `htmlcompressor`
|
193
|
-
|
194
|
-
The [htmlcompressor gem](https://github.com/paolochiodi/htmlcompressor) is in alpha, not activly maintained, and has several known bugs. Beware if you are using windows. The `simple_boolean_attributes` option is known to mangle angular templates. It depends on a three-year-old version of yui-compressor. However, it does a good job of compressing html!
|
195
|
-
|
196
|
-
If you would like to use htmlcompressor add it to your Gemfile and Enable the configuration option.
|
197
|
-
|
198
|
-
```ruby
|
199
|
-
# Gemfile
|
200
|
-
gem 'htmlcompressor'
|
201
|
-
```
|
202
|
-
|
203
|
-
```ruby
|
204
|
-
# config/application.rb
|
205
|
-
config.angular_templates.htmlcompressor = true
|
206
|
-
```
|
207
|
-
|
208
|
-
You can also pass an options hash to `htmlcompressor` that will be directly passed to ```HtmlCompressor::Compressor.new```. See the [ruby project](https://github.com/paolochiodi/htmlcompressor#usage) or the [java project](https://code.google.com/p/htmlcompressor/#Compressing_HTML_and_XML_files_from_a_command_line) for descriptions of the options.
|
209
|
-
|
210
|
-
```ruby
|
211
|
-
# config/application.rb
|
212
|
-
config.angular_templates.htmlcompressor = {
|
213
|
-
:remove_quotes => true
|
214
|
-
}
|
215
|
-
```
|
216
|
-
|
217
|
-
|
218
190
|
## License
|
219
191
|
|
220
|
-
MIT License. Copyright
|
192
|
+
MIT License. Copyright 2015 pitr
|
221
193
|
|
222
194
|
## Authors & contributors
|
223
195
|
|
224
196
|
* Damien Mathieu <42@dmathieu.com>
|
225
197
|
* pitr <pitr.vern@gmail.com>
|
226
198
|
* Jeremy Ebler <jebler@gmail.com>
|
199
|
+
* Chris Nelson <chris@teamgaslight.com>
|
@@ -1,6 +1,7 @@
|
|
1
|
+
require 'angular-rails-templates/compact_javascript_escape'
|
2
|
+
require 'angular-rails-templates/processor'
|
1
3
|
require 'angular-rails-templates/engine'
|
2
4
|
|
3
5
|
module AngularRailsTemplates
|
4
|
-
autoload :Template, 'angular-rails-templates/template'
|
5
6
|
autoload :VERSION, 'angular-rails-templates/version'
|
6
7
|
end
|
@@ -7,7 +7,6 @@ module AngularRailsTemplates
|
|
7
7
|
config.angular_templates.ignore_prefix = ['templates/']
|
8
8
|
config.angular_templates.inside_paths = [] # defined in before_configuration
|
9
9
|
config.angular_templates.markups = []
|
10
|
-
config.angular_templates.htmlcompressor = false
|
11
10
|
|
12
11
|
config.before_configuration do |app|
|
13
12
|
config.angular_templates.inside_paths = [Rails.root.join('app', 'assets')]
|
@@ -31,29 +30,16 @@ module AngularRailsTemplates
|
|
31
30
|
require 'sprockets'
|
32
31
|
require 'sprockets/engines' # load sprockets for Rails 3
|
33
32
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
end
|
39
|
-
end
|
33
|
+
config.assets.configure do |env|
|
34
|
+
# byebug
|
35
|
+
env.register_mime_type 'text/ng-html', extensions: ['.html']
|
36
|
+
env.register_transformer 'text/ng-html', 'application/javascript', AngularRailsTemplates::Processor
|
40
37
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
# If sprockets sees a `foo.html.haml` it will process the haml
|
45
|
-
# and stop, because the haml output is html. Our html engine won't get run.
|
46
|
-
mimeless_engine = Class.new(Tilt[ext]) do
|
47
|
-
def self.default_mime_type
|
48
|
-
nil
|
49
|
-
end
|
38
|
+
# These engines render markup as HTML
|
39
|
+
app.config.angular_templates.markups.each do |ext|
|
40
|
+
env.register_engine ".#{ext}", Tilt[ext]
|
50
41
|
end
|
51
|
-
|
52
|
-
app.assets.register_engine ".#{ext}", mimeless_engine
|
53
42
|
end
|
54
|
-
|
55
|
-
# This engine wraps the HTML into JS
|
56
|
-
app.assets.register_engine '.html', AngularRailsTemplates::Template
|
57
43
|
end
|
58
44
|
|
59
45
|
# Sprockets Cache Busting
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'angular-rails-templates/compact_javascript_escape'
|
2
|
+
|
3
|
+
module AngularRailsTemplates
|
4
|
+
class Processor
|
5
|
+
|
6
|
+
AngularJsTemplateWrapper = Tilt::ERBTemplate.new "#{File.dirname __FILE__}/javascript_template.js.erb"
|
7
|
+
|
8
|
+
include CompactJavaScriptEscape
|
9
|
+
|
10
|
+
def self.instance
|
11
|
+
@instance ||= new
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.call(input)
|
15
|
+
instance.call(input)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.cache_key
|
19
|
+
instance.cache_key
|
20
|
+
end
|
21
|
+
|
22
|
+
attr_reader :cache_key, :config
|
23
|
+
|
24
|
+
def config
|
25
|
+
Rails.configuration.angular_templates
|
26
|
+
end
|
27
|
+
|
28
|
+
def initialize(options = {})
|
29
|
+
@cache_key = [self.class.name, VERSION, options].freeze
|
30
|
+
end
|
31
|
+
|
32
|
+
def template_name(name)
|
33
|
+
path = name.sub /^(#{config.ignore_prefix.join('|')})/, ''
|
34
|
+
"#{path}.html"
|
35
|
+
end
|
36
|
+
|
37
|
+
def call(input)
|
38
|
+
locals = {}
|
39
|
+
locals[:angular_template_name] = template_name(input[:name])
|
40
|
+
locals[:angular_module] = config.module_name
|
41
|
+
locals[:source_file] = "#{input[:filename]}".sub(/^#{Rails.root}\//,'')
|
42
|
+
|
43
|
+
locals[:html] = escape_javascript(input[:data].chomp)
|
44
|
+
|
45
|
+
if config.inside_paths.any? { |folder| input[:filename].match(folder.to_s) }
|
46
|
+
AngularJsTemplateWrapper.render(nil, locals)
|
47
|
+
else
|
48
|
+
input[:data]
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: angular-rails-templates
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Damien Mathieu
|
@@ -10,50 +10,36 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2016-02-03 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: railties
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- - "
|
19
|
+
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
21
|
+
version: '4.2'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- - "
|
26
|
+
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: '
|
28
|
+
version: '4.2'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: sprockets
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
33
|
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: '
|
35
|
+
version: '3.0'
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: '
|
43
|
-
- !ruby/object:Gem::Dependency
|
44
|
-
name: tilt
|
45
|
-
requirement: !ruby/object:Gem::Requirement
|
46
|
-
requirements:
|
47
|
-
- - ">="
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: '0'
|
50
|
-
type: :runtime
|
51
|
-
prerelease: false
|
52
|
-
version_requirements: !ruby/object:Gem::Requirement
|
53
|
-
requirements:
|
54
|
-
- - ">="
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: '0'
|
42
|
+
version: '3.0'
|
57
43
|
- !ruby/object:Gem::Dependency
|
58
44
|
name: minitest
|
59
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -82,20 +68,6 @@ dependencies:
|
|
82
68
|
- - ">="
|
83
69
|
- !ruby/object:Gem::Version
|
84
70
|
version: '0'
|
85
|
-
- !ruby/object:Gem::Dependency
|
86
|
-
name: mime-types
|
87
|
-
requirement: !ruby/object:Gem::Requirement
|
88
|
-
requirements:
|
89
|
-
- - "<"
|
90
|
-
- !ruby/object:Gem::Version
|
91
|
-
version: '3'
|
92
|
-
type: :development
|
93
|
-
prerelease: false
|
94
|
-
version_requirements: !ruby/object:Gem::Requirement
|
95
|
-
requirements:
|
96
|
-
- - "<"
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
version: '3'
|
99
71
|
- !ruby/object:Gem::Dependency
|
100
72
|
name: uglifier
|
101
73
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,7 +95,7 @@ files:
|
|
123
95
|
- lib/angular-rails-templates/compact_javascript_escape.rb
|
124
96
|
- lib/angular-rails-templates/engine.rb
|
125
97
|
- lib/angular-rails-templates/javascript_template.js.erb
|
126
|
-
- lib/angular-rails-templates/
|
98
|
+
- lib/angular-rails-templates/processor.rb
|
127
99
|
- lib/angular-rails-templates/version.rb
|
128
100
|
- vendor/assets/javascripts/angular-rails-templates.js.erb
|
129
101
|
homepage: https://github.com/pitr/angular-rails-templates
|
@@ -141,12 +113,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
141
113
|
version: '0'
|
142
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
143
115
|
requirements:
|
144
|
-
- - "
|
116
|
+
- - ">"
|
145
117
|
- !ruby/object:Gem::Version
|
146
|
-
version:
|
118
|
+
version: 1.3.1
|
147
119
|
requirements: []
|
148
120
|
rubyforge_project:
|
149
|
-
rubygems_version: 2.
|
121
|
+
rubygems_version: 2.2.2
|
150
122
|
signing_key:
|
151
123
|
specification_version: 4
|
152
124
|
summary: Use your angular templates with rails' asset pipeline
|
@@ -1,58 +0,0 @@
|
|
1
|
-
require 'angular-rails-templates/compact_javascript_escape'
|
2
|
-
|
3
|
-
module AngularRailsTemplates
|
4
|
-
class Template < ::Tilt::Template
|
5
|
-
include CompactJavaScriptEscape
|
6
|
-
AngularJsTemplateWrapper = Tilt::ERBTemplate.new "#{File.dirname __FILE__}/javascript_template.js.erb"
|
7
|
-
@@compressor = nil
|
8
|
-
|
9
|
-
def self.default_mime_type
|
10
|
-
'application/javascript'
|
11
|
-
end
|
12
|
-
|
13
|
-
def prepare
|
14
|
-
# we only want to process html assets inside those specified in configuration.inside_paths
|
15
|
-
@asset_should_be_processed = configuration.inside_paths.any? { |folder| file.match(folder.to_s) }
|
16
|
-
|
17
|
-
unless @asset_should_be_processed
|
18
|
-
@data = nil
|
19
|
-
return
|
20
|
-
end
|
21
|
-
|
22
|
-
if configuration.htmlcompressor and @asset_should_be_processed
|
23
|
-
@data = compress data
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def evaluate(scope, locals, &block)
|
28
|
-
if @asset_should_be_processed
|
29
|
-
locals[:html] = escape_javascript data.chomp
|
30
|
-
locals[:angular_template_name] = logical_template_path(scope)
|
31
|
-
locals[:source_file] = "#{scope.pathname}".sub(/^#{Rails.root}\//,'')
|
32
|
-
locals[:angular_module] = configuration.module_name
|
33
|
-
AngularJsTemplateWrapper.render(scope, locals)
|
34
|
-
else
|
35
|
-
data
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
private
|
40
|
-
|
41
|
-
def logical_template_path(scope)
|
42
|
-
path = scope.logical_path.sub /^(#{configuration.ignore_prefix.join('|')})/, ''
|
43
|
-
"#{path}.html"
|
44
|
-
end
|
45
|
-
|
46
|
-
def configuration
|
47
|
-
::Rails.configuration.angular_templates
|
48
|
-
end
|
49
|
-
|
50
|
-
def compress html
|
51
|
-
unless @@compressor
|
52
|
-
@@compressor = HtmlCompressor::Compressor.new configuration.htmlcompressor
|
53
|
-
end
|
54
|
-
@@compressor.compress(html)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|