explicit-parameters 0.1.1 → 0.2.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: 8b8678ec793b3a6c362be9da00a31ce5f03d60b7
4
- data.tar.gz: f8b1c8d883db57b5203881eb598f50eddc361a77
3
+ metadata.gz: 40398cce3128c89367609acaba917403bcdb5016
4
+ data.tar.gz: 71262a6bbc997abcdc385f91d8eeefb73989098b
5
5
  SHA512:
6
- metadata.gz: d6e21cb9325fd96891449fd4a9e22a121adfee90d01e7950ea8c5b5c260c46c789321119c625c05f6f929947c892701e5c8dee814ca5eecbf1c602315bbd47ec
7
- data.tar.gz: c8cb01c64d716c8467cd2ff01c5b2d2ee5914e85e1ad4cd0d85aa800da31180ce2828b03509fc3e80b834d10eb52515cf8718e8de3b163b635d59700b33a9b34
6
+ metadata.gz: d3cd1f16c5eaf0fef10669a363ce3f739174f0223de527e03f350579a88e1193a01d52ef9c33707925d4f17046f775827bdf8d33ef2dc2670edd1131a9135c79
7
+ data.tar.gz: 8193ca84de290b2f55585eafb4455552eeca5272d1c35cc5940c742345652f6aeeeda160c601c6ce6270f7aa4f5f22afd6ddaa38df4c549b1fa544de019cd14e
@@ -1,3 +1,7 @@
1
+ sudo: false
2
+ cache: bundler
1
3
  rvm:
2
- 2.2
3
-
4
+ 2.2.3
5
+ gemfile:
6
+ - gemfiles/Gemfile.rails-4.2
7
+ - gemfiles/Gemfile.rails-5.0
data/Rakefile CHANGED
@@ -5,3 +5,16 @@ require 'rspec/core/rake_task'
5
5
  RSpec::Core::RakeTask.new(:spec)
6
6
 
7
7
  task default: :spec
8
+
9
+ namespace :spec do
10
+ task :all do
11
+ %w(4.2 5.0).each do |rails_version|
12
+ command = %W{
13
+ BUNDLE_GEMFILE=gemfiles/Gemfile.rails-#{rails_version}
14
+ rspec
15
+ }.join(' ')
16
+ puts command
17
+ system(command)
18
+ end
19
+ end
20
+ end
@@ -17,8 +17,8 @@ Gem::Specification.new do |spec|
17
17
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
18
  spec.require_paths = ['lib']
19
19
 
20
- spec.add_dependency 'actionpack', '~> 4.0'
21
- spec.add_dependency 'activemodel', '~> 4.0'
20
+ spec.add_dependency 'actionpack', '>= 4.2', '< 5.1'
21
+ spec.add_dependency 'activemodel', '>= 4.2', '< 5.1'
22
22
  spec.add_dependency 'virtus', '~> 1.0'
23
23
 
24
24
  spec.add_development_dependency 'bundler', '~> 1.7'
@@ -0,0 +1,7 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'actionpack', '~> 4.2.0'
4
+ gem 'activemodel', '~> 4.2.0'
5
+ gem 'virtus', '~> 1.0'
6
+ gem 'rake', '~> 10.0'
7
+ gem 'rspec', '~> 3.0'
@@ -0,0 +1,94 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ actionpack (4.2.7)
5
+ actionview (= 4.2.7)
6
+ activesupport (= 4.2.7)
7
+ rack (~> 1.6)
8
+ rack-test (~> 0.6.2)
9
+ rails-dom-testing (~> 1.0, >= 1.0.5)
10
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
11
+ actionview (4.2.7)
12
+ activesupport (= 4.2.7)
13
+ builder (~> 3.1)
14
+ erubis (~> 2.7.0)
15
+ rails-dom-testing (~> 1.0, >= 1.0.5)
16
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
17
+ activemodel (4.2.7)
18
+ activesupport (= 4.2.7)
19
+ builder (~> 3.1)
20
+ activesupport (4.2.7)
21
+ i18n (~> 0.7)
22
+ json (~> 1.7, >= 1.7.7)
23
+ minitest (~> 5.1)
24
+ thread_safe (~> 0.3, >= 0.3.4)
25
+ tzinfo (~> 1.1)
26
+ axiom-types (0.1.1)
27
+ descendants_tracker (~> 0.0.4)
28
+ ice_nine (~> 0.11.0)
29
+ thread_safe (~> 0.3, >= 0.3.1)
30
+ builder (3.2.2)
31
+ coercible (1.0.0)
32
+ descendants_tracker (~> 0.0.1)
33
+ descendants_tracker (0.0.4)
34
+ thread_safe (~> 0.3, >= 0.3.1)
35
+ diff-lcs (1.2.5)
36
+ equalizer (0.0.11)
37
+ erubis (2.7.0)
38
+ i18n (0.7.0)
39
+ ice_nine (0.11.2)
40
+ json (1.8.3)
41
+ loofah (2.0.3)
42
+ nokogiri (>= 1.5.9)
43
+ mini_portile2 (2.1.0)
44
+ minitest (5.9.0)
45
+ nokogiri (1.6.8)
46
+ mini_portile2 (~> 2.1.0)
47
+ pkg-config (~> 1.1.7)
48
+ pkg-config (1.1.7)
49
+ rack (1.6.4)
50
+ rack-test (0.6.3)
51
+ rack (>= 1.0)
52
+ rails-deprecated_sanitizer (1.0.3)
53
+ activesupport (>= 4.2.0.alpha)
54
+ rails-dom-testing (1.0.7)
55
+ activesupport (>= 4.2.0.beta, < 5.0)
56
+ nokogiri (~> 1.6.0)
57
+ rails-deprecated_sanitizer (>= 1.0.1)
58
+ rails-html-sanitizer (1.0.3)
59
+ loofah (~> 2.0)
60
+ rake (10.5.0)
61
+ rspec (3.5.0)
62
+ rspec-core (~> 3.5.0)
63
+ rspec-expectations (~> 3.5.0)
64
+ rspec-mocks (~> 3.5.0)
65
+ rspec-core (3.5.1)
66
+ rspec-support (~> 3.5.0)
67
+ rspec-expectations (3.5.0)
68
+ diff-lcs (>= 1.2.0, < 2.0)
69
+ rspec-support (~> 3.5.0)
70
+ rspec-mocks (3.5.0)
71
+ diff-lcs (>= 1.2.0, < 2.0)
72
+ rspec-support (~> 3.5.0)
73
+ rspec-support (3.5.0)
74
+ thread_safe (0.3.5)
75
+ tzinfo (1.2.2)
76
+ thread_safe (~> 0.1)
77
+ virtus (1.0.5)
78
+ axiom-types (~> 0.1)
79
+ coercible (~> 1.0)
80
+ descendants_tracker (~> 0.0, >= 0.0.3)
81
+ equalizer (~> 0.0, >= 0.0.9)
82
+
83
+ PLATFORMS
84
+ ruby
85
+
86
+ DEPENDENCIES
87
+ actionpack (~> 4.2.0)
88
+ activemodel (~> 4.2.0)
89
+ rake (~> 10.0)
90
+ rspec (~> 3.0)
91
+ virtus (~> 1.0)
92
+
93
+ BUNDLED WITH
94
+ 1.12.3
@@ -0,0 +1,7 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'actionpack', '~> 5.0.0'
4
+ gem 'activemodel', '~> 5.0.0'
5
+ gem 'virtus', '~> 1.0'
6
+ gem 'rake', '~> 10.0'
7
+ gem 'rspec', '~> 3.0'
@@ -0,0 +1,89 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ actionpack (5.0.0)
5
+ actionview (= 5.0.0)
6
+ activesupport (= 5.0.0)
7
+ rack (~> 2.0)
8
+ rack-test (~> 0.6.3)
9
+ rails-dom-testing (~> 2.0)
10
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
11
+ actionview (5.0.0)
12
+ activesupport (= 5.0.0)
13
+ builder (~> 3.1)
14
+ erubis (~> 2.7.0)
15
+ rails-dom-testing (~> 2.0)
16
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
17
+ activemodel (5.0.0)
18
+ activesupport (= 5.0.0)
19
+ activesupport (5.0.0)
20
+ concurrent-ruby (~> 1.0, >= 1.0.2)
21
+ i18n (~> 0.7)
22
+ minitest (~> 5.1)
23
+ tzinfo (~> 1.1)
24
+ axiom-types (0.1.1)
25
+ descendants_tracker (~> 0.0.4)
26
+ ice_nine (~> 0.11.0)
27
+ thread_safe (~> 0.3, >= 0.3.1)
28
+ builder (3.2.2)
29
+ coercible (1.0.0)
30
+ descendants_tracker (~> 0.0.1)
31
+ concurrent-ruby (1.0.2)
32
+ descendants_tracker (0.0.4)
33
+ thread_safe (~> 0.3, >= 0.3.1)
34
+ diff-lcs (1.2.5)
35
+ equalizer (0.0.11)
36
+ erubis (2.7.0)
37
+ i18n (0.7.0)
38
+ ice_nine (0.11.2)
39
+ loofah (2.0.3)
40
+ nokogiri (>= 1.5.9)
41
+ mini_portile2 (2.1.0)
42
+ minitest (5.9.0)
43
+ nokogiri (1.6.8)
44
+ mini_portile2 (~> 2.1.0)
45
+ pkg-config (~> 1.1.7)
46
+ pkg-config (1.1.7)
47
+ rack (2.0.1)
48
+ rack-test (0.6.3)
49
+ rack (>= 1.0)
50
+ rails-dom-testing (2.0.1)
51
+ activesupport (>= 4.2.0, < 6.0)
52
+ nokogiri (~> 1.6.0)
53
+ rails-html-sanitizer (1.0.3)
54
+ loofah (~> 2.0)
55
+ rake (10.5.0)
56
+ rspec (3.5.0)
57
+ rspec-core (~> 3.5.0)
58
+ rspec-expectations (~> 3.5.0)
59
+ rspec-mocks (~> 3.5.0)
60
+ rspec-core (3.5.1)
61
+ rspec-support (~> 3.5.0)
62
+ rspec-expectations (3.5.0)
63
+ diff-lcs (>= 1.2.0, < 2.0)
64
+ rspec-support (~> 3.5.0)
65
+ rspec-mocks (3.5.0)
66
+ diff-lcs (>= 1.2.0, < 2.0)
67
+ rspec-support (~> 3.5.0)
68
+ rspec-support (3.5.0)
69
+ thread_safe (0.3.5)
70
+ tzinfo (1.2.2)
71
+ thread_safe (~> 0.1)
72
+ virtus (1.0.5)
73
+ axiom-types (~> 0.1)
74
+ coercible (~> 1.0)
75
+ descendants_tracker (~> 0.0, >= 0.0.3)
76
+ equalizer (~> 0.0, >= 0.0.9)
77
+
78
+ PLATFORMS
79
+ ruby
80
+
81
+ DEPENDENCIES
82
+ actionpack (~> 5.0.0)
83
+ activemodel (~> 5.0.0)
84
+ rake (~> 10.0)
85
+ rspec (~> 3.0)
86
+ virtus (~> 1.0)
87
+
88
+ BUNDLED WITH
89
+ 1.12.3
@@ -1,4 +1,7 @@
1
+ require 'action_pack/version'
2
+
1
3
  module ExplicitParameters
4
+ IS_RAILS5 = ActionPack.version >= Gem::Version.new('5.0.0')
2
5
  BaseError = Class.new(StandardError)
3
6
  InvalidParameters = Class.new(BaseError)
4
7
  end
@@ -65,8 +65,9 @@ module ExplicitParameters
65
65
  end
66
66
 
67
67
  def initialize(attributes = {})
68
+ attributes = attributes.to_unsafe_h if IS_RAILS5 && attributes.respond_to?(:to_unsafe_h)
68
69
  @original_attributes = attributes.stringify_keys
69
- super
70
+ super(attributes)
70
71
  end
71
72
 
72
73
  def validate!
@@ -1,3 +1,3 @@
1
1
  module ExplicitParameters
2
- VERSION = '0.1.1'
2
+ VERSION = '0.2.0'
3
3
  end
@@ -13,11 +13,11 @@ class DummyController < ActionController::Base
13
13
 
14
14
  def error
15
15
  param_error!(:page_size, "Out of bound")
16
- render text: 'OK'
16
+ render body: 'OK'
17
17
  end
18
18
 
19
19
  def no_declaration
20
- render text: 'OK'
20
+ render body: 'OK'
21
21
  end
22
22
 
23
23
  end
@@ -60,12 +60,26 @@ RSpec.describe DummyController do
60
60
  request(action, 'GET', query: parameters)
61
61
  end
62
62
 
63
- def request(action, method, query: {}, body: '')
64
- rack_response = subject.dispatch(action, ActionDispatch::Request.new(
65
- 'REQUEST_METHOD' => method,
66
- 'QUERY_STRING' => query.to_query,
67
- 'rack.input' => StringIO.new(body)
68
- ))
69
- @response = ActionDispatch::Response.new(*rack_response)
63
+ if ActionController::Base.instance_method(:dispatch).arity > 2
64
+ def request(action, method, query: {}, body: '')
65
+ request = ActionDispatch::Request.new(
66
+ 'REQUEST_METHOD' => method,
67
+ 'QUERY_STRING' => query.to_query,
68
+ 'rack.input' => StringIO.new(body)
69
+ )
70
+ @response = ActionDispatch::Response.create.tap do |res|
71
+ res.request = request
72
+ end
73
+ subject.dispatch(action, request, @response)
74
+ end
75
+ else
76
+ def request(action, method, query: {}, body: '')
77
+ rack_response = subject.dispatch(action, ActionDispatch::Request.new(
78
+ 'REQUEST_METHOD' => method,
79
+ 'QUERY_STRING' => query.to_query,
80
+ 'rack.input' => StringIO.new(body)
81
+ ))
82
+ @response = ActionDispatch::Response.new(*rack_response)
83
+ end
70
84
  end
71
85
  end
metadata CHANGED
@@ -1,43 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: explicit-parameters
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean Boussier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-03 00:00:00.000000000 Z
11
+ date: 2016-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '4.2'
20
+ - - "<"
18
21
  - !ruby/object:Gem::Version
19
- version: '4.0'
22
+ version: '5.1'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '4.2'
30
+ - - "<"
25
31
  - !ruby/object:Gem::Version
26
- version: '4.0'
32
+ version: '5.1'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: activemodel
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
- - - "~>"
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '4.2'
40
+ - - "<"
32
41
  - !ruby/object:Gem::Version
33
- version: '4.0'
42
+ version: '5.1'
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
- - - "~>"
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '4.2'
50
+ - - "<"
39
51
  - !ruby/object:Gem::Version
40
- version: '4.0'
52
+ version: '5.1'
41
53
  - !ruby/object:Gem::Dependency
42
54
  name: virtus
43
55
  requirement: !ruby/object:Gem::Requirement
@@ -109,6 +121,10 @@ files:
109
121
  - README.md
110
122
  - Rakefile
111
123
  - explicit-parameters.gemspec
124
+ - gemfiles/Gemfile.rails-4.2
125
+ - gemfiles/Gemfile.rails-4.2.lock
126
+ - gemfiles/Gemfile.rails-5.0
127
+ - gemfiles/Gemfile.rails-5.0.lock
112
128
  - lib/explicit-parameters.rb
113
129
  - lib/explicit_parameters.rb
114
130
  - lib/explicit_parameters/controller.rb
@@ -138,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
154
  version: '0'
139
155
  requirements: []
140
156
  rubyforge_project:
141
- rubygems_version: 2.4.6
157
+ rubygems_version: 2.5.1
142
158
  signing_key:
143
159
  specification_version: 4
144
160
  summary: Explicit parameters validation and casting for Rails APIs