slim_assets 0.0.2 → 0.0.3

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3dc5349ebeafd4d6e1c87392155d24d84b7e0c08
4
+ data.tar.gz: d6dc49900768a58a26f06639208e02b5b0da763a
5
+ SHA512:
6
+ metadata.gz: 30cd00d673442a5da5d18c14476bac4a0542fab24e75682ee4b8f899a8180dda9daff547b6237818e9546dd10f674c63ee9b4c32e607a70d284cf11aba0f3905
7
+ data.tar.gz: 00ba36e407ebd5e02ca1a189d2763bddf212034002b8b558118c7c9329cbb004d9dccb35deeebc478c9dbf1582569a964c6456d98e49edbce504dbb419265eb7
@@ -0,0 +1 @@
1
+ 2.1.10
@@ -1,3 +1,3 @@
1
1
  rvm:
2
- - 1.9.2
3
- - 1.9.3
2
+ - 2.0
3
+ - 2.1
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  *ALPHA*
4
4
 
5
+ [![Build Status](https://secure.travis-ci.org/dabit/slim_assets.png)](http://travis-ci.org/dabit/slim_assets)
6
+
5
7
  Writing Javascript templates for Backbone.js (or other frameworks) in your app? Would you like to use slim and the asset pipeline?
6
8
 
7
9
  This gem adds slim templating support to the Rails 3.1 asset pipeline. This gem works with the EJS gem and JST asset engine to make your slim available as a compiled Javascript template.
@@ -16,7 +18,6 @@ Add this to your `Gemfile`
16
18
 
17
19
  # Using slim for your Javascript templates
18
20
 
19
-
20
21
  ## Templates directory
21
22
 
22
23
  You should locate your templates under `app/assets`; we suggest `app/assets/templates`. In your Javascript manifest file (for example `application.js`), use `require_tree`
@@ -59,8 +60,3 @@ All the ActionView and route helpers are available in your template. If you use
59
60
 
60
61
  This gem is heavily based on their [haml_assets gem](https://github.com/infbio/haml_assets)
61
62
 
62
- # About the Author
63
-
64
- [Crowd Interactive](http://www.crowdint.com) is a web design and development company that happens to work in Colima, Mexico.
65
- We specialize in building and growing online retail stores. We don’t work with everyone – just companies we believe in. Call us today to see if there’s a fit.
66
- Find more info [here](http://www.crowdint.com)!
@@ -1,9 +1,18 @@
1
1
  module SlimAssets
2
2
  class Engine < ::Rails::Engine
3
- initializer "sprockets.slim", :after => "sprockets.environment", :group => :all do |app|
4
- next unless app.assets
3
+ initializer 'slim_assets.assets.register', :group => :all do |app|
4
+ app.config.assets.configure do |sprockets_env|
5
+ if sprockets_env.respond_to?(:register_transformer)
6
+ sprockets_env.register_mime_type 'application/vnd.slim-template.slim+text', extensions: ['.slim']
7
+ sprockets_env.register_transformer 'application/vnd.slim-template.slim+text', 'application/javascript', SlimSprocketsEngine
8
+ end
5
9
 
6
- app.assets.register_engine('.slim', SlimSprocketsEngine)
10
+ if sprockets_env.respond_to?(:register_engine)
11
+ args = ['.slim', SlimSprocketsEngine]
12
+ args << { silence_deprecation: true } if Sprockets::VERSION.start_with?('3')
13
+ sprockets_env.register_engine(*args)
14
+ end
15
+ end
7
16
  end
8
17
  end
9
18
  end
@@ -3,9 +3,7 @@ require 'tilt'
3
3
 
4
4
  module SlimAssets
5
5
  class SlimSprocketsEngine < Tilt::Template
6
- def self.default_mime_type
7
- 'application/javascript'
8
- end
6
+ self.default_mime_type = 'application/javascript'
9
7
 
10
8
  module ViewContext
11
9
  attr_accessor :output_buffer
@@ -15,6 +13,7 @@ module SlimAssets
15
13
  include Rails.application.routes.url_helpers
16
14
  include Rails.application.routes.mounted_helpers
17
15
  include ActionView::Helpers
16
+ include SimpleForm::ActionViewExtensions::FormHelper if defined?(SimpleForm)
18
17
  end
19
18
  end
20
19
 
@@ -23,13 +22,19 @@ module SlimAssets
23
22
  end
24
23
  end
25
24
 
25
+ def prepare
26
+ # options = @options.merge(:filename => eval_file, :line => line)
27
+ @engine = ::Slim::Engine.new(options)
28
+ end
29
+
26
30
  def evaluate(scope, locals, &block)
27
- begin
28
- "" + render_slim(view_context(scope), locals)
29
- rescue Exception => e
30
- Rails.logger.error "ERROR: compiling #{file} RAISED #{e}"
31
- Rails.logger.error "Backtrace: #{e.backtrace.join("\n")}"
32
- end
31
+ scope = view_context(scope)
32
+
33
+ super
34
+ end
35
+
36
+ def precompiled_template(locals)
37
+ @engine.call(data.to_str)
33
38
  end
34
39
 
35
40
  protected
@@ -38,20 +43,10 @@ module SlimAssets
38
43
  @context_class ||= Class.new(scope.environment.context_class)
39
44
  end
40
45
 
41
- def prepare; end
42
-
43
- def render_slim(context, locals)
44
- Slim::Template.new(generator: Temple::Generators::RailsOutputBuffer) {|t| data }.render(context)
45
- end
46
-
47
- # The Sprockets context is shared among all the processors, give Slim its
48
- # own context
49
46
  def view_context(scope)
50
- @view_context ||=
51
- context_class(scope).new(
52
- scope.environment,
53
- scope.logical_path.to_s,
54
- scope.pathname).tap { |ctx| ctx.class.send(:include, ViewContext) }
47
+ @view_context ||= scope.tap do |s|
48
+ s.singleton_class.instance_eval { include SlimAssets::SlimSprocketsEngine::ViewContext }
49
+ end
55
50
  end
56
51
  end
57
52
  end
@@ -1,3 +1,3 @@
1
1
  module SlimAssets
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -6,8 +6,8 @@ Gem::Specification.new do |s|
6
6
  s.name = "slim_assets"
7
7
  s.version = SlimAssets::VERSION
8
8
  s.authors = ["David Padilla"]
9
- s.email = ["david@crowdint.com"]
10
- s.homepage = ""
9
+ s.email = ["david@padilla.cc"]
10
+ s.homepage = "https://github.com/dabit/slim_assets"
11
11
  s.summary = %q{Use Slim with Rails helpers in the asset pipeline}
12
12
  s.description = %q{Use Slim with Rails helpers in the asset pipeline}
13
13
 
@@ -1,7 +1,6 @@
1
1
  require File.expand_path('../boot', __FILE__)
2
2
 
3
3
  require "action_controller/railtie"
4
- require "active_resource/railtie"
5
4
  require "sprockets/railtie"
6
5
 
7
6
  if defined?(Bundler)
@@ -5,10 +5,11 @@ end
5
5
 
6
6
  describe SlimAssets do
7
7
  it "should have the proper format" do
8
- RailsApp::Application.assets['link_to.jst.ejs.slim'].to_s.should == "(function() {\n this.JST || (this.JST = {});\n this.JST[\"link_to\"] = function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('<h1><div class=\"text\">Render works</div></h1>');}return __p.join('');};\n}).call(this);\n"
8
+ print RailsApp::Application.assets['link_to.jst.ejs.slim']
9
+ RailsApp::Application.assets['link_to.jst.ejs.slim'].to_s.should eq "(function() {\n this.JST || (this.JST = {});\n this.JST[\"link_to\"] = function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('h1\\n .text Render works\\n\\n');}return __p.join('');};\n}).call(this);\n"
9
10
  end
10
11
 
11
12
  it "should use rails helpers" do
12
- RailsApp::Application.assets['helpers.jst.ejs.slim'].to_s.should == "(function() {\n this.JST || (this.JST = {});\n this.JST[\"helpers\"] = function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('<h1>Form</h1><form accept-charset=\"UTF-8\" action=\"/\" class=\"new_post\" id=\"new_post\" method=\"post\"><div style=\"margin:0;padding:0;display:inline\"><input name=\"utf8\" type=\"hidden\" value=\"&#x2713;\" /></div><input id=\"post_title\" name=\"post[title]\" size=\"30\" type=\"text\" /></form>');}return __p.join('');};\n}).call(this);\n"
13
+ RailsApp::Application.assets['helpers.jst.ejs.slim'].to_s.should == "(function() {\n this.JST || (this.JST = {});\n this.JST[\"helpers\"] = function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('h1 Form\\n= form_for Post.new, url: \\'/\\' do |f|\\n = f.text_field :title\\n');}return __p.join('');};\n}).call(this);\n"
13
14
  end
14
15
  end
@@ -2,6 +2,9 @@ ENV["RAILS_ENV"] = "test"
2
2
 
3
3
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
4
 
5
+ require 'fileutils'
6
+ FileUtils.mkdir_p("./spec/rails_app/tmp/cache/")
7
+
5
8
  require 'rails_app/config/environment'
6
9
  require 'slim_assets'
7
10
  require 'ejs'
@@ -19,4 +22,3 @@ ActiveRecord::Schema.define(:version => 0) do
19
22
  end
20
23
  end
21
24
 
22
-
metadata CHANGED
@@ -1,115 +1,139 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slim_assets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
5
- prerelease:
4
+ version: 0.0.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - David Padilla
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-02-18 00:00:00.000000000 Z
11
+ date: 2017-01-25 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: slim
16
- requirement: &70234736320160 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *70234736320160
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: tilt
27
- requirement: &70234736319100 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ! '>='
31
+ - - ">="
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *70234736319100
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: rails
38
- requirement: &70234736316440 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
- - - ~>
45
+ - - "~>"
42
46
  - !ruby/object:Gem::Version
43
47
  version: 3.1.0
44
48
  type: :development
45
49
  prerelease: false
46
- version_requirements: *70234736316440
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 3.1.0
47
55
  - !ruby/object:Gem::Dependency
48
56
  name: sqlite3
49
- requirement: &70234736314460 !ruby/object:Gem::Requirement
50
- none: false
57
+ requirement: !ruby/object:Gem::Requirement
51
58
  requirements:
52
- - - ! '>='
59
+ - - ">="
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
62
  type: :development
56
63
  prerelease: false
57
- version_requirements: *70234736314460
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: rspec
60
- requirement: &70234736329620 !ruby/object:Gem::Requirement
61
- none: false
71
+ requirement: !ruby/object:Gem::Requirement
62
72
  requirements:
63
- - - ! '>='
73
+ - - ">="
64
74
  - !ruby/object:Gem::Version
65
75
  version: '0'
66
76
  type: :development
67
77
  prerelease: false
68
- version_requirements: *70234736329620
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rspec-rails
71
- requirement: &70234736328480 !ruby/object:Gem::Requirement
72
- none: false
85
+ requirement: !ruby/object:Gem::Requirement
73
86
  requirements:
74
- - - ! '>='
87
+ - - ">="
75
88
  - !ruby/object:Gem::Version
76
89
  version: '0'
77
90
  type: :development
78
91
  prerelease: false
79
- version_requirements: *70234736328480
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
80
97
  - !ruby/object:Gem::Dependency
81
98
  name: ejs
82
- requirement: &70234736327300 !ruby/object:Gem::Requirement
83
- none: false
99
+ requirement: !ruby/object:Gem::Requirement
84
100
  requirements:
85
- - - ! '>='
101
+ - - ">="
86
102
  - !ruby/object:Gem::Version
87
103
  version: '0'
88
104
  type: :development
89
105
  prerelease: false
90
- version_requirements: *70234736327300
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
91
111
  - !ruby/object:Gem::Dependency
92
112
  name: psych
93
- requirement: &70234736326180 !ruby/object:Gem::Requirement
94
- none: false
113
+ requirement: !ruby/object:Gem::Requirement
95
114
  requirements:
96
- - - ! '>='
115
+ - - ">="
97
116
  - !ruby/object:Gem::Version
98
117
  version: '0'
99
118
  type: :development
100
119
  prerelease: false
101
- version_requirements: *70234736326180
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
102
125
  description: Use Slim with Rails helpers in the asset pipeline
103
126
  email:
104
- - david@crowdint.com
127
+ - david@padilla.cc
105
128
  executables: []
106
129
  extensions: []
107
130
  extra_rdoc_files: []
108
131
  files:
109
- - .gitignore
110
- - .rspec
111
- - .rvmrc
112
- - .travis.yml
132
+ - ".gitignore"
133
+ - ".rspec"
134
+ - ".ruby-version"
135
+ - ".rvmrc"
136
+ - ".travis.yml"
113
137
  - Gemfile
114
138
  - README.md
115
139
  - Rakefile
@@ -136,35 +160,28 @@ files:
136
160
  - spec/rails_app/script/rails
137
161
  - spec/render_spec.rb
138
162
  - spec/spec_helper.rb
139
- homepage: ''
163
+ homepage: https://github.com/dabit/slim_assets
140
164
  licenses: []
165
+ metadata: {}
141
166
  post_install_message:
142
167
  rdoc_options: []
143
168
  require_paths:
144
169
  - lib
145
170
  required_ruby_version: !ruby/object:Gem::Requirement
146
- none: false
147
171
  requirements:
148
- - - ! '>='
172
+ - - ">="
149
173
  - !ruby/object:Gem::Version
150
174
  version: '0'
151
- segments:
152
- - 0
153
- hash: 1527951104491763291
154
175
  required_rubygems_version: !ruby/object:Gem::Requirement
155
- none: false
156
176
  requirements:
157
- - - ! '>='
177
+ - - ">="
158
178
  - !ruby/object:Gem::Version
159
179
  version: '0'
160
- segments:
161
- - 0
162
- hash: 1527951104491763291
163
180
  requirements: []
164
181
  rubyforge_project: slim_assets
165
- rubygems_version: 1.8.11
182
+ rubygems_version: 2.2.5
166
183
  signing_key:
167
- specification_version: 3
184
+ specification_version: 4
168
185
  summary: Use Slim with Rails helpers in the asset pipeline
169
186
  test_files:
170
187
  - spec/rails_app/.gitignore