dry-view 0.7.0 → 0.7.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 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