partial_parameters 0.0.1 → 0.0.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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/partial_parameters/action_view/helpers.rb +37 -0
- data/lib/partial_parameters/railtie.rb +13 -0
- data/lib/partial_parameters/version.rb +1 -1
- data/lib/partial_parameters.rb +1 -30
- data/partial_parameters.gemspec +3 -0
- metadata +32 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13a56724586587c7ce8bdc5ec75e7cee122c8419
|
4
|
+
data.tar.gz: 4ace92c31506aaa08f0a15fb1d70c0c7dd68309c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 86d8c95b5a3c4e920e77421431870e289646dc434128fef5eaaa3bad69252905e25901cb1b9076ba9453e8286fb1cbee258957542c6775051c2c164024142d0d
|
7
|
+
data.tar.gz: 01608bb5f05304be964f45eefaf60691e1b15132e7da48b8c8a81becad6b241be785e5850bfc80be92a5b7ed2d8bd3092a654410d53778782bca5704d3861492
|
data/README.md
CHANGED
@@ -21,7 +21,7 @@ Or install it yourself as:
|
|
21
21
|
|
22
22
|
$ gem install partial_parameters
|
23
23
|
|
24
|
-
|
24
|
+
And you are ready to go!
|
25
25
|
|
26
26
|
## Usage
|
27
27
|
At the top of your partials, simply call the method `partial_parameters` and list your required and optional parameters:
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'partial_parameters/version'
|
2
|
+
require 'partial_parameters/errors'
|
3
|
+
|
4
|
+
module PartialParameters
|
5
|
+
module ActionView
|
6
|
+
module Helpers
|
7
|
+
if ENV['RAILS_ENV'] == 'production'
|
8
|
+
def partial_parameters(**args); end
|
9
|
+
else
|
10
|
+
def partial_parameters(strict: true, &block)
|
11
|
+
raise NoBlockGivenError if block.nil?
|
12
|
+
raise InvalidContextError unless block.binding.local_variable_defined?(:local_assigns)
|
13
|
+
|
14
|
+
@__local_assigns = block.binding.local_variable_get(:local_assigns)
|
15
|
+
@__defined_parameters = []
|
16
|
+
yield
|
17
|
+
unknown_params = @__local_assigns.keys - @__defined_parameters
|
18
|
+
raise UnknownParametersError, unknown_params if strict && unknown_params.any?
|
19
|
+
ensure
|
20
|
+
@__defined_parameters = []
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def required(name)
|
27
|
+
optional(name)
|
28
|
+
return if @__local_assigns.key?(name)
|
29
|
+
raise MissingParameterError, name
|
30
|
+
end
|
31
|
+
|
32
|
+
def optional(name)
|
33
|
+
@__defined_parameters << name
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'rails/railtie'
|
2
|
+
|
3
|
+
module PartialParameters
|
4
|
+
class Railtie < ::Rails::Railtie
|
5
|
+
initializer 'partial_parameters.action_view' do
|
6
|
+
500.times { puts 'OMG' }
|
7
|
+
ActiveSupport.on_load :action_view do
|
8
|
+
require 'partial_parameters/action_view/helpers'
|
9
|
+
include PartialParameters::ActionView::Helpers
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/partial_parameters.rb
CHANGED
@@ -1,33 +1,4 @@
|
|
1
|
-
require 'partial_parameters/
|
2
|
-
require 'partial_parameters/errors'
|
1
|
+
require 'partial_parameters/railtie' if defined?(Rails)
|
3
2
|
|
4
3
|
module PartialParameters
|
5
|
-
if ENV['RAILS_ENV'] == 'production'
|
6
|
-
def partial_parameters(**args); end
|
7
|
-
else
|
8
|
-
def partial_parameters(strict: true, &block)
|
9
|
-
raise NoBlockGivenError if block.nil?
|
10
|
-
raise InvalidContextError unless block.binding.local_variable_defined?(:local_assigns)
|
11
|
-
|
12
|
-
@__local_assigns = block.binding.local_variable_get(:local_assigns)
|
13
|
-
@__defined_parameters = []
|
14
|
-
yield
|
15
|
-
unknown_params = @__local_assigns.keys - @__defined_parameters
|
16
|
-
raise UnknownParametersError, unknown_params if strict && unknown_params.any?
|
17
|
-
ensure
|
18
|
-
@__defined_parameters = []
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
def required(name)
|
25
|
-
optional(name)
|
26
|
-
return if @__local_assigns.key?(name)
|
27
|
-
raise MissingParameterError, name
|
28
|
-
end
|
29
|
-
|
30
|
-
def optional(name)
|
31
|
-
@__defined_parameters << name
|
32
|
-
end
|
33
4
|
end
|
data/partial_parameters.gemspec
CHANGED
@@ -24,4 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_development_dependency 'bundler', '~> 1.13'
|
25
25
|
spec.add_development_dependency 'rake', '~> 10.0'
|
26
26
|
spec.add_development_dependency 'minitest', '~> 5.0'
|
27
|
+
spec.add_development_dependency 'rubocop'
|
28
|
+
|
29
|
+
spec.add_runtime_dependency 'activesupport', '>= 3.0'
|
27
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: partial_parameters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julien Meichelbeck
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-08-
|
11
|
+
date: 2017-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,6 +52,34 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '5.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rubocop
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: activesupport
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.0'
|
55
83
|
description: Make your partials reusable and self-documented by validating the given
|
56
84
|
parameters in development and test environments.
|
57
85
|
email:
|
@@ -69,7 +97,9 @@ files:
|
|
69
97
|
- bin/console
|
70
98
|
- bin/setup
|
71
99
|
- lib/partial_parameters.rb
|
100
|
+
- lib/partial_parameters/action_view/helpers.rb
|
72
101
|
- lib/partial_parameters/errors.rb
|
102
|
+
- lib/partial_parameters/railtie.rb
|
73
103
|
- lib/partial_parameters/version.rb
|
74
104
|
- partial_parameters.gemspec
|
75
105
|
homepage: https://github.com/julien-meichelbeck/partial_parameters
|