pathway 0.6.2 → 0.7.0

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
  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