pathway 0.6.2 → 0.7.0

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
  SHA1:
3
- metadata.gz: 4018ba4c006cf059f12c711202755d036b98a5ce
4
- data.tar.gz: 43aa4a956c419086daa4f3cb2c090ba59f6d2b66
3
+ metadata.gz: 10f9020a8388d7f7aa7f4f321d506d98f2ce59ec
4
+ data.tar.gz: a7d8dc64b79bf6a19f52f5cf78e59e0f9e9faae3
5
5
  SHA512:
6
- metadata.gz: 4b78616b14447e8577bec833efbc133badb5dd33f6ea0ac7ed118640efc72e9bb3d2c7eabfc0453dab40197567d609c14b786bc172e9c324b3a7967a58a554e5
7
- data.tar.gz: a3603b314011b5650f722e63d5f2d7e744a545f0843936bef536dfd9b3a8aa75871da0d8a3fba043c7e8a3c624ac1dde3dafc0b8026b788f94b2e09ec597d5ab
6
+ metadata.gz: 9a0cb43cf90894f6c9f19692bc33eca3ee6eaf6dd834d88ebbee0261447c70a7f0f96a3f05098d6339561de34fb65393708529c713b383b31779738c79748d50
7
+ data.tar.gz: 9c66e74dafc09384a8d2f06df57490206a8e5e9cf756765085fd4b56353a498a388eedd2abc4d03c8d4d997ac1ba284e74feb087d77bce67a800c6ede04cad5b
@@ -1,5 +1,11 @@
1
- ## [0.6.2] - 2018-05-19
1
+ ## [0.7.0] - 2018-09-25
2
2
  ### Changed
3
+ - `sequel_models` plugin now automatically adds an optional context parameter to preload the model and avoid hitting the db on `:fetch_model` when the model is already available.
4
+ - Add `:set_context_param` option for `sequel_models` plugin to prevent adding the context parameter to preload the model into the context.
5
+ - Allow `authorization` block to take multiple parameters on `simple_auth` plugin.
6
+
7
+ ## [0.6.2] - 2018-05-19
8
+ ### Fixes
3
9
  - Allow `:error_message` option for `sequel_models` plugin to propagate down inherited classes
4
10
 
5
11
  ## [0.6.1] - 2018-03-16
@@ -55,7 +55,7 @@ module Pathway
55
55
  @result_key = operation.result_key
56
56
  end
57
57
 
58
- delegate %i([] []= fetch store include?) => :@hash
58
+ delegate %i([] []= fetch store include? values_at) => :@hash
59
59
 
60
60
  def update(kargs)
61
61
  @hash.update(kargs)
@@ -24,11 +24,13 @@ module Pathway
24
24
  module ClassMethods
25
25
  attr_accessor :model_class, :search_field, :model_not_found
26
26
 
27
- def model(model_class, search_by: model_class.primary_key, set_result_key: true, error_message: nil)
27
+ def model(model_class, search_by: model_class.primary_key, set_result_key: true, set_context_param: true, error_message: nil)
28
28
  self.model_class = model_class
29
29
  self.search_field = search_by
30
30
  self.result_key = Inflector.underscore(Inflector.demodulize(model_class.name)).to_sym if set_result_key
31
31
  self.model_not_found = error_message || "#{Inflector.humanize(Inflector.underscore(Inflector.demodulize(model_class.name)))} not found".freeze
32
+
33
+ self.context(result_key => Contextualizer::OPTIONAL) if set_result_key && set_context_param
32
34
  end
33
35
 
34
36
  def inherited(subclass)
@@ -11,15 +11,20 @@ module Pathway
11
11
 
12
12
  module InstanceMethods
13
13
  def authorize(state, using: nil)
14
- authorize_with(state[using || result_key]).then { state }
14
+ auth_state = if using.is_a?(Array)
15
+ authorize_with(*state.values_at(*using))
16
+ else
17
+ authorize_with(state[using || result_key])
18
+ end
19
+
20
+ auth_state.then { state }
15
21
  end
16
22
 
17
23
  def authorize_with(*objs)
18
- objs = objs.first if objs.size <= 1
19
24
  authorized?(*objs) ? wrap(objs) : error(:forbidden)
20
25
  end
21
26
 
22
- def authorized?(*_)
27
+ def authorized?(*)
23
28
  true
24
29
  end
25
30
  end
@@ -1,3 +1,3 @@
1
1
  module Pathway
2
- VERSION = '0.6.2'
2
+ VERSION = '0.7.0'
3
3
  end
@@ -23,10 +23,10 @@ Gem::Specification.new do |spec|
23
23
 
24
24
  spec.required_ruby_version = ">= 2.4.0"
25
25
 
26
- spec.add_dependency "dry-inflector", ">= 0.1.1"
27
- spec.add_dependency "contextualizer", "~> 0.0.3"
26
+ spec.add_dependency "dry-inflector", ">= 0.1.0"
27
+ spec.add_dependency "contextualizer", "~> 0.0.4"
28
28
 
29
- spec.add_development_dependency "dry-validation", "~> 0.11"
29
+ spec.add_development_dependency "dry-validation", "~> 0.11.0"
30
30
  spec.add_development_dependency "bundler", ">= 1.14.0"
31
31
  spec.add_development_dependency "sequel", "~> 4.46.0"
32
32
  spec.add_development_dependency "rake", "~> 10.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pathway
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pablo Herrero
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-05-20 00:00:00.000000000 Z
11
+ date: 2018-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-inflector
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.1
19
+ version: 0.1.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.1
26
+ version: 0.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: contextualizer
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.0.3
33
+ version: 0.0.4
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.0.3
40
+ version: 0.0.4
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: dry-validation
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.11'
47
+ version: 0.11.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.11'
54
+ version: 0.11.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement