validate_params 0.0.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.
Files changed (48) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +34 -0
  4. data/lib/tasks/validates_params_tasks.rake +4 -0
  5. data/lib/validate_params.rb +7 -0
  6. data/lib/validate_params/core.rb +116 -0
  7. data/lib/validate_params/version.rb +3 -0
  8. data/test/dummy/README.rdoc +28 -0
  9. data/test/dummy/Rakefile +6 -0
  10. data/test/dummy/app/assets/javascripts/application.js +13 -0
  11. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  12. data/test/dummy/app/controllers/api/v1/examples_controller.rb +59 -0
  13. data/test/dummy/app/controllers/application_controller.rb +9 -0
  14. data/test/dummy/app/helpers/application_helper.rb +2 -0
  15. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  16. data/test/dummy/bin/bundle +3 -0
  17. data/test/dummy/bin/rails +4 -0
  18. data/test/dummy/bin/rake +4 -0
  19. data/test/dummy/bin/setup +29 -0
  20. data/test/dummy/config.ru +4 -0
  21. data/test/dummy/config/application.rb +23 -0
  22. data/test/dummy/config/boot.rb +5 -0
  23. data/test/dummy/config/database.yml +25 -0
  24. data/test/dummy/config/environment.rb +5 -0
  25. data/test/dummy/config/environments/development.rb +35 -0
  26. data/test/dummy/config/environments/production.rb +76 -0
  27. data/test/dummy/config/environments/test.rb +41 -0
  28. data/test/dummy/config/initializers/assets.rb +11 -0
  29. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  30. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  31. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  32. data/test/dummy/config/initializers/inflections.rb +16 -0
  33. data/test/dummy/config/initializers/mime_types.rb +4 -0
  34. data/test/dummy/config/initializers/session_store.rb +3 -0
  35. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  36. data/test/dummy/config/locales/en.yml +23 -0
  37. data/test/dummy/config/routes.rb +7 -0
  38. data/test/dummy/config/secrets.yml +22 -0
  39. data/test/dummy/db/test.sqlite3 +0 -0
  40. data/test/dummy/log/development.log +0 -0
  41. data/test/dummy/log/test.log +11088 -0
  42. data/test/dummy/public/404.html +67 -0
  43. data/test/dummy/public/422.html +67 -0
  44. data/test/dummy/public/500.html +66 -0
  45. data/test/dummy/public/favicon.ico +0 -0
  46. data/test/dummy/test/controllers/api/v1/examples_controller_test.rb +161 -0
  47. data/test/test_helper.rb +17 -0
  48. metadata +158 -0
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
@@ -0,0 +1,161 @@
1
+ require 'test_helper'
2
+
3
+ class Api::V1::ExamplesControllerTest < ActionController::TestCase
4
+ ##
5
+ # Presence validation
6
+ #
7
+ test 'presence validation with good values' do
8
+ post(:create, type: :presence, example: true)
9
+ assert_response :success
10
+ end
11
+
12
+ test 'presence validation with bad values' do
13
+ post(:create, type: :presence)
14
+ assert_response 400
15
+ end
16
+
17
+ test 'presence validation with good values (2)' do
18
+ post(:create, type: :presence_2, example: true, example2: true)
19
+ assert_response :success
20
+ end
21
+
22
+ test 'presence validation with bad values (2)' do
23
+ post(:create, type: :presence_2, example: true)
24
+ assert_response 400
25
+ end
26
+
27
+ test 'presence validation with good values (2) (b)' do
28
+ post(:create, type: :presence_2, example2: true)
29
+ assert_response 400
30
+ end
31
+
32
+ ##
33
+ # Type validation
34
+ #
35
+ test 'type validation with good values' do
36
+ post(:create, type: :type, example: [1])
37
+ assert_response :success
38
+ end
39
+
40
+ test 'type validation with bad values' do
41
+ post(:create, type: :type, example: true)
42
+ assert_response 400
43
+ end
44
+
45
+ test 'type validation with good values (2)' do
46
+ post(:create, type: :type_2, example: [1])
47
+ assert_response :success
48
+ end
49
+
50
+ test 'type validation with bad values (2)' do
51
+ post(:create, type: :type_2, example: true)
52
+ assert_response 400
53
+ end
54
+
55
+ test 'types validation with good values' do
56
+ post(:create, type: :types, example: [1], example2: 'abc')
57
+ assert_response :success
58
+ end
59
+
60
+ test 'types validation with bad values' do
61
+ post(:create, type: :types, example: true, example2: 'abc')
62
+ assert_response 400
63
+ end
64
+
65
+ test 'types validation with bad values (b)' do
66
+ post(:create, type: :types, example: [1], example2: [1])
67
+ assert_response 400
68
+ end
69
+
70
+ test 'types validation with bad values (c)' do
71
+ post(:create, type: :types, example: 'abc', example2: 'abc')
72
+ assert_response 400
73
+ end
74
+
75
+ ##
76
+ # Type (Array) and size (2) validations
77
+ #
78
+ test 'type and size validations with good values' do
79
+ post(:create, type: :type_and_size, example: [1, 2])
80
+ assert_response :success
81
+ end
82
+
83
+ test 'type and size validations with bad values' do
84
+ post(:create, type: :type_and_size, example: [1])
85
+ assert_response 400
86
+ end
87
+
88
+ ##
89
+ # Range (0..10) validation
90
+ #
91
+ test 'range validation with good values' do
92
+ post(:create, type: :range, example: 5)
93
+ assert_response :success
94
+ end
95
+
96
+ test 'range validation with bad values' do
97
+ post(:create, type: :range, example: 11)
98
+ assert_response 400
99
+ end
100
+
101
+ ##
102
+ # Regex (/myregex/) validation
103
+ #
104
+ test 'regex validation with good values' do
105
+ post(:create, type: :regex, example: 'myregex')
106
+ assert_response :success
107
+ end
108
+
109
+ test 'regex validation with bad values' do
110
+ post(:create, type: :regex, example: 'nop')
111
+ assert_response 400
112
+ end
113
+
114
+ ##
115
+ # Proc (value == 'a') validation
116
+ #
117
+ test 'proc validation with good values' do
118
+ post(:create, type: :proc, example: 'a')
119
+ assert_response :success
120
+ end
121
+
122
+ test 'proc validation with bad values' do
123
+ post(:create, type: :proc, example: 'b')
124
+ assert_response 400
125
+ end
126
+
127
+ ##
128
+ # Default value 'abc'
129
+ #
130
+ test 'default setter' do
131
+ post(:create, type: :default)
132
+ assert_response :success
133
+
134
+ body = JSON.parse(@response.body)
135
+ assert_equal 'abc', body['example']
136
+ end
137
+
138
+ ##
139
+ # In (test1 test2) validation
140
+ #
141
+ test 'in validation with good values' do
142
+ post(:create, type: :in, example: 'test1')
143
+ assert_response :success
144
+ end
145
+
146
+ test 'in validation with bad values' do
147
+ post(:create, type: :in, example: 'test3')
148
+ assert_response 400
149
+ end
150
+
151
+ ##
152
+ # Cast validation
153
+ #
154
+ test 'cast validation' do
155
+ post(:create, type: :cast, example: '100')
156
+ assert_response :success
157
+
158
+ body = JSON.parse(@response.body)
159
+ assert_equal 100, body['example']
160
+ end
161
+ end
@@ -0,0 +1,17 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../../test/dummy/config/environment.rb", __FILE__)
5
+ require "rails/test_help"
6
+
7
+ # Filter out Minitest backtrace while allowing backtrace from other libraries
8
+ # to be shown.
9
+ Minitest.backtrace_filter = Minitest::BacktraceFilter.new
10
+
11
+ # Load support files
12
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
13
+
14
+ # Load fixtures from the engine
15
+ if ActiveSupport::TestCase.respond_to?(:fixture_path=)
16
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
17
+ end
metadata ADDED
@@ -0,0 +1,158 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: validate_params
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Romain de Landesen
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-01-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 4.2.7.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 4.2.7.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: sqlite3
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: Params validations for Ruby on Rails
42
+ email:
43
+ - rdelandesen@gmail.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - MIT-LICENSE
49
+ - Rakefile
50
+ - lib/tasks/validates_params_tasks.rake
51
+ - lib/validate_params.rb
52
+ - lib/validate_params/core.rb
53
+ - lib/validate_params/version.rb
54
+ - test/dummy/README.rdoc
55
+ - test/dummy/Rakefile
56
+ - test/dummy/app/assets/javascripts/application.js
57
+ - test/dummy/app/assets/stylesheets/application.css
58
+ - test/dummy/app/controllers/api/v1/examples_controller.rb
59
+ - test/dummy/app/controllers/application_controller.rb
60
+ - test/dummy/app/helpers/application_helper.rb
61
+ - test/dummy/app/views/layouts/application.html.erb
62
+ - test/dummy/bin/bundle
63
+ - test/dummy/bin/rails
64
+ - test/dummy/bin/rake
65
+ - test/dummy/bin/setup
66
+ - test/dummy/config.ru
67
+ - test/dummy/config/application.rb
68
+ - test/dummy/config/boot.rb
69
+ - test/dummy/config/database.yml
70
+ - test/dummy/config/environment.rb
71
+ - test/dummy/config/environments/development.rb
72
+ - test/dummy/config/environments/production.rb
73
+ - test/dummy/config/environments/test.rb
74
+ - test/dummy/config/initializers/assets.rb
75
+ - test/dummy/config/initializers/backtrace_silencers.rb
76
+ - test/dummy/config/initializers/cookies_serializer.rb
77
+ - test/dummy/config/initializers/filter_parameter_logging.rb
78
+ - test/dummy/config/initializers/inflections.rb
79
+ - test/dummy/config/initializers/mime_types.rb
80
+ - test/dummy/config/initializers/session_store.rb
81
+ - test/dummy/config/initializers/wrap_parameters.rb
82
+ - test/dummy/config/locales/en.yml
83
+ - test/dummy/config/routes.rb
84
+ - test/dummy/config/secrets.yml
85
+ - test/dummy/db/test.sqlite3
86
+ - test/dummy/log/development.log
87
+ - test/dummy/log/test.log
88
+ - test/dummy/public/404.html
89
+ - test/dummy/public/422.html
90
+ - test/dummy/public/500.html
91
+ - test/dummy/public/favicon.ico
92
+ - test/dummy/test/controllers/api/v1/examples_controller_test.rb
93
+ - test/test_helper.rb
94
+ homepage: https://github.com/rdelandesen/validate_params
95
+ licenses:
96
+ - MIT
97
+ metadata: {}
98
+ post_install_message:
99
+ rdoc_options: []
100
+ require_paths:
101
+ - lib
102
+ required_ruby_version: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ required_rubygems_version: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ requirements: []
113
+ rubyforge_project:
114
+ rubygems_version: 2.6.10
115
+ signing_key:
116
+ specification_version: 4
117
+ summary: Params validations for Ruby on Rails
118
+ test_files:
119
+ - test/dummy/app/assets/javascripts/application.js
120
+ - test/dummy/app/assets/stylesheets/application.css
121
+ - test/dummy/app/controllers/api/v1/examples_controller.rb
122
+ - test/dummy/app/controllers/application_controller.rb
123
+ - test/dummy/app/helpers/application_helper.rb
124
+ - test/dummy/app/views/layouts/application.html.erb
125
+ - test/dummy/bin/bundle
126
+ - test/dummy/bin/rails
127
+ - test/dummy/bin/rake
128
+ - test/dummy/bin/setup
129
+ - test/dummy/config/application.rb
130
+ - test/dummy/config/boot.rb
131
+ - test/dummy/config/database.yml
132
+ - test/dummy/config/environment.rb
133
+ - test/dummy/config/environments/development.rb
134
+ - test/dummy/config/environments/production.rb
135
+ - test/dummy/config/environments/test.rb
136
+ - test/dummy/config/initializers/assets.rb
137
+ - test/dummy/config/initializers/backtrace_silencers.rb
138
+ - test/dummy/config/initializers/cookies_serializer.rb
139
+ - test/dummy/config/initializers/filter_parameter_logging.rb
140
+ - test/dummy/config/initializers/inflections.rb
141
+ - test/dummy/config/initializers/mime_types.rb
142
+ - test/dummy/config/initializers/session_store.rb
143
+ - test/dummy/config/initializers/wrap_parameters.rb
144
+ - test/dummy/config/locales/en.yml
145
+ - test/dummy/config/routes.rb
146
+ - test/dummy/config/secrets.yml
147
+ - test/dummy/config.ru
148
+ - test/dummy/db/test.sqlite3
149
+ - test/dummy/log/development.log
150
+ - test/dummy/log/test.log
151
+ - test/dummy/public/404.html
152
+ - test/dummy/public/422.html
153
+ - test/dummy/public/500.html
154
+ - test/dummy/public/favicon.ico
155
+ - test/dummy/Rakefile
156
+ - test/dummy/README.rdoc
157
+ - test/dummy/test/controllers/api/v1/examples_controller_test.rb
158
+ - test/test_helper.rb