active_params 0.1.0 → 0.1.1

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: fe7115f8e738b09dca4fa6b8db9579d78ad047c0
4
- data.tar.gz: 531896b41459dd0ec27bfb8643c7a2e183fb508d
3
+ metadata.gz: 47ecec5d8833f17831a4d8ca416714fc356cd4b8
4
+ data.tar.gz: 8b0641f760e01cf63a9c7d2c35e16f1039451276
5
5
  SHA512:
6
- metadata.gz: 218017f0012a0a7787e05f63d5fe8bf07d61f70029de377142b2607e11aa8eaab239957a2899985cc59ff20ff4c466c1ec09496ed73606dc81dcad7a26ba987d
7
- data.tar.gz: f05f615aa69f9be8c7747ac355a759cf776ba665f93a8c359bc20659b7c4c44754bffaf0f5d296e19d7e4a5204a4562889e46b24e2845f6bbb810d150c60e85c
6
+ metadata.gz: 92a4f7043edb9dae18ac1d9ab9d6f94a902c7e6339364318ee2d0792c9afbeb4744cbfc1f35967d19e8416c25bc81733d125a50444a827010524a3aeb1296940
7
+ data.tar.gz: 5de694ee1858bac35b7c2548748d2946cd7f3989d2c0589f914fb3e7b4c1727d3930696f2a3aba4a1752e332e2d20cfa74e5350756f0a17c0dcece141e94e5f3
data/README.md CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  Stop manually defining `strong_parameters` in each and every controller.
4
4
 
5
- Automatically record the necessary `strong_parameters` settings when you use your app during development mode.
5
+ Whatever parameters that was used during `development` mode is considered permitted parameters for `production`. So automatically record them in `development` mode and simply apply `strong_parameters` in production.
6
6
 
7
- The `strong_parameters` will automatically apply.
7
+ aka No more [strong parameters falls!](https://twitter.com/JuanitoFatas/status/746228574592499712) 👌
8
8
 
9
9
  ## Installation
10
10
 
@@ -32,6 +32,65 @@ class ApplicationController < ActionController::Base
32
32
  end
33
33
  ```
34
34
 
35
+ ### Rails.env.development?
36
+
37
+ During `development` mode, `active_params` will generate the appropriate strong parameters settings for each param (scoped to the current http method, controller_name and action_name)
38
+
39
+ For example, when you submit a form like this
40
+
41
+ ```
42
+ Started POST "/users" for 127.0.0.1 at 2016-06-26 00:41:19 +0800
43
+ Processing by UsersController#create as HTML
44
+ Parameters: {"utf8"=>"✓", "authenticity_token"=>"...", "user"=>{"name"=>"John", "avatar"=>"Face.png", "photos"=>["Breakfast.png", "Coffee.png"]}, "button"=>""}
45
+ ```
46
+
47
+ `active_params` will create or update the `config/active_params.json` file with the settings
48
+
49
+ ``` json
50
+ {
51
+ "POST users/create": {
52
+ "user": [
53
+ "avatar",
54
+ "name",
55
+ {
56
+ "photos": [
57
+
58
+ ]
59
+ }
60
+ ]
61
+ }
62
+ }
63
+ ```
64
+
65
+ NOTE: see [the test](https://github.com/choonkeat/active_params/blob/a84e0ab41ee7a522c6c38ee1657cfb68bc4850e9/test/active_params_test.rb#L23-L57) for a more complicated example
66
+
67
+ ### Rails.env.production? (and other modes)
68
+
69
+ In non-development mode, `active_params` will NOT update the `config/active_params.json` file.
70
+
71
+ It loads `config/active_params.json` and automatically perform the correct strong parameters setup for each request
72
+
73
+ ``` ruby
74
+ params[:user] = params.require(:user).permit(:avatar, :name, photos: [])
75
+ ```
76
+
77
+ So, in your controllers, you can simply reference `params[:user]` again!
78
+
79
+ ``` ruby
80
+ def create
81
+ @user = User.new(params[:user])
82
+ if @user.save
83
+ redirect_to @user, notice: 'User was successfully created.'
84
+ else
85
+ render :new
86
+ end
87
+ end
88
+ ```
89
+
90
+ ### Workflow
91
+
92
+ When you create new features for your app & try them out in development mode, `config/active_params.json` will be automatically updated. When you commit your code, include the changes to `config/active_params.json` too.
93
+
35
94
  ## LICENSE
36
95
 
37
96
  MIT
@@ -1,3 +1,3 @@
1
1
  module ActiveParams
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/lib/active_params.rb CHANGED
@@ -9,7 +9,7 @@ module ActiveParams
9
9
  current_config[k] = result
10
10
  end
11
11
  end
12
- open(ActiveParams.path, "wb") {|f| f.write(JSON.pretty_generate(global_config).tap {|s| logger.info s }) }
12
+ open(ActiveParams.path, "wb") {|f| f.write(JSON.pretty_generate(global_config)) }
13
13
  yield
14
14
  end
15
15
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_params
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - choonkeat
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-06-25 00:00:00.000000000 Z
11
+ date: 2016-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler