slim-rails 3.1.3 → 3.6.2

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 (43) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +40 -0
  3. data/README.md +12 -6
  4. data/lib/generators/slim/controller/controller_generator.rb +3 -3
  5. data/lib/generators/slim/mailer/mailer_generator.rb +3 -2
  6. data/lib/generators/slim/mailer/templates/view.html.slim +1 -1
  7. data/lib/generators/slim/mailer/templates/view.text.slim +1 -1
  8. data/lib/generators/slim/scaffold/legacy_templates/edit.html.slim.tt +7 -0
  9. data/lib/generators/slim/scaffold/{templates/index.html.slim → legacy_templates/index.html.slim.tt} +4 -4
  10. data/lib/generators/slim/scaffold/legacy_templates/new.html.slim.tt +5 -0
  11. data/lib/generators/slim/scaffold/{templates/show.html.slim → legacy_templates/show.html.slim.tt} +3 -3
  12. data/lib/generators/slim/scaffold/scaffold_generator.rb +14 -5
  13. data/lib/generators/slim/scaffold/templates/_form.html.slim.tt +28 -0
  14. data/lib/generators/slim/scaffold/templates/edit.html.slim.tt +10 -0
  15. data/lib/generators/slim/scaffold/templates/index.html.slim.tt +11 -0
  16. data/lib/generators/slim/scaffold/templates/new.html.slim.tt +8 -0
  17. data/lib/generators/slim/scaffold/templates/partial.html.slim.tt +14 -0
  18. data/lib/generators/slim/scaffold/templates/show.html.slim.tt +10 -0
  19. data/lib/slim-rails/register_engine.rb +26 -23
  20. data/lib/slim-rails/version.rb +1 -1
  21. data/lib/slim-rails.rb +8 -8
  22. metadata +64 -42
  23. data/.gitignore +0 -20
  24. data/.travis.yml +0 -33
  25. data/Appraisals +0 -21
  26. data/Gemfile +0 -3
  27. data/Rakefile +0 -12
  28. data/gemfiles/rails_3.gemfile +0 -9
  29. data/gemfiles/rails_4.1.gemfile +0 -7
  30. data/gemfiles/rails_4.2.gemfile +0 -7
  31. data/gemfiles/rails_4.gemfile +0 -7
  32. data/gemfiles/rails_5.gemfile +0 -7
  33. data/lib/generators/slim/scaffold/templates/edit.html.slim +0 -8
  34. data/lib/generators/slim/scaffold/templates/new.html.slim +0 -5
  35. data/slim-rails.gemspec +0 -34
  36. data/test/fixtures/routes.rb +0 -58
  37. data/test/lib/generators/slim/controller_generator_test.rb +0 -17
  38. data/test/lib/generators/slim/mailer_generator_test.rb +0 -70
  39. data/test/lib/generators/slim/scaffold_generator_test.rb +0 -26
  40. data/test/lib/generators/slim/testing_helper.rb +0 -1
  41. data/test/lib/slim-rails_assets_test.rb +0 -34
  42. data/test/test_helper.rb +0 -66
  43. /data/lib/generators/slim/scaffold/{templates/_form.html.slim → legacy_templates/_form.html.slim.tt} +0 -0
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: 23256a5c386378763c0d2b7a8b521c0678266b8e5e4c1f6a7d979d6aa1a324eb
4
+ data.tar.gz: af9ad07273823090a9f658d546dcd4377e1d1e4a5d1b3dc3cfc8295d32b560aa
5
5
  SHA512:
6
- metadata.gz: 969794e2f204ec1fd1b8050a94bb56c367b84ba16498b950926437f108511f8c4eeefae30c943fb40de98cbf4bb4f8ba82ce499abbdf8ec01285a41fa98f7b76
7
- data.tar.gz: cbd7b5d52d931d55c3ec7cabd4f196c2f75aa18f151f846eaa34219bd73d1b8109544a3b2a87c5eafcd57752bb2df3c315624f6621a52c42b18e9558ce3b5d3b
6
+ metadata.gz: be908a61dc57ec4577bb12a5032cb12ff225537cd0fb1981e62454c1eb7537f16cf04518ba5d928352f94dc0d71e53649f411aca5e87bb50949a634849112cd3
7
+ data.tar.gz: aff344cd89822d7410df81f8704a06558cafddb60519ae3f054a0315be52ab272f4d870d2f2e66324cbfce12c9c56847a07880e0a0e4133a98b8e8f5e3539260
data/CHANGELOG.md CHANGED
@@ -1,3 +1,43 @@
1
+ ## 3.6.1 (February 14, 2023)
2
+
3
+ - Fix to avoid depending on the failed Slim 5.0.0 release ([#188])
4
+
5
+ [#188]: https://github.com/slim-template/slim-rails/pull/188
6
+
7
+ ## 3.6.0 (February 14, 2023)
8
+
9
+ - Add support for Slim 5 ([#185])
10
+
11
+ Thanks https://github.com/michaelbaudino ([#185])
12
+
13
+ [#185]: https://github.com/slim-template/slim-rails/pull/185
14
+
15
+ ## 3.5.0 (May 2022)
16
+
17
+ * Restored legacy templates for Rails < 7
18
+ * Updated Appraisals to supported Rails versions
19
+ * Replace Travis CI with Github Actions.
20
+
21
+ Thanks https://github.com/davidwessman (#180)
22
+
23
+
24
+ ## 3.4.0 (March 2022)
25
+
26
+ * Updated templates to Rails 7 style (thanks github.com/viktorianer) (#178)
27
+
28
+
29
+ ## 3.3.0 (July 19, 2021)
30
+
31
+ * Enabled asset helpers in precompiled templates (#135)
32
+ * Tested with Rails 6.0, 6.1 and Ruby 3.0
33
+ * Improved CI and tests with Sprockets 4
34
+
35
+
36
+ ## 3.2.0 (October 7, 2018)
37
+
38
+ * Support for Slim 4
39
+
40
+
1
41
  ## 3.1.3 (April 3, 2017)
2
42
 
3
43
  * Improved compatibility with Sprockets 4
data/README.md CHANGED
@@ -1,8 +1,6 @@
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://github.com/slim-template/slim-rails/actions/workflows/main.yml/badge.svg)](https://github.com/slim-template/slim-rails/actions/workflows/main.yml) [![Code Climate](https://codeclimate.com/github/slim-template/slim-rails/badges/gpa.svg)](https://codeclimate.com/github/slim-template/slim-rails)
2
2
 
3
- slim-rails provides Slim generators for Rails 3+. It was based on
4
- [haml-rails](http://github.com/indirect/haml-rails) and it does basically the
5
- same:
3
+ slim-rails provides Slim generators for Rails:
6
4
 
7
5
  * Any time you generate a controller or scaffold, you'll get Slim templates
8
6
  (instead of ERB)
@@ -18,6 +16,14 @@ gem "slim-rails"
18
16
 
19
17
  And that's it.
20
18
 
21
- From the version 0.2.0, there is no need to include gem "slim" in your Gemfile.
19
+ Every time you generate a controller or scaffold, you'll get Slim templates.
20
+
21
+ If you have existing `.erb` templates, check out our guide [How to convert your `.erb` templates to `.slim`](https://github.com/slim-template/slim/wiki/Template-Converters-ERB-to-SLIM) on how to achieve this.
22
+
23
+ This gem is [tested with Ruby on Rails 5.2+](/.github/workflows/main.yml).
22
24
 
23
- Every time you generate a controller or scaffold, you'll get Slim templates.
25
+ ## History
26
+
27
+ `slim-rails` was based on [haml-rails](https://github.com/haml/haml-rails) and it does basically the same thing.
28
+
29
+ From the version 0.2.0, there is no need to include gem "slim" in your Gemfile.
@@ -1,15 +1,15 @@
1
- require 'rails/generators/erb/controller/controller_generator'
1
+ require "rails/generators/erb/controller/controller_generator"
2
2
 
3
3
  module Slim
4
4
  module Generators
5
5
  class ControllerGenerator < Erb::Generators::ControllerGenerator
6
- source_root File.expand_path(File.join('..', 'templates'), __FILE__)
6
+ source_root File.expand_path(File.join("..", "templates"), __FILE__)
7
7
 
8
8
  protected
9
+
9
10
  def handler
10
11
  :slim
11
12
  end
12
-
13
13
  end
14
14
  end
15
15
  end
@@ -1,11 +1,12 @@
1
- require 'rails/generators/erb/mailer/mailer_generator'
1
+ require "rails/generators/erb/mailer/mailer_generator"
2
2
 
3
3
  module Slim
4
4
  module Generators
5
5
  class MailerGenerator < Erb::Generators::MailerGenerator
6
- source_root File.expand_path(File.join('..', 'templates'), __FILE__)
6
+ source_root File.expand_path(File.join("..", "templates"), __FILE__)
7
7
 
8
8
  protected
9
+
9
10
  def format
10
11
  :text
11
12
  end
@@ -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 %>
@@ -0,0 +1,7 @@
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
@@ -16,10 +16,10 @@ table
16
16
  <% attributes.each do |attribute| -%>
17
17
  td = <%= singular_table_name %>.<%= attribute.name %>
18
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
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
22
 
23
23
  br
24
24
 
25
- = link_to 'New <%= human_name %>', new_<%= singular_table_name %>_path
25
+ = link_to "New <%= human_name %>", new_<%= singular_table_name %>_path
@@ -0,0 +1,5 @@
1
+ h1 New <%= singular_table_name %>
2
+
3
+ == render "form"
4
+
5
+ = link_to "Back", <%= index_helper %>_path
@@ -1,11 +1,11 @@
1
1
  p#notice = notice
2
-
3
2
  <% attributes.each do |attribute| -%>
3
+
4
4
  p
5
5
  strong <%= attribute.human_name %>:
6
6
  = @<%= singular_table_name %>.<%= attribute.name %>
7
7
  <% end -%>
8
8
 
9
- => link_to 'Edit', edit_<%= singular_table_name %>_path(@<%= singular_table_name %>)
9
+ => link_to "Edit", edit_<%= singular_table_name %>_path(@<%= singular_table_name %>)
10
10
  '|
11
- =< link_to 'Back', <%= index_helper %>_path
11
+ =< link_to "Back", <%= index_helper %>_path
@@ -1,22 +1,31 @@
1
- require 'rails/generators/erb/scaffold/scaffold_generator'
1
+ require "rails/generators/erb/scaffold/scaffold_generator"
2
2
 
3
3
  module Slim
4
4
  module Generators
5
- class ScaffoldGenerator < Erb::Generators::ScaffoldGenerator
6
- source_root File.expand_path(File.join('..', 'templates'), __FILE__)
5
+ class ScaffoldGenerator < Erb::Generators::ScaffoldGenerator # :nodoc:
6
+ if ::Rails::VERSION::MAJOR >= 7
7
+ source_root File.expand_path(File.join("..", "templates"), __FILE__)
8
+ else
9
+ source_root File.expand_path(File.join("..", "legacy_templates"), __FILE__)
10
+ end
7
11
 
8
12
  def copy_view_files
9
13
  available_views.each do |view|
10
14
  filename = filename_with_extensions view
11
- template "#{view}.html.slim", File.join('app', 'views', controller_file_path, filename)
15
+ template "#{view}.html.slim", File.join("app", "views", controller_file_path, filename)
16
+ end
17
+
18
+ if ::Rails::VERSION::MAJOR >= 7
19
+ template "partial.html.slim", File.join("app/views", controller_file_path, "_#{singular_name}.html.slim")
12
20
  end
13
21
  end
14
22
 
15
23
  hook_for :form_builder, as: :scaffold
16
24
 
17
25
  protected
26
+
18
27
  def available_views
19
- ['index', 'edit', 'show', 'new', '_form']
28
+ %w[index edit show new _form]
20
29
  end
21
30
 
22
31
  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.6.2"
4
4
  end
5
5
  end
data/lib/slim-rails.rb CHANGED
@@ -1,19 +1,19 @@
1
- require 'slim-rails/version'
2
- require 'rails'
3
- require 'slim'
4
- require 'slim-rails/register_engine'
1
+ require "slim-rails/version"
2
+ require "rails"
3
+ require "slim"
4
+ require "slim-rails/register_engine"
5
5
 
6
6
  module Slim
7
7
  module Rails
8
8
  class Railtie < ::Rails::Railtie
9
9
  config.app_generators.template_engine :slim
10
10
 
11
- initializer 'slim_rails.configure_template_digestor' do |app|
11
+ initializer "slim_rails.configure_template_digestor" do |app|
12
12
  Slim::Rails::RegisterEngine.register_engine(app, config)
13
13
 
14
14
  ActiveSupport.on_load(:action_view) do
15
15
  ActiveSupport.on_load(:after_initialize) do
16
- begin
16
+ begin # rubocop:disable Style/RedundantBegin
17
17
  if defined?(CacheDigests::DependencyTracker)
18
18
  # 'cache_digests' gem being used (overrides Rails 4 implementation)
19
19
  CacheDigests::DependencyTracker.register_tracker :slim, CacheDigests::DependencyTracker::ERBTracker
@@ -22,9 +22,9 @@ module Slim
22
22
  # recalculate cache digest keys for each request
23
23
  CacheDigests::TemplateDigestor.cache = ActiveSupport::Cache::NullStore.new
24
24
  end
25
- elsif ::Rails.version.to_s >= '4.0'
25
+ elsif ::Rails.version.to_s >= "4.0"
26
26
  # will only apply if Rails 4, which includes 'action_view/dependency_tracker'
27
- require 'action_view/dependency_tracker'
27
+ require "action_view/dependency_tracker"
28
28
  ActionView::DependencyTracker.register_tracker :slim, ActionView::DependencyTracker::ERBTracker
29
29
  end
30
30
  rescue
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.6.2
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: 2023-03-09 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: actionpack
@@ -42,16 +43,28 @@ 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.0
52
+ - - "<"
53
+ - !ruby/object:Gem::Version
54
+ version: '6.0'
48
55
  type: :runtime
49
56
  prerelease: false
50
57
  version_requirements: !ruby/object:Gem::Requirement
51
58
  requirements:
52
- - - "~>"
59
+ - - ">="
53
60
  - !ruby/object:Gem::Version
54
61
  version: '3.0'
62
+ - - "!="
63
+ - !ruby/object:Gem::Version
64
+ version: 5.0.0
65
+ - - "<"
66
+ - !ruby/object:Gem::Version
67
+ version: '6.0'
55
68
  - !ruby/object:Gem::Dependency
56
69
  name: sprockets-rails
57
70
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +79,20 @@ dependencies:
66
79
  - - ">="
67
80
  - !ruby/object:Gem::Version
68
81
  version: '0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: slim_lint
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: 0.24.0
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: 0.24.0
69
96
  - !ruby/object:Gem::Dependency
70
97
  name: rocco
71
98
  requirement: !ruby/object:Gem::Requirement
@@ -136,26 +163,31 @@ dependencies:
136
163
  - - ">="
137
164
  - !ruby/object:Gem::Version
138
165
  version: '0'
139
- description: Provides the generator settings required for Rails 3+ to use Slim
166
+ - !ruby/object:Gem::Dependency
167
+ name: standardrb
168
+ requirement: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ type: :development
174
+ prerelease: false
175
+ version_requirements: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ description: Provides the generator settings required for Rails to use Slim
140
181
  email:
141
182
  - lalmeida08@gmail.com
183
+ - janusz.m@gmail.com
142
184
  executables: []
143
185
  extensions: []
144
186
  extra_rdoc_files: []
145
187
  files:
146
- - ".gitignore"
147
- - ".travis.yml"
148
- - Appraisals
149
188
  - CHANGELOG.md
150
- - Gemfile
151
189
  - LICENSE
152
190
  - 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
191
  - lib/generators/slim/controller/controller_generator.rb
160
192
  - lib/generators/slim/controller/templates/view.html.slim
161
193
  - lib/generators/slim/mailer/mailer_generator.rb
@@ -163,28 +195,26 @@ files:
163
195
  - lib/generators/slim/mailer/templates/layout.text.slim
164
196
  - lib/generators/slim/mailer/templates/view.html.slim
165
197
  - lib/generators/slim/mailer/templates/view.text.slim
198
+ - lib/generators/slim/scaffold/legacy_templates/_form.html.slim.tt
199
+ - lib/generators/slim/scaffold/legacy_templates/edit.html.slim.tt
200
+ - lib/generators/slim/scaffold/legacy_templates/index.html.slim.tt
201
+ - lib/generators/slim/scaffold/legacy_templates/new.html.slim.tt
202
+ - lib/generators/slim/scaffold/legacy_templates/show.html.slim.tt
166
203
  - 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
204
+ - lib/generators/slim/scaffold/templates/_form.html.slim.tt
205
+ - lib/generators/slim/scaffold/templates/edit.html.slim.tt
206
+ - lib/generators/slim/scaffold/templates/index.html.slim.tt
207
+ - lib/generators/slim/scaffold/templates/new.html.slim.tt
208
+ - lib/generators/slim/scaffold/templates/partial.html.slim.tt
209
+ - lib/generators/slim/scaffold/templates/show.html.slim.tt
172
210
  - lib/slim-rails.rb
173
211
  - lib/slim-rails/register_engine.rb
174
212
  - 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
213
  homepage: https://github.com/slim-template/slim-rails
184
214
  licenses:
185
215
  - MIT
186
216
  metadata: {}
187
- post_install_message:
217
+ post_install_message:
188
218
  rdoc_options: []
189
219
  require_paths:
190
220
  - lib
@@ -199,16 +229,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
199
229
  - !ruby/object:Gem::Version
200
230
  version: '0'
201
231
  requirements: []
202
- rubyforge_project:
203
- rubygems_version: 2.6.13
204
- signing_key:
232
+ rubygems_version: 3.4.7
233
+ signing_key:
205
234
  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
235
+ summary: Slim templates generator for Rails
236
+ 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,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,5 +0,0 @@
1
- h1 New <%= singular_table_name %>
2
-
3
- == render 'form'
4
-
5
- = 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