format_restricter_rails 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f580e752ae0d6e79c2f5cf704384edeeffeba8f954c4ad0e19c88b3d90926d0f
4
- data.tar.gz: 1874e0d2575f44e105a877c332765da832497287631507cfa17c3876c517d000
3
+ metadata.gz: 2f2bae3923b56bbc18ead2cf5fad9c1e1a03edeaaa30eb6ba111e9d1428ce96a
4
+ data.tar.gz: e6cc8b95986088cdf06078dbf6820b7a1772f257c23ca1095695e2d60ac6ad9f
5
5
  SHA512:
6
- metadata.gz: 918da1d938efb0809aa1339686d2536a63ae26c7ef8aa1226b217152192092c6b0af2b7877960c9102f14ee2844441332a1ea3a29ee80612253ce537f9eca31a
7
- data.tar.gz: 3b79d1f075da8e17840ae68edbfde09da167de62312c6fde473da00d2f9b3f254d02899e15fde02c5754dfa2dbb61acaa46b922f36cd8d611b37933c4e980d10
6
+ metadata.gz: f209f31a8803d9d20d61a87b81111991cfb075464a490853a60cb24216dbe2358063dd09e1b9c032805dad81c71d6aaa69201744d2cd0e8359e04716a85d6d7a
7
+ data.tar.gz: 25fccc5bd94268c62f1c9d369ffb590e9c04e79db93ba6ea846e5e1843c93df24644f82e246eff496e15fa8ae993d1cfbb4bf8806b0967f641f10d05b69ea8ba
data/.gitignore CHANGED
@@ -7,6 +7,7 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ /rubocop/
10
11
 
11
12
  /spec/dummy/db/*.sqlite3
12
13
  /spec/dummy/db/*.sqlite3-journal
data/.rubocop.yml CHANGED
@@ -1,31 +1,14 @@
1
- AllCops:
2
- Exclude:
3
- - spec/dummy/db/schema.rb
1
+ # DO NOT MODIFY THIS FILE unless you want to deviate from the rubocop_plus ruleset.
4
2
 
5
- Style/StringLiterals:
6
- Enabled: false
3
+ # This file defines the settings used by rubocop when it runs. You would normally add your customizations directly to this
4
+ # file, but this file has been pre configured to read settings out of the rubocop_plus gem instead.
7
5
 
8
- Style/SymbolArray:
9
- Enabled: false
6
+ # Tell rubocop to load its settings from the rubocop_plus gem.
7
+ inherit_gem:
8
+ rubocop_plus: config/rubocop.yml
10
9
 
11
- Style/Documentation:
12
- Enabled: false
10
+ Rails:
11
+ Enabled: true
13
12
 
14
- Style/EmptyMethod:
15
- Enabled: false
16
-
17
- Style/StderrPuts:
18
- Exclude:
19
- - spec/dummy/bin/yarn
20
-
21
- Style/MixinUsage:
22
- Exclude:
23
- - spec/dummy/bin/setup
24
- - spec/dummy/bin/update
25
-
26
- Metrics/LineLength:
27
- Max: 130
28
-
29
- Metrics/BlockLength:
30
- Exclude:
31
- - spec/**/*
13
+ # Place custom settings below this comment. All customizations will OVERRIDE rubocop_plus rules. rubocop_plus & rubocop
14
+ # do not attempt to merge these settings with their defaults. Long term changes should be ported to the rubocop_plus gem.
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 1.2.0 (Jan 18, 2018)
4
+
5
+ 1. Use the `to_prepare` hook to simplify the implementation. (Issue #14)
6
+ 1. Add the rubocop_plus gem and cleanup internal code. (Issue #16)
7
+
3
8
  ## 1.1.0 (Jan 08, 2018)
4
9
 
5
10
  1. Add automated tests. (Issue #4)
@@ -8,7 +13,7 @@
8
13
 
9
14
  ## 1.0.1 (May 11, 2016)
10
15
 
11
- 1. (Fix) Formats not being blocked when when `only:` or `except:` are not specified (Issue #1)
16
+ 1. Fix formats not being blocked when when `only:` or `except:` are not specified (Issue #1)
12
17
 
13
18
  ## 1.0.0 (May 11, 2016)
14
19
 
data/Gemfile CHANGED
@@ -3,6 +3,10 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in format_restricter_rails.gemspec
4
4
  gemspec
5
5
 
6
+ group :development do
7
+ gem 'rubocop_plus', "~> 1.0", require: false
8
+ end
9
+
6
10
  group :development, :test do
7
11
  gem 'bootsnap', require: false
8
12
  gem 'puma', '~> 3.7'
@@ -1,19 +1,22 @@
1
1
  module FormatRestricterRails
2
+ # Create a wrapping module so we can expose class methods into the host controllers.
2
3
  module Includes
3
4
  def self.included(base)
4
5
  base.extend(ClassMethods)
5
- base.instance_eval do
6
- private_class_method :register_before_action
7
- end
6
+ # This is one way to mark the register_before_action method as private in a module.
7
+ base.instance_eval { private_class_method :register_before_action }
8
8
  end
9
9
 
10
+ # Define the methods that can be called by host controllers.
10
11
  module ClassMethods
12
+ # This is the main API that host controllers will call at the top the controller.
11
13
  def restrict_formats_to(*args)
12
14
  options = args.extract_options!
13
15
  allowed_formats = args.collect(&:to_sym)
14
16
  register_before_action(options, allowed_formats)
15
17
  end
16
18
 
19
+ # This method is turned into a private method above.
17
20
  def register_before_action(options, allowed_formats)
18
21
  before_action(options) do |_controller|
19
22
  render nothing: true, status: 406 unless allowed_formats.include?(request.format.symbol)
@@ -1,35 +1,8 @@
1
1
  module FormatRestricterRails
2
- def self.include_modules_into_host_app
3
- ApplicationController.include FormatRestricterRails::Includes
4
- end
5
-
6
- def self.was_eager_loaded?
7
- @was_eager_loaded ||= false
8
- end
9
-
10
- def self.was_eager_loaded=(value)
11
- @was_eager_loaded = value
12
- end
13
-
2
+ # This Railtie exposes the format_resticter_rails API to the host application controllers.
14
3
  class Railtie < Rails::Railtie
15
- # This code will be run before Rails eager loads all of the application code. This method will typically only fire
16
- # in production-like environments, however, it could happen in development if the necessary config options are set for the
17
- # development.rb.
18
- config.before_eager_load do
19
- FormatRestricterRails.include_modules_into_host_app
20
- FormatRestricterRails.was_eager_loaded = true
21
- end
22
-
23
- config.after_initialize do
24
- # Don't rerun some setup code if eager loading occured. It can result in weird things happening.
25
- FormatRestricterRails.include_modules_into_host_app unless FormatRestricterRails.was_eager_loaded?
26
-
27
- # Make sure the code is reloaded in development
28
- if Rails.env.development?
29
- ActionDispatch::Callbacks.before do
30
- FormatRestricterRails.include_modules_into_host_app
31
- end
32
- end
4
+ config.to_prepare do
5
+ ApplicationController.include FormatRestricterRails::Includes
33
6
  end
34
7
  end
35
8
  end
@@ -1,3 +1,3 @@
1
1
  module FormatRestricterRails
2
- VERSION = "1.1.0".freeze
2
+ VERSION = "1.2.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: format_restricter_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - roberts1000
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-08 00:00:00.000000000 Z
11
+ date: 2018-01-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler