cells-rails 0.0.6 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.gitignore +7 -2
- data/.travis.yml +17 -11
- data/CHANGES.md +22 -0
- data/Gemfile +7 -1
- data/LICENSE.txt +21 -0
- data/README.md +5 -0
- data/Rakefile +3 -1
- data/cells-rails.gemspec +6 -4
- data/lib/cell/helper/asset_helper.rb +2 -0
- data/lib/cell/rails.rb +17 -2
- data/lib/cell/rails/testing.rb +11 -3
- data/lib/cell/railtie.rb +17 -6
- data/lib/cells-rails.rb +1 -0
- data/lib/cells/rails.rb +1 -4
- data/lib/cells/rails/version.rb +1 -1
- metadata +38 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a7b0dcf280b05760c17e077945620957e91f6ca8cf9384379d8d6e982efe06ae
|
4
|
+
data.tar.gz: ec0289e903975584640a1aeaf8c9417514a775d2b106c5f8d1d993894c27d51d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3fa9e93d578670b6a9f13cc7008c2a05e581c2b0fc42579a91af913cc3c9f207f7426e5a6662488c2254f29ad29404b255289bb3eaa4b0575b9101bd08a41987
|
7
|
+
data.tar.gz: 1162939f99fc4e9f4989f46624f93ed5c148e5a3be1cece4e3a5ae86669509a09f5406542ff4e489b68b2d8424b43c8040ea05ee296ab3950cf034c8dad45c1a
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -1,13 +1,19 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
-
|
8
|
-
-
|
9
|
-
|
10
|
-
-
|
11
|
-
|
12
|
-
|
13
|
-
|
3
|
+
- 2.4.7
|
4
|
+
- 2.5.6
|
5
|
+
- 2.6.4
|
6
|
+
env:
|
7
|
+
- "RAILS_VERSION=5.0"
|
8
|
+
- "RAILS_VERSION=5.1"
|
9
|
+
- "RAILS_VERSION=5.2"
|
10
|
+
- "RAILS_VERSION=6.0"
|
11
|
+
matrix:
|
12
|
+
fast_finish: true
|
13
|
+
exclude:
|
14
|
+
- rvm: 2.3.8
|
15
|
+
env: RAILS_VERSION=6.0
|
16
|
+
- rvm: 2.4.7
|
17
|
+
env: RAILS_VERSION=6.0
|
18
|
+
|
19
|
+
cache: bundler
|
data/CHANGES.md
CHANGED
@@ -1,3 +1,25 @@
|
|
1
|
+
## 0.1.1
|
2
|
+
|
3
|
+
* The `Cell.view_paths` are now set automatically for `Trailblazer::Cell`s, too, if the gem is present. This allows starting Rails in daemon mode `rails s -d` and cells finding its views.
|
4
|
+
|
5
|
+
## 0.1.0
|
6
|
+
|
7
|
+
* Support for Rails 6.0 Thank to @Szeliga
|
8
|
+
|
9
|
+
## 0.0.9
|
10
|
+
|
11
|
+
* Prevent Forwardable from printing warnings in Ruby 2.4+
|
12
|
+
|
13
|
+
## 0.0.8
|
14
|
+
|
15
|
+
* Fix testing for `rspec-cells` in combination with Rails 5.1. Thanks @tiagoamaro.
|
16
|
+
|
17
|
+
## 0.0.7
|
18
|
+
|
19
|
+
* Add `config.cells.include_template_engine = false` to turn off automatic
|
20
|
+
inclusion of, e.g., `Cell::Slim`.
|
21
|
+
* Require Cells >= 4.1.6.
|
22
|
+
|
1
23
|
## 0.0.6
|
2
24
|
|
3
25
|
* `Testing` fixed with Rails 5.
|
data/Gemfile
CHANGED
@@ -5,9 +5,15 @@ gemspec
|
|
5
5
|
|
6
6
|
# gem "my_engine", path: "engines/my_engine"
|
7
7
|
|
8
|
-
|
8
|
+
gem 'sass-rails', "~> 6.0.0"
|
9
9
|
# gem "sprockets", "~> 2.12.3"
|
10
10
|
|
11
|
+
rails_version = ENV.fetch('RAILS_VERSION','5.0')
|
12
|
+
gem "railties", "~> #{rails_version}"
|
13
|
+
gem "activerecord", "~> #{rails_version}"
|
14
|
+
|
15
|
+
gem "my_engine", path: "test/rails#{rails_version}/engines/my_engine"
|
16
|
+
|
11
17
|
group :development, :test do
|
12
18
|
gem "minitest-spec-rails"
|
13
19
|
gem "capybara_minitest_spec"
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2016 Nick Sutterer
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# Cells::Rails
|
2
|
+
[](https://travis-ci.org/trailblazer/cells-rails)
|
2
3
|
|
3
4
|
[Cells](https://github.com/apotonick/cells) is a generic view model implementation for Ruby. Cells-rails brings Rails-specific bindings.
|
4
5
|
|
@@ -18,3 +19,7 @@ Add this line to your application's Gemfile and keep it real:
|
|
18
19
|
```ruby
|
19
20
|
gem 'cells-rails'
|
20
21
|
```
|
22
|
+
|
23
|
+
## License
|
24
|
+
|
25
|
+
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
data/Rakefile
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
2
|
require "rake/testtask"
|
3
3
|
|
4
|
+
RAILS_VERSION = ENV.fetch('RAILS_VERSION','5.0')
|
5
|
+
|
4
6
|
Rake::TestTask.new(:test) do |t|
|
5
7
|
t.libs << "test"
|
6
8
|
t.libs << "lib"
|
7
|
-
t.test_files = FileList[
|
9
|
+
t.test_files = FileList["test/rails#{RAILS_VERSION}/**/*_test.rb"]
|
8
10
|
end
|
9
11
|
|
10
12
|
task :default => :test
|
data/cells-rails.gemspec
CHANGED
@@ -7,6 +7,7 @@ Gem::Specification.new do |spec|
|
|
7
7
|
spec.version = Cells::Rails::VERSION
|
8
8
|
spec.authors = ["Nick Sutterer"]
|
9
9
|
spec.email = ["apotonick@gmail.com"]
|
10
|
+
spec.license = "MIT"
|
10
11
|
|
11
12
|
spec.summary = %q{Convenient Rails support for Cells.}
|
12
13
|
spec.homepage = "http://trailblazer.to"
|
@@ -16,13 +17,14 @@ Gem::Specification.new do |spec|
|
|
16
17
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
17
18
|
spec.require_paths = ["lib"]
|
18
19
|
|
19
|
-
spec.add_dependency "cells", ">= 4.1"
|
20
|
-
spec.add_dependency "actionpack", ">=
|
20
|
+
spec.add_dependency "cells", ">= 4.1.6", "< 5.0.0"
|
21
|
+
spec.add_dependency "actionpack", ">= 5.0"
|
21
22
|
|
22
23
|
|
23
|
-
spec.add_development_dependency "bundler"
|
24
|
-
spec.add_development_dependency "rake"
|
24
|
+
spec.add_development_dependency "bundler"
|
25
|
+
spec.add_development_dependency "rake"
|
25
26
|
spec.add_development_dependency "minitest"
|
26
27
|
spec.add_development_dependency "rails"
|
27
28
|
spec.add_development_dependency "cells-erb"
|
29
|
+
spec.add_development_dependency "sass-rails"
|
28
30
|
end
|
data/lib/cell/rails.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'active_support/concern'
|
1
2
|
module Cell
|
2
3
|
def self.rails_version
|
3
4
|
Gem::Version.new(ActionPack::VERSION::STRING)
|
@@ -45,9 +46,9 @@ module Cell
|
|
45
46
|
# include ActionController::RequestForgeryProtection
|
46
47
|
included do
|
47
48
|
extend Uber::Delegates
|
48
|
-
delegates :parent_controller, :session, :params, :request, :config, :env, :url_options
|
49
|
+
delegates :parent_controller, :session, :params, :request, :config, :env, :url_options, :default_url_options
|
49
50
|
# forgery protection.
|
50
|
-
delegates :parent_controller, :
|
51
|
+
delegates :parent_controller, :request_forgery_protection_token
|
51
52
|
end
|
52
53
|
|
53
54
|
def call(*)
|
@@ -67,6 +68,20 @@ module Cell
|
|
67
68
|
::ActionController::Base.cache_store
|
68
69
|
end
|
69
70
|
|
71
|
+
# In Ruby 2.4.0+, Forwardable prints a warning when you delegate
|
72
|
+
# to a private or protected method - so `delegates :protect_against_forgery?`
|
73
|
+
# or `delegates :form_authenticity_token` will print warnings all
|
74
|
+
# over the place
|
75
|
+
#
|
76
|
+
# This workaround prevents warnings being printed
|
77
|
+
def protect_against_forgery?
|
78
|
+
controller.send(:protect_against_forgery?)
|
79
|
+
end
|
80
|
+
|
81
|
+
def form_authenticity_token(*args)
|
82
|
+
controller.send(:form_authenticity_token, *args)
|
83
|
+
end
|
84
|
+
|
70
85
|
module ClassMethods
|
71
86
|
def expand_cache_key(key)
|
72
87
|
::ActiveSupport::Cache.expand_cache_key(key, :cells)
|
data/lib/cell/rails/testing.rb
CHANGED
@@ -2,17 +2,25 @@ module Cell
|
|
2
2
|
module RailsExtensions
|
3
3
|
# This modules overrides Cell::Testing#controller_for and provides Rails-specific logic.
|
4
4
|
module Testing
|
5
|
+
RAILS_7_0 = Gem::Version.new("7.0.0")
|
6
|
+
RAILS_5_1 = Gem::Version.new("5.1.0")
|
7
|
+
RAILS_5_0 = Gem::Version.new("5.0.0")
|
8
|
+
|
5
9
|
def controller_for(controller_class)
|
6
10
|
return unless controller_class
|
7
11
|
|
8
12
|
controller_class.new.tap do |ctl|
|
9
|
-
ctl.request = action_controller_test_request
|
13
|
+
ctl.request = action_controller_test_request(controller_class)
|
10
14
|
ctl.instance_variable_set :@routes, ::Rails.application.routes.url_helpers
|
11
15
|
end
|
12
16
|
end
|
13
17
|
|
14
|
-
def action_controller_test_request
|
15
|
-
|
18
|
+
def action_controller_test_request(controller_class)
|
19
|
+
version = ::Rails.gem_version
|
20
|
+
|
21
|
+
if version >= RAILS_5_1 && version < RAILS_7_0
|
22
|
+
::ActionController::TestRequest.create(controller_class)
|
23
|
+
elsif version >= RAILS_5_0 && version < RAILS_5_1
|
16
24
|
::ActionController::TestRequest.create
|
17
25
|
else
|
18
26
|
::ActionController::TestRequest.new
|
data/lib/cell/railtie.rb
CHANGED
@@ -14,6 +14,9 @@ module Cell
|
|
14
14
|
|
15
15
|
# ruthlessly stolen from the zurb-foundation gem.
|
16
16
|
initializer "cells.update_asset_paths" do |app|
|
17
|
+
# Add Rails.root to view_paths
|
18
|
+
Cell::ViewModel.view_paths = [Rails.root.join("app", "cells")]
|
19
|
+
|
17
20
|
Array(app.config.cells.with_assets).each do |cell_class|
|
18
21
|
# puts "@@@@@ #{cell_class.camelize.constantize.prefixes}"
|
19
22
|
app.config.assets.paths += cell_class.camelize.constantize.prefixes # Song::Cell.prefixes
|
@@ -54,15 +57,17 @@ module Cell
|
|
54
57
|
end
|
55
58
|
end
|
56
59
|
|
57
|
-
|
58
|
-
|
60
|
+
IncludeTemplateModules = ->(app) do
|
61
|
+
return if app.config.cells.include_template_engine == false
|
62
|
+
|
59
63
|
# yepp, this is happening. saves me a lot of coding in each extension.
|
60
|
-
ViewModel.send(:include, Cell::Erb)
|
61
|
-
ViewModel.send(:include, Cell::Haml)
|
64
|
+
ViewModel.send(:include, Cell::Erb) if Cell.const_defined?(:Erb, false)
|
65
|
+
ViewModel.send(:include, Cell::Haml) if Cell.const_defined?(:Haml, false)
|
62
66
|
ViewModel.send(:include, Cell::Hamlit) if Cell.const_defined?(:Hamlit, false)
|
63
|
-
ViewModel.send(:include, Cell::Slim)
|
67
|
+
ViewModel.send(:include, Cell::Slim) if Cell.const_defined?(:Slim, false)
|
64
68
|
end
|
65
|
-
|
69
|
+
|
70
|
+
initializer( "cells.include_template_module", after: "cells.include_default_helpers", &IncludeTemplateModules)
|
66
71
|
|
67
72
|
initializer("cells.development") do |app|
|
68
73
|
if Rails.env == "development"
|
@@ -71,6 +76,12 @@ module Cell
|
|
71
76
|
end
|
72
77
|
end
|
73
78
|
|
79
|
+
initializer "trailblazer.cells.update_view_paths" do |app|
|
80
|
+
return unless Object.const_defined?(:Trailblazer) && Trailblazer.const_defined?(:Cell)
|
81
|
+
# Add Rails.root to view_paths
|
82
|
+
Trailblazer::Cell.view_paths = [Rails.root.join("app", "concepts")]
|
83
|
+
end
|
84
|
+
|
74
85
|
rake_tasks do
|
75
86
|
load "tasks/cells.rake"
|
76
87
|
end
|
data/lib/cells-rails.rb
CHANGED
data/lib/cells/rails.rb
CHANGED
data/lib/cells/rails/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cells-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Sutterer
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cells
|
@@ -16,56 +16,62 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 4.1.6
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 5.0.0
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
27
|
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
29
|
+
version: 4.1.6
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 5.0.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: actionpack
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
37
|
- - ">="
|
32
38
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
39
|
+
version: '5.0'
|
34
40
|
type: :runtime
|
35
41
|
prerelease: false
|
36
42
|
version_requirements: !ruby/object:Gem::Requirement
|
37
43
|
requirements:
|
38
44
|
- - ">="
|
39
45
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
46
|
+
version: '5.0'
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: bundler
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
|
-
- - "
|
51
|
+
- - ">="
|
46
52
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
53
|
+
version: '0'
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
51
57
|
requirements:
|
52
|
-
- - "
|
58
|
+
- - ">="
|
53
59
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
60
|
+
version: '0'
|
55
61
|
- !ruby/object:Gem::Dependency
|
56
62
|
name: rake
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
58
64
|
requirements:
|
59
|
-
- - "
|
65
|
+
- - ">="
|
60
66
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
67
|
+
version: '0'
|
62
68
|
type: :development
|
63
69
|
prerelease: false
|
64
70
|
version_requirements: !ruby/object:Gem::Requirement
|
65
71
|
requirements:
|
66
|
-
- - "
|
72
|
+
- - ">="
|
67
73
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
74
|
+
version: '0'
|
69
75
|
- !ruby/object:Gem::Dependency
|
70
76
|
name: minitest
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +114,20 @@ dependencies:
|
|
108
114
|
- - ">="
|
109
115
|
- !ruby/object:Gem::Version
|
110
116
|
version: '0'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: sass-rails
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
111
131
|
description:
|
112
132
|
email:
|
113
133
|
- apotonick@gmail.com
|
@@ -119,6 +139,7 @@ files:
|
|
119
139
|
- ".travis.yml"
|
120
140
|
- CHANGES.md
|
121
141
|
- Gemfile
|
142
|
+
- LICENSE.txt
|
122
143
|
- README.md
|
123
144
|
- Rakefile
|
124
145
|
- cells-rails.gemspec
|
@@ -149,7 +170,8 @@ files:
|
|
149
170
|
- lib/rails/generators/test_unit/concept/concept_generator.rb
|
150
171
|
- lib/rails/generators/test_unit/concept/templates/unit_test.rb.erb
|
151
172
|
homepage: http://trailblazer.to
|
152
|
-
licenses:
|
173
|
+
licenses:
|
174
|
+
- MIT
|
153
175
|
metadata: {}
|
154
176
|
post_install_message:
|
155
177
|
rdoc_options: []
|
@@ -167,7 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
167
189
|
version: '0'
|
168
190
|
requirements: []
|
169
191
|
rubyforge_project:
|
170
|
-
rubygems_version: 2.
|
192
|
+
rubygems_version: 2.7.6
|
171
193
|
signing_key:
|
172
194
|
specification_version: 4
|
173
195
|
summary: Convenient Rails support for Cells.
|