singular_resource 0.0.1 → 0.1.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: 3f053e2406cc78d4fe7039e2aa1d1aa66b52d120
4
- data.tar.gz: a4ce51239058b9c8b948a2a033ee337f5b2481b5
3
+ metadata.gz: 6bbe80e9d964d0c6282349575f5ed7dfe2e01bf1
4
+ data.tar.gz: b28fe3571f97ed496ebbd2a893d74656fe81c9e9
5
5
  SHA512:
6
- metadata.gz: c4eac4db87ae958755b2f441de10a40a5d5016d8b6cd160c4504729bf9fcfd13089967fd86605d9683c698f10edc589adf08bc6015729654206d3d73c4580b94
7
- data.tar.gz: 49b1a5f63fffbfab073923ad6a39b2eab8e0fc441c4cfdd4d1dcf621ddca7d2758d104aa7d11921453729322d6175286026914308143c86419e86b1cc667b14c
6
+ metadata.gz: 9e00ff4e8ae2fb027d2ff1552f724040427212aeb9a748d5b6765a341ce655db739c8847780c224aebfb3af6dfc27e47037378346172cdf18cec40a3daecda6b
7
+ data.tar.gz: 4a39801a4abe1a42a6d6df690be40fe3b847ebae3e984963022a436e125021866802666ad5f9b450c4cf6c76f718a672bdc19f1915902046e9954231c2045c5e
data/README.md CHANGED
@@ -12,9 +12,18 @@ Expose the model in any way, scope the query to a collection method if defined,
12
12
 
13
13
 
14
14
  ## Use
15
- It provides a private method that performs a query for the document when invoked, unless the id is not defined (`new`, `create`), in which case it returns an initialized model.
15
+ It provides a private method that performs a query for the document when invoked whenever id is defined.
16
+ When there is no id parameter, like in `new` and `create`, it returns an initialized model.
16
17
  ```ruby
17
- singular_resource :patient
18
+ # app/controllers/person_controller.rb
19
+ class PersonController < ApplicationController
20
+ singular_resource :person
21
+
22
+ def destroy
23
+ person.destroy
24
+ redirect_to action: :index
25
+ end
26
+ end
18
27
  ```
19
28
 
20
29
  #### Strategies
@@ -23,15 +32,15 @@ By default, it uses `StrongParametersStrategy`, which only assigns the attribute
23
32
 
24
33
  #### Options
25
34
  ``` ruby
26
- :optional => "True if shouldn't fail if document does not exist",
35
+ optional: "Return nil if the document does not exist when passed a truthy value",
27
36
 
28
- :model => "Class or name of the model class",
37
+ model: "Class or name of the model class",
29
38
 
30
- :finder_parameter => "Name of the parameter that has the document's id",
39
+ finder_parameter: "Name of the parameter that has the document's id",
31
40
 
32
- :attributes => "Name of the attributes method name if using strong parameters",
41
+ attributes: "Name of the attributes method name if using strong parameters",
33
42
 
34
- :param_key => "Name of the parameter that has the document's attributes"
43
+ param_key: "Name of the parameter that has the document's attributes"
35
44
  ```
36
45
 
37
46
  ## Comparison
@@ -158,7 +167,7 @@ class Controller
158
167
  end
159
168
  ```
160
169
 
161
- If you think that the `before_filter` is nasty or don't like ivars in your views, so do I! Check the [present](http://github.com/ElMassimo/present) gem
170
+ If you think that the `before_filter` is nasty or don't like ivars in your views, so do I! Check the [presenter_rails](http://github.com/ElMassimo/presenter_rails) gem
162
171
 
163
172
  ### Special Thanks
164
173
  Singular Resource is a subset of [decent_exposure](https://github.com/voxdolo/decent_exposure).
@@ -0,0 +1,23 @@
1
+ require 'singular_resource/strategies/assign_attributes'
2
+
3
+ module SingularResource
4
+ module Strategies
5
+ module AssignFromMethodEager
6
+ include AssignAttributes
7
+
8
+ def attributes
9
+ @attributes ||= method_attributes || {}
10
+ end
11
+
12
+ private
13
+
14
+ def default_params_method
15
+ "#{name}_params"
16
+ end
17
+
18
+ def method_attributes
19
+ controller.send(options[:attributes] || default_params_method) unless options[:attributes] == false
20
+ end
21
+ end
22
+ end
23
+ end
@@ -1,10 +1,10 @@
1
1
  require 'singular_resource/strategies/mongoid_strategy'
2
- require 'singular_resource/strategies/assign_from_method'
2
+ require 'singular_resource/strategies/assign_from_method_eager'
3
3
 
4
4
  module SingularResource
5
5
  module Strategies
6
6
  class StrongParametersStrategy < MongoidStrategy
7
- include Strategies::AssignFromMethod
7
+ include Strategies::AssignFromMethodEager
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: singular_resource
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.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-02-25 00:00:00.000000000 Z
11
+ date: 2014-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -57,6 +57,7 @@ files:
57
57
  - lib/singular_resource/resource.rb
58
58
  - lib/singular_resource/strategies/assign_attributes.rb
59
59
  - lib/singular_resource/strategies/assign_from_method.rb
60
+ - lib/singular_resource/strategies/assign_from_method_eager.rb
60
61
  - lib/singular_resource/strategies/assign_from_params.rb
61
62
  - lib/singular_resource/strategies/eager_attributes_strategy.rb
62
63
  - lib/singular_resource/strategies/mongoid_strategy.rb