slim-rails 3.1.3 → 3.4.0

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.
Files changed (38) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +17 -0
  3. data/README.md +4 -2
  4. data/lib/generators/slim/mailer/templates/view.html.slim +1 -1
  5. data/lib/generators/slim/mailer/templates/view.text.slim +1 -1
  6. data/lib/generators/slim/scaffold/scaffold_generator.rb +5 -2
  7. data/lib/generators/slim/scaffold/templates/_form.html.slim.tt +28 -0
  8. data/lib/generators/slim/scaffold/templates/edit.html.slim.tt +10 -0
  9. data/lib/generators/slim/scaffold/templates/index.html.slim.tt +11 -0
  10. data/lib/generators/slim/scaffold/templates/new.html.slim.tt +8 -0
  11. data/lib/generators/slim/scaffold/templates/partial.html.slim.tt +14 -0
  12. data/lib/generators/slim/scaffold/templates/show.html.slim.tt +10 -0
  13. data/lib/slim-rails/register_engine.rb +26 -23
  14. data/lib/slim-rails/version.rb +1 -1
  15. metadata +39 -42
  16. data/.gitignore +0 -20
  17. data/.travis.yml +0 -33
  18. data/Appraisals +0 -21
  19. data/Gemfile +0 -3
  20. data/Rakefile +0 -12
  21. data/gemfiles/rails_3.gemfile +0 -9
  22. data/gemfiles/rails_4.1.gemfile +0 -7
  23. data/gemfiles/rails_4.2.gemfile +0 -7
  24. data/gemfiles/rails_4.gemfile +0 -7
  25. data/gemfiles/rails_5.gemfile +0 -7
  26. data/lib/generators/slim/scaffold/templates/_form.html.slim +0 -14
  27. data/lib/generators/slim/scaffold/templates/edit.html.slim +0 -8
  28. data/lib/generators/slim/scaffold/templates/index.html.slim +0 -25
  29. data/lib/generators/slim/scaffold/templates/new.html.slim +0 -5
  30. data/lib/generators/slim/scaffold/templates/show.html.slim +0 -11
  31. data/slim-rails.gemspec +0 -34
  32. data/test/fixtures/routes.rb +0 -58
  33. data/test/lib/generators/slim/controller_generator_test.rb +0 -17
  34. data/test/lib/generators/slim/mailer_generator_test.rb +0 -70
  35. data/test/lib/generators/slim/scaffold_generator_test.rb +0 -26
  36. data/test/lib/generators/slim/testing_helper.rb +0 -1
  37. data/test/lib/slim-rails_assets_test.rb +0 -34
  38. data/test/test_helper.rb +0 -66
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 7880d575529722f1030ae06c06286f6610b7f7f8
4
- data.tar.gz: bbc81804dbb1836c2b50655fc6c8a80bb59564e9
2
+ SHA256:
3
+ metadata.gz: 9d672f03fbbe43effd0e993addabdd6ab61bbda0038edee278359483363caa98
4
+ data.tar.gz: 98e150a881b76c14f4304728124366b44ce3d4335b9cb732cd6bbe6668c6011f
5
5
  SHA512:
6
- metadata.gz: 969794e2f204ec1fd1b8050a94bb56c367b84ba16498b950926437f108511f8c4eeefae30c943fb40de98cbf4bb4f8ba82ce499abbdf8ec01285a41fa98f7b76
7
- data.tar.gz: cbd7b5d52d931d55c3ec7cabd4f196c2f75aa18f151f846eaa34219bd73d1b8109544a3b2a87c5eafcd57752bb2df3c315624f6621a52c42b18e9558ce3b5d3b
6
+ metadata.gz: e4e81e2fe65f34fb318c40bf799dff4498010699a4721014f0b9c2e648c7e14ea6e19c1dd95c7e12aade2d82e7043cb1885560759874efd4e15f19a006109b55
7
+ data.tar.gz: db4ed0ed081659fdd329345054bcdf1252437b69c8433aa045a1ede11211d0cda09e8754cca43a4a929226ba802637eccbc9fbb3988738761960d28ae8690a0d
data/CHANGELOG.md CHANGED
@@ -1,3 +1,20 @@
1
+ ## 3.4.0 (March 2022)
2
+
3
+ * Updated templates to Rails 7 style (thanks github.com/viktorianer) (#178)
4
+
5
+
6
+ ## 3.3.0 (July 19, 2021)
7
+
8
+ * Enabled asset helpers in precompiled templates (#135)
9
+ * Tested with Rails 6.0, 6.1 and Ruby 3.0
10
+ * Improved CI and tests with Sprockets 4
11
+
12
+
13
+ ## 3.2.0 (October 7, 2018)
14
+
15
+ * Support for Slim 4
16
+
17
+
1
18
  ## 3.1.3 (April 3, 2017)
2
19
 
3
20
  * Improved compatibility with Sprockets 4
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # slim-rails [![Build Status](https://travis-ci.org/slim-template/slim-rails.png?branch=master)](https://travis-ci.org/slim-template/slim-rails) [![Code Climate](https://codeclimate.com/github/slim-template/slim-rails/badges/gpa.svg)](https://codeclimate.com/github/slim-template/slim-rails)
1
+ # slim-rails [![Gem Version](https://img.shields.io/gem/v/slim-rails.svg)](http://rubygems.org/gems/slim-rails) [![Build Status](https://travis-ci.org/slim-template/slim-rails.svg?branch=master)](https://travis-ci.org/slim-template/slim-rails) [![Code Climate](https://codeclimate.com/github/slim-template/slim-rails/badges/gpa.svg)](https://codeclimate.com/github/slim-template/slim-rails)
2
2
 
3
3
  slim-rails provides Slim generators for Rails 3+. It was based on
4
4
  [haml-rails](http://github.com/indirect/haml-rails) and it does basically the
@@ -18,6 +18,8 @@ gem "slim-rails"
18
18
 
19
19
  And that's it.
20
20
 
21
+ If you have existing `.erb` templates, check out [our guide](https://github.com/slim-template/slim/wiki/Template-Converters-ERB-to-SLIM) on how to achieve this.
22
+
21
23
  From the version 0.2.0, there is no need to include gem "slim" in your Gemfile.
22
24
 
23
- Every time you generate a controller or scaffold, you'll get Slim templates.
25
+ Every time you generate a controller or scaffold, you'll get Slim templates.
@@ -1,2 +1,2 @@
1
1
  h1 <%= class_name %>#<%= @action %>
2
- p = @greeting + ", find me in <%= @path %>"
2
+ p = "#{@greeting}, find me in <%= @path %>"
@@ -1,3 +1,3 @@
1
1
  ' <%= class_name %>#<%= @action %>
2
2
  = "\r\n" * 2
3
- ' #{@greeting + ", find me in <%= @path %>"}
3
+ ' #{@greeting}, find me in <%= @path %>
@@ -2,7 +2,7 @@ require 'rails/generators/erb/scaffold/scaffold_generator'
2
2
 
3
3
  module Slim
4
4
  module Generators
5
- class ScaffoldGenerator < Erb::Generators::ScaffoldGenerator
5
+ class ScaffoldGenerator < Erb::Generators::ScaffoldGenerator # :nodoc:
6
6
  source_root File.expand_path(File.join('..', 'templates'), __FILE__)
7
7
 
8
8
  def copy_view_files
@@ -10,13 +10,16 @@ module Slim
10
10
  filename = filename_with_extensions view
11
11
  template "#{view}.html.slim", File.join('app', 'views', controller_file_path, filename)
12
12
  end
13
+
14
+ template 'partial.html.slim', File.join('app/views', controller_file_path, "_#{singular_name}.html.slim")
13
15
  end
14
16
 
15
17
  hook_for :form_builder, as: :scaffold
16
18
 
17
19
  protected
20
+
18
21
  def available_views
19
- ['index', 'edit', 'show', 'new', '_form']
22
+ %w[index edit show new _form]
20
23
  end
21
24
 
22
25
  def handler
@@ -0,0 +1,28 @@
1
+ = form_with(model: @<%= model_resource_name %>) do |form|
2
+ - if @<%= singular_table_name %>.errors.any?
3
+ div style="color: red"
4
+ h2 = "#{pluralize(@<%= singular_table_name %>.errors.count, 'error')} prohibited this <%= singular_table_name %> from being saved:"
5
+ ul
6
+ - @<%= singular_table_name %>.errors.each do |error|
7
+ li = error.full_message
8
+
9
+ <% attributes.each do |attribute| -%>
10
+ div
11
+ <% if attribute.password_digest? -%>
12
+ = form.label :password, style: "display: block"
13
+ = form.password_field :password
14
+
15
+ div
16
+ = form.label :password_confirmation, style: "display: block"
17
+ = form.password_field :password_confirmation
18
+ <% elsif attribute.attachments? -%>
19
+ = form.label :<%= attribute.column_name %>, style: "display: block"
20
+ = form.<%= attribute.field_type %> :<%= attribute.column_name %>, multiple: true
21
+ <% else -%>
22
+ = form.label :<%= attribute.column_name %>, style: "display: block"
23
+ = form.<%= attribute.field_type %> :<%= attribute.column_name %>
24
+ <% end -%>
25
+
26
+ <% end -%>
27
+ div
28
+ = form.submit
@@ -0,0 +1,10 @@
1
+ h1 Editing <%= human_name.downcase %>
2
+
3
+ == render "form", <%= singular_table_name %>: @<%= singular_table_name %>
4
+
5
+ br
6
+
7
+ div
8
+ => link_to "Show this <%= human_name.downcase %>", <%= model_resource_name(prefix: "@") %>
9
+ '|
10
+ =< link_to "Back to <%= human_name.pluralize.downcase %>", <%= index_helper(type: :path) %>
@@ -0,0 +1,11 @@
1
+ p style="color: green" = notice
2
+
3
+ h1 <%= human_name.pluralize %>
4
+
5
+ #<%= plural_table_name %>
6
+ - @<%= plural_table_name %>.each do |<%= singular_table_name %>|
7
+ == render <%= singular_table_name %>
8
+ p
9
+ = link_to "Show this <%= human_name.downcase %>", <%= model_resource_name(singular_table_name) %>
10
+
11
+ = link_to "New <%= human_name.downcase %>", <%= new_helper(type: :path) %>
@@ -0,0 +1,8 @@
1
+ h1 New <%= human_name.downcase %>
2
+
3
+ == render "form", <%= singular_table_name %>: @<%= singular_table_name %>
4
+
5
+ br
6
+
7
+ div
8
+ = link_to "Back to <%= human_name.pluralize.downcase %>", <%= index_helper(type: :path) %>
@@ -0,0 +1,14 @@
1
+ div id="#{dom_id <%= singular_name %>}"
2
+ <% attributes.reject(&:password_digest?).each do |attribute| -%>
3
+ p
4
+ strong <%= attribute.human_name %>:
5
+ <% if attribute.attachment? -%>
6
+ = link_to <%= singular_name %>.<%= attribute.column_name %>.filename, <%= singular_name %>.<%= attribute.column_name %> if <%= singular_name %>.<%= attribute.column_name %>.attached?
7
+ <% elsif attribute.attachments? -%>
8
+ - <%= singular_name %>.<%= attribute.column_name %>.each do |<%= attribute.singular_name %>|
9
+ div
10
+ = link_to <%= attribute.singular_name %>.filename, <%= attribute.singular_name %>
11
+ <% else -%>
12
+ =< <%= singular_name %>.<%= attribute.column_name %>
13
+ <% end -%>
14
+ <% end -%>
@@ -0,0 +1,10 @@
1
+ p style="color: green" = notice
2
+
3
+ == render @<%= singular_table_name %>
4
+
5
+ div
6
+ => link_to "Edit this <%= human_name.downcase %>", <%= edit_helper(type: :path) %>
7
+ '|
8
+ =< link_to "Back to <%= human_name.pluralize.downcase %>", <%= index_helper(type: :path) %>
9
+
10
+ = button_to "Destroy this <%= human_name.downcase %>", <%= model_resource_name(prefix: "@") %>, method: :delete
@@ -3,38 +3,41 @@ module Slim
3
3
  module RegisterEngine
4
4
  class Transformer
5
5
  def self.call(input)
6
- Slim::Template.new(input[:name]) { input[:data] }.render(nil)
6
+ context = input[:environment].context_class.new(input)
7
+ Slim::Template.new(input[:name]) { input[:data] }.render(context)
7
8
  end
8
9
  end
9
10
 
10
- def self.register_engine(app, config)
11
- if ::Rails::VERSION::MAJOR == 3
12
- _register_engine3(app)
13
- else
14
- _register_engine(config)
11
+ class << self
12
+ def register_engine(app, config)
13
+ if ::Rails::VERSION::MAJOR == 3
14
+ _register_engine3(app)
15
+ else
16
+ _register_engine(config)
17
+ end
15
18
  end
16
- end
17
19
 
18
- private
20
+ private
19
21
 
20
- def self._register_engine3(app)
21
- return unless app.assets
22
- return unless app.assets.respond_to?(:register_engine)
22
+ def _register_engine3(app)
23
+ return unless app.assets
24
+ return unless app.assets.respond_to?(:register_engine)
23
25
 
24
- app.assets.register_engine('.slim', Slim::Template)
25
- end
26
+ app.assets.register_engine('.slim', Slim::Template)
27
+ end
26
28
 
27
- def self._register_engine(config)
28
- return unless config.respond_to?(:assets)
29
+ def _register_engine(config)
30
+ return unless config.respond_to?(:assets)
29
31
 
30
- config.assets.configure do |env|
31
- if env.respond_to?(:register_transformer) && Sprockets::VERSION.to_i > 3
32
- env.register_mime_type 'text/slim', extensions: ['.slim', '.slim.html']#, charset: :html
33
- env.register_transformer 'text/slim', 'text/html', RegisterEngine::Transformer
34
- elsif env.respond_to?(:register_engine)
35
- args = ['.slim', Slim::Template]
36
- args << { silence_deprecation: true } if Sprockets::VERSION.start_with?('3')
37
- env.register_engine(*args)
32
+ config.assets.configure do |env|
33
+ if env.respond_to?(:register_transformer) && Sprockets::VERSION.to_i > 3
34
+ env.register_mime_type 'text/slim', extensions: ['.slim', '.slim.html']#, charset: :html
35
+ env.register_transformer 'text/slim', 'text/html', RegisterEngine::Transformer
36
+ elsif env.respond_to?(:register_engine)
37
+ args = ['.slim', Slim::Template]
38
+ args << { silence_deprecation: true } if Sprockets::VERSION.start_with?('3')
39
+ env.register_engine(*args)
40
+ end
38
41
  end
39
42
  end
40
43
  end
@@ -1,5 +1,5 @@
1
1
  module Slim
2
2
  module Rails
3
- VERSION = '3.1.3'
3
+ VERSION = '3.4.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slim-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.3
4
+ version: 3.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leonardo Almeida
8
- autorequire:
8
+ - Janusz Mordarski
9
+ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2017-10-05 00:00:00.000000000 Z
12
+ date: 2022-03-15 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: actionpack
@@ -42,16 +43,22 @@ dependencies:
42
43
  name: slim
43
44
  requirement: !ruby/object:Gem::Requirement
44
45
  requirements:
45
- - - "~>"
46
+ - - ">="
46
47
  - !ruby/object:Gem::Version
47
48
  version: '3.0'
49
+ - - "<"
50
+ - !ruby/object:Gem::Version
51
+ version: '5.0'
48
52
  type: :runtime
49
53
  prerelease: false
50
54
  version_requirements: !ruby/object:Gem::Requirement
51
55
  requirements:
52
- - - "~>"
56
+ - - ">="
53
57
  - !ruby/object:Gem::Version
54
58
  version: '3.0'
59
+ - - "<"
60
+ - !ruby/object:Gem::Version
61
+ version: '5.0'
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: sprockets-rails
57
64
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +73,20 @@ dependencies:
66
73
  - - ">="
67
74
  - !ruby/object:Gem::Version
68
75
  version: '0'
76
+ - !ruby/object:Gem::Dependency
77
+ name: slim_lint
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.21.0
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.21.0
69
90
  - !ruby/object:Gem::Dependency
70
91
  name: rocco
71
92
  requirement: !ruby/object:Gem::Requirement
@@ -136,26 +157,17 @@ dependencies:
136
157
  - - ">="
137
158
  - !ruby/object:Gem::Version
138
159
  version: '0'
139
- description: Provides the generator settings required for Rails 3+ to use Slim
160
+ description: Provides the generator settings required for Rails to use Slim
140
161
  email:
141
162
  - lalmeida08@gmail.com
163
+ - janusz.m@gmail.com
142
164
  executables: []
143
165
  extensions: []
144
166
  extra_rdoc_files: []
145
167
  files:
146
- - ".gitignore"
147
- - ".travis.yml"
148
- - Appraisals
149
168
  - CHANGELOG.md
150
- - Gemfile
151
169
  - LICENSE
152
170
  - README.md
153
- - Rakefile
154
- - gemfiles/rails_3.gemfile
155
- - gemfiles/rails_4.1.gemfile
156
- - gemfiles/rails_4.2.gemfile
157
- - gemfiles/rails_4.gemfile
158
- - gemfiles/rails_5.gemfile
159
171
  - lib/generators/slim/controller/controller_generator.rb
160
172
  - lib/generators/slim/controller/templates/view.html.slim
161
173
  - lib/generators/slim/mailer/mailer_generator.rb
@@ -164,27 +176,20 @@ files:
164
176
  - lib/generators/slim/mailer/templates/view.html.slim
165
177
  - lib/generators/slim/mailer/templates/view.text.slim
166
178
  - lib/generators/slim/scaffold/scaffold_generator.rb
167
- - lib/generators/slim/scaffold/templates/_form.html.slim
168
- - lib/generators/slim/scaffold/templates/edit.html.slim
169
- - lib/generators/slim/scaffold/templates/index.html.slim
170
- - lib/generators/slim/scaffold/templates/new.html.slim
171
- - lib/generators/slim/scaffold/templates/show.html.slim
179
+ - lib/generators/slim/scaffold/templates/_form.html.slim.tt
180
+ - lib/generators/slim/scaffold/templates/edit.html.slim.tt
181
+ - lib/generators/slim/scaffold/templates/index.html.slim.tt
182
+ - lib/generators/slim/scaffold/templates/new.html.slim.tt
183
+ - lib/generators/slim/scaffold/templates/partial.html.slim.tt
184
+ - lib/generators/slim/scaffold/templates/show.html.slim.tt
172
185
  - lib/slim-rails.rb
173
186
  - lib/slim-rails/register_engine.rb
174
187
  - lib/slim-rails/version.rb
175
- - slim-rails.gemspec
176
- - test/fixtures/routes.rb
177
- - test/lib/generators/slim/controller_generator_test.rb
178
- - test/lib/generators/slim/mailer_generator_test.rb
179
- - test/lib/generators/slim/scaffold_generator_test.rb
180
- - test/lib/generators/slim/testing_helper.rb
181
- - test/lib/slim-rails_assets_test.rb
182
- - test/test_helper.rb
183
188
  homepage: https://github.com/slim-template/slim-rails
184
189
  licenses:
185
190
  - MIT
186
191
  metadata: {}
187
- post_install_message:
192
+ post_install_message:
188
193
  rdoc_options: []
189
194
  require_paths:
190
195
  - lib
@@ -199,16 +204,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
199
204
  - !ruby/object:Gem::Version
200
205
  version: '0'
201
206
  requirements: []
202
- rubyforge_project:
203
- rubygems_version: 2.6.13
204
- signing_key:
207
+ rubygems_version: 3.3.7
208
+ signing_key:
205
209
  specification_version: 4
206
- summary: Slim templates generator for Rails 3+
207
- test_files:
208
- - test/fixtures/routes.rb
209
- - test/lib/generators/slim/controller_generator_test.rb
210
- - test/lib/generators/slim/mailer_generator_test.rb
211
- - test/lib/generators/slim/scaffold_generator_test.rb
212
- - test/lib/generators/slim/testing_helper.rb
213
- - test/lib/slim-rails_assets_test.rb
214
- - test/test_helper.rb
210
+ summary: Slim templates generator for Rails
211
+ test_files: []
data/.gitignore DELETED
@@ -1,20 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- test/tmp
16
- test/version_tmp
17
- tmp/
18
- .ruby-version
19
- .ruby-gemset
20
- gemfiles/*.gemfile.lock
data/.travis.yml DELETED
@@ -1,33 +0,0 @@
1
- language: ruby
2
- before_install:
3
- - gem install bundler
4
- rvm:
5
- - ruby-head
6
- - 2.4.0
7
- - 2.3
8
- - 2.2
9
- - 2.1
10
- - 2.0
11
- gemfile:
12
- - gemfiles/rails_3.gemfile
13
- - gemfiles/rails_4.gemfile
14
- - gemfiles/rails_4.1.gemfile
15
- - gemfiles/rails_4.2.gemfile
16
- - gemfiles/rails_5.gemfile
17
- matrix:
18
- allow_failures:
19
- - rvm: ruby-head
20
- - rvm: 2.4.0
21
- gemfile: gemfiles/rails_4.gemfile
22
- - rvm: 2.4.0
23
- gemfile: gemfiles/rails_4.1.gemfile
24
- - rvm: 2.4.0
25
- gemfile: gemfiles/rails_4.2.gemfile
26
- exclude:
27
- - rvm: 2.1
28
- gemfile: gemfiles/rails_5.gemfile
29
- - rvm: 2.0
30
- gemfile: gemfiles/rails_5.gemfile
31
- addons:
32
- code_climate:
33
- repo_token: 294f0ec8183176c0259b75eb21b38414508616985a7b39fc48fec9dfcf40a52e
data/Appraisals DELETED
@@ -1,21 +0,0 @@
1
- appraise "rails-3" do
2
- gem "rails", "~> 3.2"
3
- gem 'minitest'
4
- gem 'test-unit', '~> 3.0'
5
- end
6
-
7
- appraise "rails-4" do
8
- gem "rails", "~> 4.0.0"
9
- end
10
-
11
- appraise "rails-4.1" do
12
- gem "rails", "~> 4.1.0"
13
- end
14
-
15
- appraise "rails-4.2" do
16
- gem "rails", "~> 4.2.0"
17
- end
18
-
19
- appraise "rails-5" do
20
- gem "rails", "~> 5.0.0"
21
- end
data/Gemfile DELETED
@@ -1,3 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec
data/Rakefile DELETED
@@ -1,12 +0,0 @@
1
- #!/usr/bin/env rake
2
- require 'bundler'
3
- Bundler::GemHelper.install_tasks
4
-
5
- require 'rake/testtask'
6
- Rake::TestTask.new(:test) do |test|
7
- test.libs << 'lib' << 'test'
8
- test.pattern = 'test/**/*_test.rb'
9
- test.verbose = true
10
- end
11
-
12
- task :default => :test
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "rails", "~> 3.2"
6
- gem "minitest"
7
- gem "test-unit", "~> 3.0"
8
-
9
- gemspec :path => "../"
@@ -1,7 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "rails", "~> 4.1.0"
6
-
7
- gemspec :path => "../"
@@ -1,7 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "rails", "~> 4.2.0"
6
-
7
- gemspec :path => "../"
@@ -1,7 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "rails", "~> 4.0.0"
6
-
7
- gemspec :path => "../"
@@ -1,7 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "https://rubygems.org"
4
-
5
- gem "rails", "~> 5.0.0"
6
-
7
- gemspec :path => "../"
@@ -1,14 +0,0 @@
1
- = form_for @<%= singular_table_name %> do |f|
2
- - if @<%= singular_table_name %>.errors.any?
3
- #error_explanation
4
- h2 = "#{pluralize(@<%= singular_table_name %>.errors.count, "error")} prohibited this <%= singular_table_name %> from being saved:"
5
- ul
6
- - @<%= singular_table_name %>.errors.full_messages.each do |message|
7
- li = message
8
-
9
- <% attributes.each do |attribute| -%>
10
- .field
11
- = f.label :<%= attribute.name %>
12
- = f.<%= attribute.field_type %> :<%= attribute.name %>
13
- <% end -%>
14
- .actions = f.submit
@@ -1,8 +0,0 @@
1
- h1 Editing <%= singular_table_name %>
2
-
3
- == render 'form'
4
-
5
- => link_to 'Show', @<%= singular_table_name %>
6
- '|
7
- =< link_to 'Back', <%= index_helper %>_path
8
-
@@ -1,25 +0,0 @@
1
- h1 Listing <%= plural_table_name %>
2
-
3
- table
4
- thead
5
- tr
6
- <% attributes.each do |attribute| -%>
7
- th <%= attribute.human_name %>
8
- <% end -%>
9
- th
10
- th
11
- th
12
-
13
- tbody
14
- - @<%= plural_table_name %>.each do |<%= singular_table_name %>|
15
- tr
16
- <% attributes.each do |attribute| -%>
17
- td = <%= singular_table_name %>.<%= attribute.name %>
18
- <% end -%>
19
- td = link_to 'Show', <%= singular_table_name %>
20
- td = link_to 'Edit', edit_<%= singular_table_name %>_path(<%= singular_table_name %>)
21
- td = link_to 'Destroy', <%= singular_table_name %>, data: { confirm: 'Are you sure?' }, method: :delete
22
-
23
- br
24
-
25
- = link_to 'New <%= human_name %>', new_<%= singular_table_name %>_path
@@ -1,5 +0,0 @@
1
- h1 New <%= singular_table_name %>
2
-
3
- == render 'form'
4
-
5
- = link_to 'Back', <%= index_helper %>_path
@@ -1,11 +0,0 @@
1
- p#notice = notice
2
-
3
- <% attributes.each do |attribute| -%>
4
- p
5
- strong <%= attribute.human_name %>:
6
- = @<%= singular_table_name %>.<%= attribute.name %>
7
- <% end -%>
8
-
9
- => link_to 'Edit', edit_<%= singular_table_name %>_path(@<%= singular_table_name %>)
10
- '|
11
- =< link_to 'Back', <%= index_helper %>_path
data/slim-rails.gemspec DELETED
@@ -1,34 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'slim-rails/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = 'slim-rails'
8
- spec.version = Slim::Rails::VERSION
9
- spec.authors = ["Leonardo Almeida"]
10
- spec.email = ["lalmeida08@gmail.com"]
11
-
12
- spec.summary = 'Slim templates generator for Rails 3+'
13
- spec.description = 'Provides the generator settings required for Rails 3+ to use Slim'
14
- spec.homepage = 'https://github.com/slim-template/slim-rails'
15
- spec.license = 'MIT'
16
-
17
- spec.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
- spec.files = `git ls-files`.split("\n")
19
- spec.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
20
- spec.require_paths = ['lib']
21
-
22
- spec.required_ruby_version = '>= 2.0.0'
23
-
24
- spec.add_runtime_dependency 'actionpack', ['>= 3.1']
25
- spec.add_runtime_dependency 'railties', ['>= 3.1']
26
- spec.add_runtime_dependency 'slim', ['~> 3.0']
27
-
28
- spec.add_development_dependency 'sprockets-rails'
29
- spec.add_development_dependency 'rocco'
30
- spec.add_development_dependency 'redcarpet'
31
- spec.add_development_dependency 'awesome_print'
32
- spec.add_development_dependency 'actionmailer', ['>= 3.1']
33
- spec.add_development_dependency 'appraisal'
34
- end
@@ -1,58 +0,0 @@
1
- TestApp.routes.draw do
2
- # The priority is based upon order of creation:
3
- # first created -> highest priority.
4
-
5
- # Sample of regular route:
6
- # match 'products/:id' => 'catalog#view'
7
- # Keep in mind you can assign values other than :controller and :action
8
-
9
- # Sample of named route:
10
- # match 'products/:id/purchase' => 'catalog#purchase', as: :purchase
11
- # This route can be invoked with purchase_url(id: product.id)
12
-
13
- # Sample resource route (maps HTTP verbs to controller actions automatically):
14
- # resources :products
15
-
16
- # Sample resource route with options:
17
- # resources :products do
18
- # member do
19
- # get :short
20
- # post :toggle
21
- # end
22
- #
23
- # collection do
24
- # get :sold
25
- # end
26
- # end
27
-
28
- # Sample resource route with sub-resources:
29
- # resources :products do
30
- # resources :comments, :sales
31
- # resource :seller
32
- # end
33
-
34
- # Sample resource route with more complex sub-resources
35
- # resources :products do
36
- # resources :comments
37
- # resources :sales do
38
- # get :recent, on: :collection
39
- # end
40
- # end
41
-
42
- # Sample resource route within a namespace:
43
- # namespace :admin do
44
- # # Directs /admin/products/* to Admin::ProductsController
45
- # # (app/controllers/admin/products_controller.rb)
46
- # resources :products
47
- # end
48
-
49
- # You can have the root of your site routed with "root"
50
- # just remember to delete public/index.html.
51
- # root to: "welcome#index"
52
-
53
- # See how all your routes lay out with "rake routes"
54
-
55
- # This is a legacy wild controller route that's not recommended for RESTful applications.
56
- # Note: This route will make all actions in every controller accessible via GET requests.
57
- # match ':controller(/:action(/:id(.:format)))'
58
- end
@@ -1,17 +0,0 @@
1
- require 'test_helper'
2
- require 'lib/generators/slim/testing_helper'
3
-
4
- class Slim::Generators::ControllerGeneratorTest < Rails::Generators::TestCase
5
- destination File.join(Rails.root)
6
- tests Rails::Generators::ControllerGenerator
7
- arguments %w(Account foo bar --template-engine slim)
8
-
9
- setup :prepare_destination
10
- setup :copy_routes
11
-
12
- test "should invoke template engine" do
13
- run_generator
14
- assert_file File.join("app", "views", "account", "foo.html.slim"), %r(app/views/account/foo\.html\.slim)
15
- assert_file File.join("app", "views", "account", "bar.html.slim"), %r(app/views/account/bar\.html\.slim)
16
- end
17
- end
@@ -1,70 +0,0 @@
1
- require 'test_helper'
2
- require 'lib/generators/slim/testing_helper'
3
-
4
- class Slim::Generators::MailerGeneratorTest < Rails::Generators::TestCase
5
- destination File.join(Rails.root)
6
- tests Rails::Generators::MailerGenerator
7
- arguments %w(notifier foo bar --template-engine slim)
8
-
9
- setup :prepare_destination
10
- setup :copy_routes
11
-
12
- test "should invoke template engine" do
13
- run_generator
14
-
15
- rails_version = ::Rails.version.to_s
16
-
17
- if rails_version >= '5.0'
18
- assert_file "app/views/notifier_mailer/foo.html.slim" do |view|
19
- assert_match %r(app/views/notifier_mailer/foo\.html\.slim), view
20
- assert_match(/\= @greeting/, view)
21
- end
22
-
23
- assert_file "app/views/notifier_mailer/bar.html.slim" do |view|
24
- assert_match %r(app/views/notifier_mailer/bar\.html\.slim), view
25
- assert_match(/\= @greeting/, view)
26
- end
27
-
28
- assert_file "app/views/notifier_mailer/foo.text.slim" do |view|
29
- assert_match %r(app/views/notifier_mailer/foo\.text\.slim), view
30
- assert_match(/@greeting/, view)
31
- end
32
-
33
- assert_file "app/views/notifier_mailer/bar.text.slim" do |view|
34
- assert_match %r(app/views/notifier_mailer/bar\.text\.slim), view
35
- assert_match(/@greeting/, view)
36
- end
37
- else
38
- if rails_version >= '4.2'
39
- assert_file "app/views/layouts/mailer.text.slim" do |view|
40
- assert_match(/\= yield/, view)
41
- end
42
-
43
- assert_file "app/views/layouts/mailer.html.slim" do |view|
44
- assert_match(/\= yield/, view)
45
- end
46
-
47
- assert_file "app/views/notifier/foo.html.slim" do |view|
48
- assert_match %r(app/views/notifier/foo\.html\.slim), view
49
- assert_match(/\= @greeting/, view)
50
- end
51
-
52
- assert_file "app/views/notifier/bar.html.slim" do |view|
53
- assert_match %r(app/views/notifier/bar\.html\.slim), view
54
- assert_match(/\= @greeting/, view)
55
- end
56
-
57
- end
58
-
59
- assert_file "app/views/notifier/foo.text.slim" do |view|
60
- assert_match %r(app/views/notifier/foo\.text\.slim), view
61
- assert_match(/@greeting/, view)
62
- end
63
-
64
- assert_file "app/views/notifier/bar.text.slim" do |view|
65
- assert_match %r(app/views/notifier/bar\.text\.slim), view
66
- assert_match(/@greeting/, view)
67
- end
68
- end
69
- end
70
- end
@@ -1,26 +0,0 @@
1
- require 'test_helper'
2
- require 'lib/generators/slim/testing_helper'
3
-
4
- class Slim::Generators::ScaffoldGeneratorTest < Rails::Generators::TestCase
5
- destination File.join(Rails.root)
6
- tests Rails::Generators::ScaffoldGenerator
7
- arguments %w(product_line title:string price:integer --template-engine slim --orm active-record)
8
-
9
- setup :prepare_destination
10
- setup :copy_routes
11
-
12
- test "should invoke template engine" do
13
- run_generator
14
-
15
- %w(index edit new show _form).each { |view| assert_file File.join "app", "views", "product_lines", "#{view}.html.slim" }
16
- assert_no_file File.join "app", "views", "layouts", "product_lines.html.slim"
17
- end
18
-
19
- test "should revoke template engine" do
20
- run_generator
21
- run_generator ["product_line", "--orm", "active-record"], behavior: :revoke
22
-
23
- assert_no_file File.join "app", "views", "product_lines"
24
- assert_no_file File.join "app", "views", "layouts", "product_lines.html.slim"
25
- end
26
- end
@@ -1 +0,0 @@
1
- require_generators slim: ['scaffold', 'controller', 'mailer']
@@ -1,34 +0,0 @@
1
- require 'test_helper'
2
- require 'tmpdir'
3
-
4
- class Slim::Rails::AssetsTest < ActiveSupport::TestCase
5
- def with_app(use_sprockets, code)
6
- Dir.mktmpdir do |dir|
7
- app_path = File.join(dir, 'app.rb')
8
- File.write(app_path, <<-APP)
9
- require 'rails'
10
- require 'sprockets/railtie' if #{use_sprockets}
11
- require 'slim-rails'
12
- class DummyApp < ::Rails::Application
13
- config.root = #{dir.inspect}
14
- config.assets.enabled = true if #{use_sprockets}
15
- config.eager_load = false
16
- end
17
- DummyApp.initialize!
18
- #{code}
19
- APP
20
-
21
- asset_path = File.join(dir, 'app', 'assets', 'html', 'test.slim')
22
- FileUtils.mkdir_p(File.dirname(asset_path))
23
- File.write(asset_path, ".test\n | hi")
24
-
25
- `BUNDLE_GEMFILE=#{ENV['BUNDLE_GEMFILE']} bundle exec ruby #{app_path}`
26
- end
27
- end
28
-
29
- test 'compile slim view' do
30
- assert_equal 'ok', with_app(false, 'print DummyApp.assets || "ok"')
31
- assert_equal '<div class="test">hi</div>', with_app(true, 'print DummyApp.assets["test.slim"].to_s')
32
- assert_equal '<div class="test">hi</div>', with_app(true, 'print DummyApp.assets["test", accept: "text/html"].to_s')
33
- end
34
- end
data/test/test_helper.rb DELETED
@@ -1,66 +0,0 @@
1
- require 'rubygems'
2
- require 'minitest/autorun'
3
- require 'rails'
4
- require 'rails/test_help'
5
- require 'rails/generators'
6
- require 'rails/generators/test_case'
7
- require 'slim-rails'
8
-
9
- class TestApp < Rails::Application
10
- config.root = File.dirname(__FILE__)
11
- end
12
- Rails.application = TestApp
13
-
14
- module Rails
15
- def self.root
16
- @root ||= File.expand_path(File.join(File.dirname(__FILE__), '..', 'tmp', 'rails'))
17
- end
18
- end
19
- Rails.application.config.root = Rails.root
20
-
21
- Rails::Generators.configure! Rails.application.config.generators
22
-
23
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
24
-
25
- def copy_routes
26
- routes = File.expand_path(File.join(File.dirname(__FILE__), 'fixtures', 'routes.rb'))
27
- destination = File.join(Rails.root, "config")
28
- FileUtils.mkdir_p(destination)
29
- FileUtils.cp File.expand_path(routes), destination
30
- end
31
-
32
- def assert_class(klass, content)
33
- assert content =~ /class #{klass}(\(.+\))?(.*?)\nend/m, "Expected to have class #{klass}"
34
- yield $2.strip if block_given?
35
- end
36
-
37
- def generator_list
38
- {
39
- rails: ['scaffold', 'controller', 'mailer'],
40
- slim: ['scaffold', 'controller', 'mailer']
41
- }
42
- end
43
-
44
- def path_prefix(name)
45
- case name
46
- when :rails
47
- 'rails/generators'
48
- else
49
- 'generators'
50
- end
51
- end
52
-
53
- def require_generators(generator_list)
54
- generator_list.each do |name, generators|
55
- generators.each do |generator_name|
56
- if name.to_s == 'rails' && generator_name.to_s == 'mailer'
57
- require File.join(path_prefix(name), generator_name.to_s, "#{generator_name}_generator")
58
- else
59
- require File.join(path_prefix(name), name.to_s, generator_name.to_s, "#{generator_name}_generator")
60
- end
61
- end
62
- end
63
- end
64
- alias :require_generator :require_generators
65
-
66
- require_generators generator_list