angular-rails-templates 0.3.0 → 1.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
|