resourcerer 0.2.3 → 0.3.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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e93c37e2be8821f943067ec855db980a6f9d988
|
4
|
+
data.tar.gz: 0ccf7f26495abab03c38fc3d6e02615c573262ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37c61ffbf52613e9bcabe9267a8043195dfb6ba591967c547aafec9958fce936a3cfa80a20ed5b35f36418001b2fe7572df10270a075e7844504d141db1691a3
|
7
|
+
data.tar.gz: f3c3b7e8d6c420891dd48b8e6185a804c13cb900a73046e688980eb78edf2fdcbd66d06777368f418434e4119085af23d538698e5278e81e5bdaf7c828649be9
|
@@ -1,10 +1,18 @@
|
|
1
1
|
require 'resourcerer/resource'
|
2
|
-
require '
|
2
|
+
require 'resourcerer/strategies/optional_strategy'
|
3
|
+
require 'pakiderm'
|
3
4
|
|
4
5
|
module Resourcerer
|
5
6
|
module Resourceable
|
6
7
|
extend ActiveSupport::Concern
|
7
|
-
|
8
|
+
|
9
|
+
included do
|
10
|
+
extend Pakiderm
|
11
|
+
end
|
12
|
+
|
13
|
+
def resource(name, options={}, &block)
|
14
|
+
Resource.for(name, options.merge(strategy: Strategies::OptionalStrategy), block).call(self)
|
15
|
+
end
|
8
16
|
|
9
17
|
module ClassMethods
|
10
18
|
|
@@ -13,7 +21,7 @@ module Resourcerer
|
|
13
21
|
end
|
14
22
|
|
15
23
|
def resource(name, options={}, &block)
|
16
|
-
check_method_available
|
24
|
+
check_method_available(name)
|
17
25
|
_resources[name] = resource = Resource.for(name, options, block)
|
18
26
|
define_resource_method(name, resource)
|
19
27
|
end
|
@@ -22,16 +30,13 @@ module Resourcerer
|
|
22
30
|
|
23
31
|
def define_resource_method(name, resource)
|
24
32
|
define_method(name) { resource.call(self) }
|
25
|
-
memoize name
|
33
|
+
memoize name, assignable: true
|
26
34
|
hide_action name, "#{name}="
|
27
35
|
end
|
28
36
|
|
29
|
-
def check_method_available
|
37
|
+
def check_method_available(name)
|
30
38
|
if self.respond_to?(name.to_sym)
|
31
|
-
Kernel.
|
32
|
-
"which overrides an existing method of the same name. " \
|
33
|
-
"Consider a different resource name\n" \
|
34
|
-
"#{caller.first}"
|
39
|
+
Kernel.warn "[Resourcerer] Overriding #{name} method."
|
35
40
|
end
|
36
41
|
end
|
37
42
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'resourcerer/strategies/default_strategy'
|
2
|
+
|
3
|
+
module Resourcerer
|
4
|
+
module Strategies
|
5
|
+
class OptionalStrategy < DefaultStrategy
|
6
|
+
|
7
|
+
def resource
|
8
|
+
find_resource(id) if id
|
9
|
+
end
|
10
|
+
|
11
|
+
def find_resource(id)
|
12
|
+
if config.optional
|
13
|
+
model.where(finder_attribute => id).first
|
14
|
+
else
|
15
|
+
model.find_by(finder_attribute => id)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def id
|
20
|
+
@id ||= params[finder_param]
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -1,10 +1,31 @@
|
|
1
1
|
require 'resourcerer/strategies/default_strategy'
|
2
2
|
require 'resourcerer/strategies/assign_from_method'
|
3
|
+
require 'resourcerer/configuration/strong_parameters'
|
3
4
|
|
4
5
|
module Resourcerer
|
5
6
|
module Strategies
|
6
7
|
class StrongParametersStrategy < DefaultStrategy
|
7
8
|
include Strategies::AssignFromMethod
|
9
|
+
|
10
|
+
delegate :permitted_attributes, to: :config
|
11
|
+
|
12
|
+
def attributes
|
13
|
+
strong_attributes || super
|
14
|
+
end
|
15
|
+
|
16
|
+
protected
|
17
|
+
|
18
|
+
def build_configuration(options)
|
19
|
+
Configuration::StrongParameters.new(options)
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def strong_attributes
|
25
|
+
if permitted_attributes && params.has_key?(param_key)
|
26
|
+
params.require(param_key).permit(*permitted_attributes)
|
27
|
+
end
|
28
|
+
end
|
8
29
|
end
|
9
30
|
end
|
10
31
|
end
|
metadata
CHANGED
@@ -1,45 +1,44 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: resourcerer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Máximo Mussini
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '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
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: pakiderm
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
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
40
|
version: '0'
|
41
|
-
description:
|
42
|
-
finding a record and assigning attributes.
|
41
|
+
description: Define resources to automate finding a record and assigning attributes.
|
43
42
|
email:
|
44
43
|
- maximomussini@gmail.com
|
45
44
|
executables: []
|
@@ -49,6 +48,7 @@ extra_rdoc_files:
|
|
49
48
|
files:
|
50
49
|
- README.md
|
51
50
|
- lib/resourcerer.rb
|
51
|
+
- lib/resourcerer/configuration/strong_parameters.rb
|
52
52
|
- lib/resourcerer/inflector.rb
|
53
53
|
- lib/resourcerer/resource.rb
|
54
54
|
- lib/resourcerer/resource_configuration.rb
|
@@ -58,6 +58,7 @@ files:
|
|
58
58
|
- lib/resourcerer/strategies/assign_from_params.rb
|
59
59
|
- lib/resourcerer/strategies/default_strategy.rb
|
60
60
|
- lib/resourcerer/strategies/eager_attributes_strategy.rb
|
61
|
+
- lib/resourcerer/strategies/optional_strategy.rb
|
61
62
|
- lib/resourcerer/strategies/strong_parameters_strategy.rb
|
62
63
|
- lib/resourcerer/strategy.rb
|
63
64
|
homepage: https://github.com/ElMassimo/resourcerer
|
@@ -66,17 +67,17 @@ licenses:
|
|
66
67
|
metadata: {}
|
67
68
|
post_install_message:
|
68
69
|
rdoc_options:
|
69
|
-
- --charset=UTF-8
|
70
|
+
- "--charset=UTF-8"
|
70
71
|
require_paths:
|
71
72
|
- lib
|
72
73
|
required_ruby_version: !ruby/object:Gem::Requirement
|
73
74
|
requirements:
|
74
|
-
- -
|
75
|
+
- - ">="
|
75
76
|
- !ruby/object:Gem::Version
|
76
77
|
version: '2.0'
|
77
78
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
79
|
requirements:
|
79
|
-
- -
|
80
|
+
- - ">="
|
80
81
|
- !ruby/object:Gem::Version
|
81
82
|
version: '0'
|
82
83
|
requirements: []
|