rename_params 1.0.0.rc1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: c798d948488ad8c11d028e24d9be8a81bb7bab9d
4
+ data.tar.gz: ed7f2081b347fbda162eecd6957e391659f9dd93
5
+ SHA512:
6
+ metadata.gz: 107d9b836dc24a3b3f10adff2f96b55663ba3f8db91aa735ac6f917324b00e73aee8db1c2f5b4ac7c89a4c641f65847530c7508776eda12b27e500f693b37232
7
+ data.tar.gz: 86d55fa956d238ccfbffb57f8c5268ffcc91a71d10b9d420396f651053c20a89bfc93e102baf0c3c991cbac2c35c550af839153b8952da4de7cb0ed642497377
@@ -0,0 +1,13 @@
1
+ module RenameParams
2
+ module Converters
3
+ class HashConverter
4
+ def initialize(hash = {})
5
+ @hash = hash
6
+ end
7
+
8
+ def convert(value)
9
+ @hash.with_indifferent_access[value]
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ module RenameParams
2
+ module Converters
3
+ class MethodConverter
4
+ def initialize(method, context)
5
+ @method = method
6
+ @context = context
7
+ end
8
+
9
+ def convert(value)
10
+ @context.send(@method, value)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ module RenameParams
2
+ module Converters
3
+ class ProcConverter
4
+ def initialize(proc)
5
+ @proc = proc
6
+ end
7
+
8
+ def convert(value)
9
+ @proc.call(value)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,43 @@
1
+ module RenameParams
2
+ module Macros
3
+ extend ActiveSupport::Concern
4
+
5
+ module ClassMethods
6
+ def rename(*args)
7
+ current_param = args.shift
8
+ options = build_options(*args)
9
+
10
+ before_filter options[:filters] do
11
+ new_params = RenameParams::Params.new(params, self)
12
+ new_params.convert(current_param, options[:convert], options[:namespace])
13
+ new_params.rename(current_param, options[:to], options[:namespace])
14
+ end
15
+ end
16
+
17
+ private
18
+
19
+ def build_options(args = {})
20
+ {
21
+ to: args[:to],
22
+ convert: args[:convert],
23
+ namespace: namespace_options(args),
24
+ filters: filter_options(args)
25
+ }
26
+ end
27
+
28
+ def namespace_options(args = {})
29
+ args[:namespace].is_a?(Array) ? args[:namespace] : [args[:namespace]].compact
30
+ end
31
+
32
+ def filter_options(args = {})
33
+ {
34
+ only: args.delete(:only),
35
+ except: args.delete(:except)
36
+ }.reject { |_, v| v.nil? }
37
+ end
38
+ end
39
+ end
40
+ end
41
+
42
+ ActionController::API.send(:include, RenameParams::Macros) if defined?(ActionController::API)
43
+ ActionController::Base.send(:include, RenameParams::Macros) if defined?(ActionController::Base)
@@ -0,0 +1,60 @@
1
+ module RenameParams
2
+ class Params
3
+
4
+ attr_reader :params
5
+ delegate :[], to: :params
6
+
7
+ def initialize(params = {}, controller = nil)
8
+ @params = params
9
+ @controller = controller
10
+ end
11
+
12
+ def convert(key, converter, namespace = [])
13
+ converter = converter_class(converter)
14
+
15
+ if converter && has_key?(key, namespace)
16
+ new_value = converter.convert(get(key, namespace))
17
+ set(key, new_value)
18
+ end
19
+ end
20
+
21
+ def rename(key, new_key, namespace = [])
22
+ set(new_key, delete(key, namespace), namespace) if has_key?(key, namespace)
23
+ end
24
+
25
+ private
26
+
27
+ def set(key, value, namespace = [])
28
+ namespaced(namespace)[key] = value
29
+ end
30
+
31
+ def get(key, namespace = [])
32
+ namespaced(namespace)[key]
33
+ end
34
+
35
+ def has_key?(key, namespace = [])
36
+ namespaced = namespaced(namespace)
37
+ namespaced.present? && namespaced.has_key?(key)
38
+ end
39
+
40
+ def delete(key, namespace = [])
41
+ namespaced(namespace).delete(key)
42
+ end
43
+
44
+ def namespaced(namespace = [])
45
+ params = @params
46
+ namespace.each { |ns| params = params.present? ? params[ns] : nil }
47
+ params
48
+ end
49
+
50
+ def converter_class(converter)
51
+ if converter.is_a?(Hash)
52
+ RenameParams::Converters::HashConverter.new(converter)
53
+ elsif converter.is_a?(Proc)
54
+ RenameParams::Converters::ProcConverter.new(converter)
55
+ elsif converter.is_a?(Symbol)
56
+ RenameParams::Converters::MethodConverter.new(converter, @controller)
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,3 @@
1
+ module RenameParams
2
+ VERSION = '1.0.0.rc1'.freeze
3
+ end
@@ -0,0 +1,8 @@
1
+ require 'active_support'
2
+ require 'active_support/core_ext'
3
+ require 'action_controller'
4
+ require 'rename_params/macros'
5
+ require 'rename_params/params'
6
+ require 'rename_params/converters/hash_converter'
7
+ require 'rename_params/converters/proc_converter'
8
+ require 'rename_params/converters/method_converter'
@@ -0,0 +1,10 @@
1
+ describe RenameParams::Converters::HashConverter do
2
+
3
+ subject(:converter) { RenameParams::Converters::HashConverter.new(a: 'A', b: 'B') }
4
+
5
+ describe '#convert' do
6
+ it { expect(converter.convert(:a)).to eq 'A' }
7
+ it { expect(converter.convert(:b)).to eq 'B' }
8
+ it { expect(converter.convert(:c)).to be_nil }
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ describe RenameParams::Converters::ProcConverter do
2
+
3
+ subject(:converter) { RenameParams::Converters::ProcConverter.new(->(value) { value.to_i * 100 }) }
4
+
5
+ describe '#convert' do
6
+ it { expect(converter.convert(1)).to eq 100 }
7
+ it { expect(converter.convert(2)).to eq 200 }
8
+ end
9
+ end
@@ -0,0 +1,224 @@
1
+ describe RenameParams::Macros, type: :controller do
2
+ describe '.rename' do
3
+
4
+ context 'when not filtering' do
5
+ let(:default_params) { { 'controller' => 'anonymous', 'action' => 'index' } }
6
+ before { routes.draw { get 'index' => 'anonymous#index' } }
7
+
8
+ describe 'when just renaming params' do
9
+ controller(ActionController::Base) do
10
+ rename :username, to: :login
11
+
12
+ def index
13
+ head :ok
14
+ end
15
+ end
16
+
17
+ it 'renames username to login' do
18
+ get :index, { username: 'aperson' }
19
+ expect(controller.params).to eq default_params.merge('login' => 'aperson')
20
+ end
21
+
22
+ context 'if param is not sent' do
23
+ it 'leaves params as they were' do
24
+ get :index
25
+ expect(controller.params).to eq default_params
26
+ end
27
+ end
28
+ end
29
+
30
+ describe 'when converting values' do
31
+ context 'and using enum converter' do
32
+ controller(ActionController::Base) do
33
+ rename :admin, to: :role, convert: { true: ['admin'], false: [] }
34
+
35
+ def index
36
+ head :ok
37
+ end
38
+ end
39
+
40
+ it 'renames admin to role and converts value' do
41
+ get :index, { admin: 'true' }
42
+ expect(controller.params).to eq default_params.merge('role' => ['admin'])
43
+ end
44
+
45
+ context 'if param is not sent' do
46
+ it 'leaves params as they were' do
47
+ get :index
48
+ expect(controller.params).to eq default_params
49
+ end
50
+ end
51
+ end
52
+
53
+ context 'and using a Proc converter' do
54
+ controller(ActionController::Base) do
55
+ rename :amount_due, to: :amount_due_in_cents, convert: ->(value) { value.to_i * 100 }
56
+
57
+ def index
58
+ head :ok
59
+ end
60
+ end
61
+
62
+ it 'renames amount_due to amount_due_in_cents and converts value' do
63
+ get :index, { amount_due: 100 }
64
+ expect(controller.params).to eq default_params.merge('amount_due_in_cents' => 10000)
65
+ end
66
+
67
+ context 'if param is not sent' do
68
+ it 'leaves params as they were' do
69
+ get :index
70
+ expect(controller.params).to eq default_params
71
+ end
72
+ end
73
+ end
74
+
75
+ context 'and using a method converter' do
76
+ controller(ActionController::Base) do
77
+ rename :amount_due, to: :amount_due_in_cents, convert: :to_cents
78
+
79
+ def index
80
+ head :ok
81
+ end
82
+
83
+ private
84
+
85
+ def to_cents(value)
86
+ value.to_f * 100
87
+ end
88
+ end
89
+
90
+ it 'renames amount_due to amount_due_in_cents and converts value' do
91
+ get :index, { amount_due: 100 }
92
+ expect(controller.params).to eq default_params.merge('amount_due_in_cents' => 10000)
93
+ end
94
+
95
+ context 'if param is not sent' do
96
+ it 'leaves params as they were' do
97
+ get :index
98
+ expect(controller.params).to eq default_params
99
+ end
100
+ end
101
+ end
102
+ end
103
+
104
+ describe 'when nested params' do
105
+ context 'using only one namespace' do
106
+ controller(ActionController::Base) do
107
+ rename :username, to: :login, namespace: :session
108
+
109
+ def index
110
+ head :ok
111
+ end
112
+ end
113
+
114
+ it 'renames username to login' do
115
+ get :index, { 'session' => { 'username' => 'aperson' } }
116
+ expect(controller.params).to eq default_params.merge('session' => { 'login' => 'aperson' })
117
+ end
118
+
119
+ context 'if param is not sent' do
120
+ it 'leaves params as they were' do
121
+ get :index, { 'session' => '' }
122
+ expect(controller.params).to eq default_params.merge('session' => '')
123
+ end
124
+ end
125
+ end
126
+
127
+ context 'using more than one nest levels' do
128
+ controller(ActionController::Base) do
129
+ rename :username, to: :login, namespace: [:session, :credentials]
130
+
131
+ def index
132
+ head :ok
133
+ end
134
+ end
135
+
136
+ it 'renames username to login' do
137
+ get :index, { 'session' => { 'credentials' => { 'username' => 'aperson' } } }
138
+ expect(controller.params).to eq default_params.merge('session' => { 'credentials' => { 'login' => 'aperson' } })
139
+ end
140
+
141
+ context 'if param is not sent' do
142
+ it 'leaves params as they were' do
143
+ get :index, { 'session' => { 'credentials' => '' } }
144
+ expect(controller.params).to eq default_params.merge('session' => { 'credentials' => '' })
145
+ end
146
+ end
147
+
148
+ context 'if namespace is not sent' do
149
+ it 'leaves params as they were' do
150
+ get :index, { 'session' => '' }
151
+ expect(controller.params).to eq default_params.merge('session' => '')
152
+ end
153
+ end
154
+ end
155
+ end
156
+ end
157
+
158
+ context 'when filtering' do
159
+ context 'using only' do
160
+ controller(ActionController::Base) do
161
+ rename :username, to: :login, only: :show
162
+
163
+ def index
164
+ head :ok
165
+ end
166
+
167
+ def show
168
+ head :ok
169
+ end
170
+ end
171
+
172
+ describe 'show' do
173
+ before { routes.draw { get 'show' => 'anonymous#show' } }
174
+
175
+ it 'renames username to login' do
176
+ get :show, { 'username' => 'aperson' }
177
+ expect(controller.params).to eq('controller' => 'anonymous', 'action' => 'show', 'login' => 'aperson')
178
+ end
179
+ end
180
+
181
+ describe 'index' do
182
+ before { routes.draw { get 'index' => 'anonymous#index' } }
183
+
184
+ it 'keeps username param' do
185
+ get :index, { 'username' => 'aperson' }
186
+ expect(controller.params).to eq('controller' => 'anonymous', 'action' => 'index', 'username' => 'aperson')
187
+ end
188
+ end
189
+ end
190
+
191
+ context 'using except' do
192
+ controller(ActionController::Base) do
193
+ rename :username, to: :login, except: :show
194
+
195
+ def index
196
+ head :ok
197
+ end
198
+
199
+ def show
200
+ head :ok
201
+ end
202
+ end
203
+
204
+ describe 'show' do
205
+ before { routes.draw { get 'show' => 'anonymous#show' } }
206
+
207
+ it 'keeps username param' do
208
+ get :show, { 'username' => 'aperson' }
209
+ expect(controller.params).to eq('controller' => 'anonymous', 'action' => 'show', 'username' => 'aperson')
210
+ end
211
+ end
212
+
213
+ describe 'index' do
214
+ before { routes.draw { get 'index' => 'anonymous#index' } }
215
+
216
+ it 'renames username to login' do
217
+ get :index, { 'username' => 'aperson' }
218
+ expect(controller.params).to eq('controller' => 'anonymous', 'action' => 'index', 'login' => 'aperson')
219
+ end
220
+ end
221
+ end
222
+ end
223
+ end
224
+ end
@@ -0,0 +1,38 @@
1
+ describe RenameParams::Params do
2
+
3
+ subject(:params) { RenameParams::Params.new(a: 'A', b: 'B') }
4
+
5
+ describe '#rename' do
6
+ context 'when params includes given key' do
7
+
8
+ before { params.rename(:a, :c) }
9
+
10
+ it { expect(params[:a]).to be_nil }
11
+ it { expect(params[:b]).to eq 'B' }
12
+ it { expect(params[:c]).to eq 'A' }
13
+ end
14
+
15
+ context 'params does not include key' do
16
+ before { params.rename(:c, :d) }
17
+
18
+ it { expect(params[:a]).to eq 'A' }
19
+ it { expect(params[:b]).to eq 'B' }
20
+ it { expect(params[:c]).to be_nil }
21
+ it { expect(params[:d]).to be_nil }
22
+ end
23
+ end
24
+
25
+ describe '#convert' do
26
+ context 'when using an Enum converter' do
27
+ before { params.convert(:b, { 'B' => 'D' }) }
28
+
29
+ it { expect(params[:b]).to eq 'D' }
30
+ end
31
+
32
+ context 'when using a lambda converter' do
33
+ before { params.convert(:b, ->(old_value) { old_value * 2 }) }
34
+
35
+ it { expect(params[:b]).to eq 'BB' }
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+ require 'rspec/rails'
3
+
4
+ RSpec.configure do |config|
5
+ config.infer_spec_type_from_file_location!
6
+ config.filter_rails_from_backtrace!
7
+ end
@@ -0,0 +1,26 @@
1
+ ENV['RAILS_ENV'] = 'test'
2
+ ENV['DATABASE_URL'] = 'sqlite3://localhost/tmp/rename_params_test'
3
+
4
+ require 'bundler/setup'
5
+ require 'rails'
6
+ case Rails.version
7
+ when '3.2.22.5'
8
+ require 'support/apps/rails3_2'
9
+ when '4.2.7.1'
10
+ require 'support/apps/rails4_2'
11
+ when '5.0.0.1'
12
+ require 'support/apps/rails5_0'
13
+ end
14
+ require 'rename_params'
15
+
16
+ RSpec.configure do |config|
17
+ config.expect_with :rspec do |expectations|
18
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
19
+ end
20
+
21
+ config.mock_with :rspec do |mocks|
22
+ mocks.verify_partial_doubles = true
23
+ end
24
+
25
+ config.shared_context_metadata_behavior = :apply_to_host_groups
26
+ end
@@ -0,0 +1,87 @@
1
+ require 'rails/all'
2
+
3
+ module Rails32
4
+ class Application < Rails::Application
5
+ # Custom directories with classes and modules you want to be autoloadable.
6
+ # config.autoload_paths += %W(#{config.root}/extras)
7
+
8
+ # Only load the plugins named here, in the order given (default is alphabetical).
9
+ # :all can be used as a placeholder for all plugins not explicitly named.
10
+ # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
11
+
12
+ # Activate observers that should always be running.
13
+ # config.active_record.observers = :cacher, :garbage_collector, :forum_observer
14
+
15
+ # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
16
+ # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
17
+ # config.time_zone = 'Central Time (US & Canada)'
18
+
19
+ # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
20
+ # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
21
+ # config.i18n.default_locale = :de
22
+
23
+ # Configure the default encoding used in templates for Ruby 1.9.
24
+ config.encoding = "utf-8"
25
+
26
+ # Configure sensitive parameters which will be filtered from the log file.
27
+ config.filter_parameters += [:password]
28
+
29
+ # Enable escaping HTML in JSON.
30
+ config.active_support.escape_html_entities_in_json = true
31
+
32
+ # Use SQL instead of Active Record's schema dumper when creating the database.
33
+ # This is necessary if your schema can't be completely dumped by the schema dumper,
34
+ # like if you have constraints or database-specific column types
35
+ # config.active_record.schema_format = :sql
36
+
37
+ # Enforce whitelist mode for mass assignment.
38
+ # This will create an empty whitelist of attributes available for mass-assignment for all models
39
+ # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
40
+ # parameters by using an attr_accessible or attr_protected declaration.
41
+ config.active_record.whitelist_attributes = true
42
+
43
+ # Enable the asset pipeline
44
+ config.assets.enabled = true
45
+
46
+ # Version of your assets, change this if you want to expire all your assets
47
+ config.assets.version = '1.0'
48
+
49
+ # Settings specified here will take precedence over those in config/application.rb
50
+
51
+ # The test environment is used exclusively to run your application's
52
+ # test suite. You never need to work with it otherwise. Remember that
53
+ # your test database is "scratch space" for the test suite and is wiped
54
+ # and recreated between test runs. Don't rely on the data there!
55
+ config.cache_classes = true
56
+
57
+ # Configure static asset server for tests with Cache-Control for performance
58
+ config.serve_static_assets = true
59
+ config.static_cache_control = "public, max-age=3600"
60
+
61
+ # Log error messages when you accidentally call methods on nil
62
+ config.whiny_nils = true
63
+
64
+ # Show full error reports and disable caching
65
+ config.consider_all_requests_local = true
66
+ config.action_controller.perform_caching = false
67
+
68
+ # Raise exceptions instead of rendering exception templates
69
+ config.action_dispatch.show_exceptions = false
70
+
71
+ # Disable request forgery protection in test environment
72
+ config.action_controller.allow_forgery_protection = false
73
+
74
+ # Tell Action Mailer not to deliver emails to the real world.
75
+ # The :test delivery method accumulates sent emails in the
76
+ # ActionMailer::Base.deliveries array.
77
+ config.action_mailer.delivery_method = :test
78
+
79
+ # Raise exception on mass assignment protection for Active Record models
80
+ config.active_record.mass_assignment_sanitizer = :strict
81
+
82
+ # Print deprecation notices to the stderr
83
+ config.active_support.deprecation = :stderr
84
+ end
85
+ end
86
+
87
+ Rails32::Application.initialize!
@@ -0,0 +1,50 @@
1
+ require 'rails/all'
2
+
3
+ module Rails42
4
+ class Application < Rails::Application
5
+ config.active_record.raise_in_transactional_callbacks = true
6
+ # Settings specified here will take precedence over those in config/application.rb.
7
+
8
+ # In the development environment your application's code is reloaded on
9
+ # every request. This slows down response time but is perfect for development
10
+ # since you don't have to restart the web server when you make code changes.
11
+ config.cache_classes = false
12
+
13
+ # Do not eager load code on boot.
14
+ config.eager_load = false
15
+
16
+ # Show full error reports and disable caching.
17
+ config.consider_all_requests_local = true
18
+ config.action_controller.perform_caching = false
19
+
20
+ # Don't care if the mailer can't send.
21
+ config.action_mailer.raise_delivery_errors = false
22
+
23
+ # Print deprecation notices to the Rails logger.
24
+ config.active_support.deprecation = :log
25
+
26
+ # Raise an error on page load if there are pending migrations.
27
+ config.active_record.migration_error = :page_load
28
+
29
+ # Debug mode disables concatenation and preprocessing of assets.
30
+ # This option may cause significant delays in view rendering with a large
31
+ # number of complex assets.
32
+ config.assets.debug = true
33
+
34
+ # Asset digests allow you to set far-future HTTP expiration dates on all assets,
35
+ # yet still be able to expire them through the digest params.
36
+ config.assets.digest = true
37
+
38
+ # Adds additional error checking when serving assets at runtime.
39
+ # Checks for improperly declared sprockets dependencies.
40
+ # Raises helpful error messages.
41
+ config.assets.raise_runtime_errors = true
42
+
43
+ # Raises error for missing translations
44
+ # config.action_view.raise_on_missing_translations = true
45
+
46
+ config.secret_key_base = '49837489qkuweoiuoqwehisuakshdjksadhaisdy78o34y138974xyqp9rmye8yrpiokeuioqwzyoiuxftoyqiuxrhm3iou1hrzmjk'
47
+ end
48
+ end
49
+
50
+ Rails.application.initialize!
@@ -0,0 +1,48 @@
1
+ require 'rails/all'
2
+
3
+ module Rails50
4
+ class Application < Rails::Application
5
+ # The test environment is used exclusively to run your application's
6
+ # test suite. You never need to work with it otherwise. Remember that
7
+ # your test database is "scratch space" for the test suite and is wiped
8
+ # and recreated between test runs. Don't rely on the data there!
9
+ config.cache_classes = true
10
+
11
+ # Do not eager load code on boot. This avoids loading your whole application
12
+ # just for the purpose of running a single test. If you are using a tool that
13
+ # preloads Rails for running tests, you may have to set it to true.
14
+ config.eager_load = false
15
+
16
+ # Configure public file server for tests with Cache-Control for performance.
17
+ config.public_file_server.enabled = true
18
+ config.public_file_server.headers = {
19
+ 'Cache-Control' => 'public, max-age=3600'
20
+ }
21
+
22
+ # Show full error reports and disable caching.
23
+ config.consider_all_requests_local = true
24
+ config.action_controller.perform_caching = false
25
+
26
+ # Raise exceptions instead of rendering exception templates.
27
+ config.action_dispatch.show_exceptions = false
28
+
29
+ # Disable request forgery protection in test environment.
30
+ config.action_controller.allow_forgery_protection = false
31
+ config.action_mailer.perform_caching = false
32
+
33
+ # Tell Action Mailer not to deliver emails to the real world.
34
+ # The :test delivery method accumulates sent emails in the
35
+ # ActionMailer::Base.deliveries array.
36
+ config.action_mailer.delivery_method = :test
37
+
38
+ # Print deprecation notices to the stderr.
39
+ config.active_support.deprecation = :stderr
40
+
41
+ # Raises error for missing translations
42
+ # config.action_view.raise_on_missing_translations = true
43
+
44
+ config.secret_key_base = '49837489qkuweoiuoqwehisuakshdjksadhaisdy78o34y138974xyqp9rmye8yrpiokeuioqwzyoiuxftoyqiuxrhm3iou1hrzmjk'
45
+ end
46
+ end
47
+
48
+ Rails.application.initialize!
metadata ADDED
@@ -0,0 +1,180 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rename_params
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0.rc1
5
+ platform: ruby
6
+ authors:
7
+ - Marcelo Casiraghi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-10-31 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: actionpack
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: byebug
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: appraisal
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: sqlite3
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ description: Simple params renaming for Rails applications
126
+ email: marcelo@paragon-labs.com
127
+ executables: []
128
+ extensions: []
129
+ extra_rdoc_files: []
130
+ files:
131
+ - lib/rename_params.rb
132
+ - lib/rename_params/converters/hash_converter.rb
133
+ - lib/rename_params/converters/method_converter.rb
134
+ - lib/rename_params/converters/proc_converter.rb
135
+ - lib/rename_params/macros.rb
136
+ - lib/rename_params/params.rb
137
+ - lib/rename_params/version.rb
138
+ - spec/converters/hash_converter_spec.rb
139
+ - spec/converters/proc_converter_spec.rb
140
+ - spec/macros_spec.rb
141
+ - spec/params_spec.rb
142
+ - spec/rails_helper.rb
143
+ - spec/spec_helper.rb
144
+ - spec/support/apps/rails3_2.rb
145
+ - spec/support/apps/rails4_2.rb
146
+ - spec/support/apps/rails5_0.rb
147
+ homepage: http://rubygems.org/gems/rename_params
148
+ licenses:
149
+ - MIT
150
+ metadata: {}
151
+ post_install_message:
152
+ rdoc_options: []
153
+ require_paths:
154
+ - lib
155
+ required_ruby_version: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ required_rubygems_version: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - ">"
163
+ - !ruby/object:Gem::Version
164
+ version: 1.3.1
165
+ requirements: []
166
+ rubyforge_project:
167
+ rubygems_version: 2.5.1
168
+ signing_key:
169
+ specification_version: 4
170
+ summary: Simple params renaming for Rails applications
171
+ test_files:
172
+ - spec/converters/hash_converter_spec.rb
173
+ - spec/converters/proc_converter_spec.rb
174
+ - spec/macros_spec.rb
175
+ - spec/params_spec.rb
176
+ - spec/rails_helper.rb
177
+ - spec/spec_helper.rb
178
+ - spec/support/apps/rails3_2.rb
179
+ - spec/support/apps/rails4_2.rb
180
+ - spec/support/apps/rails5_0.rb