dry-view 0.7.0 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5484205327cc47a66db6ae6df71a2e6647a690b8709aaf8ccbe3be80f7416a99
4
- data.tar.gz: 10cb4443866ab17bcd16d90de09e733f3569d3b95ebf84bcffaaebaab068f964
3
+ metadata.gz: 5e819c2e7fc0b6fe2aed059b2d63993b2e107e7d9b682652dc9a0dedefdf7458
4
+ data.tar.gz: e45c5c695005d30eb755ccffd22efc5bbdf7c91b018f4c2fe859cb6b015f70bc
5
5
  SHA512:
6
- metadata.gz: 9bd666e31aa5078cd99ed81c3934ba32969c709657ff53efc2e24e8902c9758fb3824c8e665184a24c14d45e182a4af950007764029e9c7715994563749f9222
7
- data.tar.gz: 9ce17b5ef3be59a4de48acc9c084c1803387000f2c18339b1b39b93aaa3412ce013755e03435dca6525b72be6f919f29580b98f87dac0f7d2754208cd8476adf
6
+ metadata.gz: a4797bca5d6dba8ba676794d9ff21c531c1ee303a0af87f924ee09e89c9faadc898f5b1dc9d24731c32e62d5b5c031efa4b6f8a7062ab30bd3f7ea4397eac7b2
7
+ data.tar.gz: 60fe4d2131720fd19cebe465283f06f05abb0247b094fc946ff96ac9b0b77c5962561ee68da1dd067876ace1d5def0caccdf18e7598a25800cf199aad5f36772
data/CHANGELOG.md CHANGED
@@ -1,9 +1,30 @@
1
- # 0.7.0 / 2019-03-06
1
+ <!--- DO NOT EDIT THIS FILE - IT'S AUTOMATICALLY GENERATED VIA DEVTOOLS --->
2
+
3
+ ## 0.7.1 2021-02-08
4
+
5
+
6
+ ### Fixed
7
+
8
+ - Template not found errors properly show configured paths (@adam12 in #144)
9
+
10
+ ### Changed
11
+
12
+ - Compatible with Ruby 2.7/3.0 keyword argument handling (@flash-gordon in 4e7cefb)
13
+ - dry-equalizer dependency dropped in favor of dry-core (@solnic)
14
+
15
+ [Compare v0.7.0...v0.7.1](https://github.com/dry-rb/dry-view/compare/v0.7.0...v0.7.1)
16
+
17
+ ## 0.7.0 2019-03-06
18
+
2
19
 
3
20
  ### Added
4
21
 
5
22
  - Raise a `Dry::View::UndefinedConfigError` when a view is called but no paths have been configured (timriley in [#130][pr130])
6
23
 
24
+ ### Fixed
25
+
26
+ - Avoid a `SystemStackError` when a view is configured with a template that cannot be found on the filesystem (timriley in [#129][pr129])
27
+
7
28
  ### Changed
8
29
 
9
30
  - [BREAKING] Move `Dry::View::Renderer::TemplateNotFoundError` to `Dry::View::TemplateNotFoundError` (timriley in [#130][pr130])
@@ -12,17 +33,10 @@
12
33
  - Stop searching in `shared/` subdirectories when rendering a view's template (as opposed to partials) (timriley in [#130][pr130])
13
34
  - Adjust template lookup cache keys to ensure no false hits (timriley in [#130][pr130])
14
35
 
15
- ### Fixed
16
-
17
- - Avoid a `SystemStackError` when a view is configured with a template that cannot be found on the filesystem (timriley in [#129][pr129])
18
-
19
36
  [Compare v0.6.0...v0.7.0](https://github.com/dry-rb/dry-view/compare/v0.6.0...v0.7.0)
20
37
 
38
+ ## 0.6.0 2019-01-30
21
39
 
22
- [pr129]: https://github.com/dry-rb/dry-view/pull/129
23
- [pr130]: https://github.com/dry-rb/dry-view/pull/130
24
-
25
- # 0.6.0 / 2019-01-30
26
40
 
27
41
  ### Added
28
42
 
@@ -37,6 +51,10 @@
37
51
  - Added "Tilt adapter" layer, to ensure a rendering engine compatible with dry-view's features is being used. Added adapters for "haml" and "erb" templates to ensure that "hamlit-block" and "erbse" are required and used as engines (unlike their more common counterparts, both of these engines support the implicit block capturing that is a central part of dry-view rendering behaviour) (timriley in [#106][pr106])
38
52
  - Added `renderer_engine_mapping` setting to View, which allows an explicit engine class to be provided for the rendering of a given type of template (e.g. `config.renderer_engine_mapping = {erb: Tilt::ErubiTemplate}`) (timriley in [#106][pr106])
39
53
 
54
+ ### Fixed
55
+
56
+ - Preserve renderer options when chdir-ing (timriley in [889ac7b](https://github.com/dry-rb/dry-view/commit/889ac7b))
57
+
40
58
  ### Changed
41
59
 
42
60
  - [BREAKING] `Dry::View::Controller` renamed to `Dry::View` (timriley in [#115][pr115])
@@ -48,30 +66,9 @@
48
66
  - Attribute decoration in `Part` now achieved via a prepended module, which means it is possible to decorate an attribute provided by an instance method directly on the part class, which wasn't possible with the previous `method_missing`-based approach (timriley in [#110][pr110])
49
67
  - `Part` classes can be initialized with missing `name:` and `rendering:` values, which can be useful for unit testing Part methods that don't use any rendering facilities (timriley in [#116][pr116])
50
68
 
51
- ### Fixed
52
-
53
- - Preserve renderer options when chdir-ing (timriley in [889ac7b](https://github.com/dry-rb/dry-view/commit/889ac7b))
69
+ [Compare v0.5.4...v0.6.0](https://github.com/dry-rb/dry-view/compare/v0.5.4...v0.6.0)
54
70
 
55
- [Compare v0.5.3...v0.6.0](https://github.com/dry-rb/dry-view/compare/v0.5.3...v0.6.0)
56
-
57
- [pr72]: https://github.com/dry-rb/dry-view/pull/72
58
- [pr80]: https://github.com/dry-rb/dry-view/pull/80
59
- [pr86]: https://github.com/dry-rb/dry-view/pull/86
60
- [pr87]: https://github.com/dry-rb/dry-view/pull/87
61
- [pr88]: https://github.com/dry-rb/dry-view/pull/88
62
- [pr89]: https://github.com/dry-rb/dry-view/pull/89
63
- [pr90]: https://github.com/dry-rb/dry-view/pull/90
64
- [pr91]: https://github.com/dry-rb/dry-view/pull/91
65
- [pr97]: https://github.com/dry-rb/dry-view/pull/97
66
- [pr98]: https://github.com/dry-rb/dry-view/pull/98
67
- [pr106]: https://github.com/dry-rb/dry-view/pull/106
68
- [pr110]: https://github.com/dry-rb/dry-view/pull/110
69
- [pr115]: https://github.com/dry-rb/dry-view/pull/115
70
- [pr116]: https://github.com/dry-rb/dry-view/pull/116
71
- [pr118]: https://github.com/dry-rb/dry-view/pull/118
72
- [pr119]: https://github.com/dry-rb/dry-view/pull/119
73
-
74
- # 0.5.4 / 2019-01-06 [YANKED 2019-01-18]
71
+ ## 0.5.4 2019-01-06
75
72
 
76
73
  This version was yanked due to the release accidentally containing a batch of breaking changes from master.
77
74
 
@@ -79,7 +76,11 @@ This version was yanked due to the release accidentally containing a batch of br
79
76
 
80
77
  - Preserve renderer options when chdir-ing (timriley in [889ac7b](https://github.com/dry-rb/dry-view/commit/889ac7b))
81
78
 
82
- # 0.5.3 / 2018-10-22
79
+
80
+ [Compare v0.5.3...v0.5.4](https://github.com/dry-rb/dry-view/compare/v0.5.3...v0.5.4)
81
+
82
+ ## 0.5.3 2018-10-22
83
+
83
84
 
84
85
  ### Added
85
86
 
@@ -91,10 +92,8 @@ This version was yanked due to the release accidentally containing a batch of br
91
92
 
92
93
  [Compare v0.5.2...v0.5.3](https://github.com/dry-rb/dry-view/compare/v0.5.2...v0.5.3)
93
94
 
94
- [pr62]: https://github.com/dry-rb/dry-view/pull/62
95
- [pr63]: https://github.com/dry-rb/dry-view/pull/63
95
+ ## 0.5.2 2018-06-13
96
96
 
97
- # 0.5.2 / 2018-06-13
98
97
 
99
98
  ### Changed
100
99
 
@@ -102,24 +101,29 @@ This version was yanked due to the release accidentally containing a batch of br
102
101
 
103
102
  [Compare v0.5.1...v0.5.2](https://github.com/dry-rb/dry-view/compare/v0.5.1...v0.5.2)
104
103
 
105
- # 0.5.1 / 2018-02-20
104
+ ## 0.5.1 2018-02-20
105
+
106
106
 
107
107
  ### Added
108
108
 
109
109
  - Exposures are inherited from parent view controller classes (GustavoCaso)
110
110
 
111
+
111
112
  [Compare v0.5.0...v0.5.1](https://github.com/dry-rb/dry-view/compare/v0.5.0...v0.5.1)
112
113
 
113
- # 0.5.0 / 2018-01-23
114
+ ## 0.5.0 2018-01-23
115
+
114
116
 
115
117
  ### Added
116
118
 
117
119
  - Support for parts with decorated attributes (timriley + GustavoCaso)
118
120
  - Ability to easily create another part instance via `Part#new` (GustavoCaso)
119
121
 
122
+
120
123
  [Compare v0.4.0...v0.5.0](https://github.com/dry-rb/dry-view/compare/v0.4.0...v0.5.0)
121
124
 
122
- # 0.4.0 / 2017-11-01
125
+ ## 0.4.0 2017-11-01
126
+
123
127
 
124
128
  ### Added
125
129
 
@@ -133,35 +137,52 @@ This version was yanked due to the release accidentally containing a batch of br
133
137
  - Allow `Dry::View::Part` instances to be created without explicitly passing a `renderer`. This is helpful for unit testing view parts that don't need to render anything (dNitza)
134
138
  - Partials can be nested within additional sub-directories by rendering them their relative path as their name, e.g. `render(:"foo/bar")` will look for a `foo/_bar.html.slim` template within the normal template lookup paths (timriley)
135
139
 
136
- # 0.3.0 / 2017-05-14
140
+ [Compare v0.3.0...v0.4.0](https://github.com/dry-rb/dry-view/compare/v0.3.0...v0.4.0)
141
+
142
+ ## 0.3.0 2017-05-14
137
143
 
138
144
  This release reintroduces view parts in a more helpful form. You can provide your own custom view part classes to encapsulate your view logic, as well as a decorator for custom, shared behavior arouund view part wrapping.
139
145
 
146
+ ### Added
147
+
148
+ - Wrap all values passed to the template in `Dry::View::Part` objects
149
+ - Added a `decorator` config to `Dry::View::Controller`, with a default `Dry::View::Decorator` that wraps the exposure values in `Dry::View::Part` objects (as above). Provide your own part classes by passing an `:as` option to your exposures, e.g. `expose :user, as: MyApp::UserPart`
150
+
140
151
  ### Changed
141
152
 
142
153
  - [BREAKING] Partial rendering in templates requires an explicit `render` method call instead of method_missing behaviour usinig the partial's name (e.g. `<%= render :my_partial %>` instead of `<%= my_partial %>`)
143
154
 
144
- ### Added
155
+ [Compare v0.2.2...v0.3.0](https://github.com/dry-rb/dry-view/compare/v0.2.2...v0.3.0)
145
156
 
146
- - Wrap all values passed to the template in `Dry::View::Part` objects
147
- - Added a `decorator` config to `Dry::View::Controller`, with a default `Dry::View::Decorator` that wraps the exposure values in `Dry::View::Part` objects (as above). Provide your own part classes by passing an `:as` option to your exposures, e.g. `expose :user, as: MyApp::UserPart`
157
+ ## 0.2.2 2017-01-31
148
158
 
149
- # 0.2.2 / 2017-01-31
150
159
 
151
160
  ### Changed
152
161
 
153
162
  - Make input passthrough exposures (when there is no block or matching instance metod) return nil instead of raise in the case of a missing input key (timriley)
154
163
 
155
- # 0.2.1 / 2017-01-30
164
+ [Compare v0.2.1...v0.2.2](https://github.com/dry-rb/dry-view/compare/v0.2.1...v0.2.2)
165
+
166
+ ## 0.2.1 2017-01-30
167
+
156
168
 
157
169
  ### Fixed
158
170
 
159
171
  - Exposure blocks now have access to the view controller instance when they're called (timriley)
160
172
 
161
- # 0.2.0 / 2017-01-30
173
+
174
+ [Compare v0.2.0...v0.2.1](https://github.com/dry-rb/dry-view/compare/v0.2.0...v0.2.1)
175
+
176
+ ## 0.2.0 2017-01-30
162
177
 
163
178
  This release is a major reorientation for dry-view, and it should allow for more natural, straightforward template authoring.
164
179
 
180
+ ### Added
181
+
182
+ - Will render templates using any Tilt-supported engine, based on the template's final file extension (e.g. `hello.html.slim` will use Slim). For thread-safety, be sure to explicitly require any engine gems you intend to use. (timriley)
183
+ - `expose` (and `expose_private`) `Dry::View::Controller` class methods allow you to more easily declare and prepare the data for your template (timriley)
184
+ - Added `Dry::View::Scope`, which is the scope used for rendering templates. This includes the data from the exposures along with the context object (timriley)
185
+
165
186
  ### Changed
166
187
 
167
188
  - [BREAKING] `Dry::View::Layout` renamed to `Dry::View::Controller`. The "view controller" name better represents this object's job: to (timriley)
@@ -173,13 +194,10 @@ This release is a major reorientation for dry-view, and it should allow for more
173
194
  - [BREAKING] With view parts removed, partials can only be rendered by top-level method calls within templates (timriley)
174
195
  - Ruby version 2.1.0 is now the earliest supported version (timriley)
175
196
 
176
- ### Added
197
+ [Compare v0.1.1...v0.2.0](https://github.com/dry-rb/dry-view/compare/v0.1.1...v0.2.0)
177
198
 
178
- - Will render templates using any Tilt-supported engine, based on the template's final file extension (e.g. `hello.html.slim` will use Slim). For thread-safety, be sure to explicitly require any engine gems you intend to use. (timriley)
179
- - `expose` (and `expose_private`) `Dry::View::Controller` class methods allow you to more easily declare and prepare the data for your template (timriley)
180
- - Added `Dry::View::Scope`, which is the scope used for rendering templates. This includes the data from the exposures along with the context object (timriley)
199
+ ## 0.1.1 2016-07-07
181
200
 
182
- # 0.1.1 / 2016-07-07
183
201
 
184
202
  ### Changed
185
203
 
@@ -187,12 +205,15 @@ This release is a major reorientation for dry-view, and it should allow for more
187
205
  - Render template content first, before passing that content to the layout. This makes "content_for"-style behaviours possible, where the template stores some data that the layout can then use later (timriley)
188
206
  - Configure default template encoding to be UTF-8, fixing some issues with template rendering on deployed sites (gotar)
189
207
 
190
- # 0.1.0 / 2016-03-28
208
+ [Compare v0.1.0...v0.1.1](https://github.com/dry-rb/dry-view/compare/v0.1.0...v0.1.1)
209
+
210
+ ## 0.1.0 2016-03-28
211
+
191
212
 
192
213
  ### Added
193
214
 
194
- – `Dry::View::Layout` supports multiple view template formats. Configure format/engine pairs (e.g. `{html: :slim, text: :erb}`) on the `formats` setting. The first format becomes the default. Request specific formats when calling the view, e.g. `my_view.call(format: :text)`.
215
+ - – `Dry::View::Layout` supports multiple view template formats. Configure format/engine pairs (e.g. `{html: :slim, text: :erb}`) on the `formats` setting. The first format becomes the default. Request specific formats when calling the view, e.g. `my_view.call(format: :text)`.
195
216
 
196
217
  ### Changed
197
218
 
198
- – Extracted from rodakase and renamed to dry-view. `Rodakase::View` is now `Dry::View`.
219
+ - – Extracted from rodakase and renamed to dry-view. `Rodakase::View` is now `Dry::View`.
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015-2021 dry-rb team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ the Software, and to permit persons to whom the Software is furnished to do so,
10
+ subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ 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, FITNESS
17
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -1,46 +1,29 @@
1
- # dry-view
1
+ [gem]: https://rubygems.org/gems/dry-view
2
+ [actions]: https://github.com/dry-rb/dry-view/actions
3
+ [codacy]: https://www.codacy.com/gh/dry-rb/dry-view
4
+ [chat]: https://dry-rb.zulipchat.com
5
+ [inchpages]: http://inch-ci.org/github/dry-rb/dry-view
2
6
 
3
- [![Gem Version](https://img.shields.io/gem/v/dry-view.svg)][gem]
4
- [![Build Status](https://img.shields.io/travis/dry-rb/dry-view.svg)][travis]
5
- [![Maintainability](https://api.codeclimate.com/v1/badges/de81a8026a2e7f64e4df/maintainability)][maint]
6
- [![Test Coverage](https://api.codeclimate.com/v1/badges/de81a8026a2e7f64e4df/test_coverage)][cov]
7
- [![API Documentation Coverage](http://inch-ci.org/github/dry-rb/dry-view.svg)][inch]
7
+ # dry-view [![Join the chat at https://dry-rb.zulipchat.com](https://img.shields.io/badge/dry--rb-join%20chat-%23346b7a.svg)][chat]
8
8
 
9
- dry-view is a complete, standalone view rendering system that gives you
10
- everything you need to write well-factored view code.
9
+ [![Gem Version](https://badge.fury.io/rb/dry-view.svg)][gem]
10
+ [![CI Status](https://github.com/dry-rb/dry-view/workflows/ci/badge.svg)][actions]
11
+ [![Codacy Badge](https://api.codacy.com/project/badge/Grade/fe8a45d76d8b45f6a680a29c48b43a99)][codacy]
12
+ [![Codacy Badge](https://api.codacy.com/project/badge/Coverage/fe8a45d76d8b45f6a680a29c48b43a99)][codacy]
13
+ [![Inline docs](http://inch-ci.org/github/dry-rb/dry-view.svg?branch=master)][inchpages]
11
14
 
12
15
  ## Links
13
16
 
14
- * [Documentation][docs]
15
- * [API documentation][api]
16
- * [dry-rb website][website]
17
- * [Support forum][support]
18
-
19
- ## Development
20
-
21
- After checking out this repo, run `bin/setup` to setup the project.
17
+ * [User documentation](http://dry-rb.org/gems/dry-view)
18
+ * [API documentation](http://rubydoc.info/gems/dry-view)
22
19
 
23
- Then, run `rake spec` to run the tests.
20
+ ## Supported Ruby versions
24
21
 
25
- You can also run `bin/console` for an interactive prompt that will allow you to experiment.
22
+ This library officially supports the following Ruby versions:
26
23
 
27
- ## Contributing
24
+ * MRI >= `2.5`
25
+ * jruby >= `9.2`
28
26
 
29
- Bug reports and pull requests are welcome [on GitHub][repo]. For new feature
30
- development, we recommend having a discussion [in the forum][support] before
31
- beginning your work.
27
+ ## License
32
28
 
33
- <!-- Links -->
34
- [docs]: https://dry-rb.org/gems/dry-view
35
- [api]: https://www.rubydoc.info/github/dry-rb/dry-view
36
- [website]: https://dry-rb.org/
37
- [support]: https://discourse.dry-rb.org/
38
- [repo]: https://github.com/dry-rb/dry-view
39
-
40
- <!-- Badge links -->
41
- [gitter]: https://gitter.im/dry-rb/chat
42
- [gem]: https://rubygems.org/gems/dry-view
43
- [travis]: https://travis-ci.org/dry-rb/dry-view
44
- [maint]: https://codeclimate.com/github/dry-rb/dry-view/maintainability
45
- [cov]: https://codeclimate.com/github/dry-rb/dry-view/test_coverage
46
- [inch]: http://inch-ci.org/github/dry-rb/dry-view
29
+ See `LICENSE` file.
data/dry-view.gemspec CHANGED
@@ -1,31 +1,40 @@
1
- lib = File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+ # this file is managed by dry-rb/devtools project
3
+
4
+ lib = File.expand_path('lib', __dir__)
2
5
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
6
  require 'dry/view/version'
4
7
 
5
8
  Gem::Specification.new do |spec|
6
- spec.name = "dry-view"
7
- spec.version = Dry::View::VERSION
9
+ spec.name = 'dry-view'
8
10
  spec.authors = ["Tim Riley", "Piotr Solnica"]
9
11
  spec.email = ["tim@icelab.com.au", "piotr.solnica@gmail.com"]
12
+ spec.license = 'MIT'
13
+ spec.version = Dry::View::VERSION.dup
14
+
10
15
  spec.summary = "A complete, standalone view rendering system that gives you everything you need to write well-factored view code"
11
16
  spec.description = spec.summary
12
- spec.homepage = "https://dry-rb.org/gems/dry-view"
13
- spec.license = "MIT"
17
+ spec.homepage = 'https://dry-rb.org/gems/dry-view'
18
+ spec.files = Dir["CHANGELOG.md", "LICENSE", "README.md", "dry-view.gemspec", "lib/**/*"]
19
+ spec.bindir = 'bin'
20
+ spec.executables = []
21
+ spec.require_paths = ['lib']
14
22
 
15
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(benchmarks|examples|spec)/}) }
16
- spec.bindir = "exe"
17
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
- spec.require_paths = ["lib"]
23
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org'
24
+ spec.metadata['changelog_uri'] = 'https://github.com/dry-rb/dry-view/blob/master/CHANGELOG.md'
25
+ spec.metadata['source_code_uri'] = 'https://github.com/dry-rb/dry-view'
26
+ spec.metadata['bug_tracker_uri'] = 'https://github.com/dry-rb/dry-view/issues'
19
27
 
20
- spec.required_ruby_version = '>= 2.2.0'
28
+ spec.required_ruby_version = ">= 2.5.0"
21
29
 
22
- spec.add_runtime_dependency "tilt", "~> 2.0", ">= 2.0.6"
23
- spec.add_runtime_dependency "dry-core", "~> 0.2"
30
+ # to update dependencies edit project.yml
31
+ spec.add_runtime_dependency "concurrent-ruby", "~> 1.0"
24
32
  spec.add_runtime_dependency "dry-configurable", "~> 0.1"
25
- spec.add_runtime_dependency "dry-equalizer", "~> 0.2"
33
+ spec.add_runtime_dependency "dry-core", "~> 0.5", ">= 0.5"
26
34
  spec.add_runtime_dependency "dry-inflector", "~> 0.1"
35
+ spec.add_runtime_dependency "tilt", "~> 2.0", ">= 2.0.6"
27
36
 
28
37
  spec.add_development_dependency "bundler"
29
- spec.add_development_dependency "rake", "~> 10.0"
30
- spec.add_development_dependency "rspec", "~> 3.1"
38
+ spec.add_development_dependency "rake"
39
+ spec.add_development_dependency "rspec"
31
40
  end
data/lib/dry/view.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "dry/configurable"
4
4
  require "dry/core/cache"
5
- require "dry/equalizer"
5
+ require "dry/core/equalizer"
6
6
  require "dry/inflector"
7
7
 
8
8
  require_relative "view/context"
@@ -230,8 +230,10 @@ module Dry
230
230
  # @!macro [new] exposure_options
231
231
  # @param options [Hash] the exposure's options
232
232
  # @option options [Boolean] :layout expose this value to the layout (defaults to false)
233
- # @option options [Boolean] :decorate decorate this value in a matching Part (defaults to true)
234
- # @option options [Symbol, Class] :as an alternative name or class to use when finding a matching Part
233
+ # @option options [Boolean] :decorate decorate this value in a matching Part (defaults to
234
+ # true)
235
+ # @option options [Symbol, Class] :as an alternative name or class to use when finding a
236
+ # matching Part
235
237
 
236
238
  # @overload expose(name, **options, &block)
237
239
  # Define a value to be passed to the template. The return value of the
@@ -315,7 +317,8 @@ module Dry
315
317
  #
316
318
  # @param name [Symbol] name for the exposure
317
319
  # @macro exposure_options
318
- # @option options [Boolean] :default a default value to provide if there is no matching input data
320
+ # @option options [Boolean] :default a default value to provide if there is no matching
321
+ # input data
319
322
  #
320
323
  # @overload expose(*names, **options)
321
324
  # Define multiple values to pass through from the input data (when there
@@ -326,17 +329,18 @@ module Dry
326
329
  #
327
330
  # @param names [Symbol] names for the exposures
328
331
  # @macro exposure_options
329
- # @option options [Boolean] :default a default value to provide if there is no matching input data
332
+ # @option options [Boolean] :default a default value to provide if there is no matching
333
+ # input data
330
334
  #
331
335
  # @see https://dry-rb.org/gems/dry-view/exposures/
332
336
  #
333
337
  # @api public
334
338
  def self.expose(*names, **options, &block)
335
339
  if names.length == 1
336
- exposures.add(names.first, block, options)
340
+ exposures.add(names.first, block, **options)
337
341
  else
338
342
  names.each do |name|
339
- exposures.add(name, options)
343
+ exposures.add(name, **options)
340
344
  end
341
345
  end
342
346
  end
@@ -411,7 +415,7 @@ module Dry
411
415
  config.paths,
412
416
  format: format,
413
417
  engine_mapping: config.renderer_engine_mapping,
414
- **config.renderer_options,
418
+ **config.renderer_options
415
419
  )
416
420
  }
417
421
  end
@@ -467,7 +471,10 @@ module Dry
467
471
 
468
472
  if layout?
469
473
  layout_env = self.class.layout_env(format: format, context: context)
470
- output = env.template(self.class.layout_path, layout_env.scope(config.scope, layout_locals(locals))) { output }
474
+ output = env.template(
475
+ self.class.layout_path,
476
+ layout_env.scope(config.scope, layout_locals(locals))
477
+ ) { output }
471
478
  end
472
479
 
473
480
  Rendered.new(output: output, locals: locals)
@@ -477,8 +484,8 @@ module Dry
477
484
 
478
485
  # @api private
479
486
  def ensure_config
480
- raise UndefinedConfigError.new(:paths) unless Array(config.paths).any?
481
- raise UndefinedConfigError.new(:template) unless config.template
487
+ raise UndefinedConfigError, :paths unless Array(config.paths).any?
488
+ raise UndefinedConfigError, :template unless config.template
482
489
  end
483
490
 
484
491
  # @api private
@@ -501,7 +508,7 @@ module Dry
501
508
 
502
509
  # @api private
503
510
  def layout?
504
- !!config.layout
511
+ !!config.layout # rubocop:disable Style/DoubleNegation
505
512
  end
506
513
  end
507
514
  end