ransack-enum 0.3.0 → 1.0.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 +4 -4
- data/.gitignore +2 -0
- data/.rubocop.yml +11 -0
- data/CHANGELOG.md +7 -0
- data/Gemfile +8 -2
- data/README.md +13 -7
- data/Rakefile +17 -2
- data/bin/console +1 -1
- data/lib/ransack-enum.rb +3 -0
- data/lib/ransack_enum/adapters/active_record_6.rb +18 -0
- data/lib/ransack_enum/adapters/active_record_7.rb +20 -0
- data/lib/ransack_enum/adapters.rb +19 -0
- data/lib/ransack_enum/configuration.rb +31 -0
- data/lib/ransack_enum/formatter.rb +58 -0
- data/lib/ransack_enum/ransacker.rb +40 -0
- data/lib/ransack_enum/version.rb +6 -0
- data/lib/ransack_enum.rb +30 -0
- data/ransack-enum.gemspec +6 -7
- metadata +20 -32
- data/lib/ransack/enum/adapters/active_record/base.rb +0 -44
- data/lib/ransack/enum/adapters/active_record.rb +0 -7
- data/lib/ransack/enum/configuration.rb +0 -27
- data/lib/ransack/enum/version.rb +0 -7
- data/lib/ransack/enum.rb +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1afbcd408f71081fbc447ce1eaf591e6e902978969e802a0c3bf96448e93d48
|
4
|
+
data.tar.gz: 10aa583067d1b8704027191cad180353af7675178baf1e3b28dbaecfd5965306
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 43734b3d37556813d8a4a5837270342a90ddf7ee3f1d9f0a607846313b415ae57ed58dfd9b86c269e5b10cb571c2e3d825ef625e5cba3320ce2c9bdbe20088ea
|
7
|
+
data.tar.gz: 5efb2f770b16591b7ca3e382f845802de16bab83c30bbd8c5f65ffac600bbfeae64bc60935a1d587d12583ef7239a8fa4795677cbf7984308fff773dc7c12e06
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 1.0.0 / 2021-12-31
|
4
|
+
### New features
|
5
|
+
- Supported version 7 of ActiveRecord.
|
6
|
+
### Incompatible changes
|
7
|
+
- Require name of gem has changed from `ransack/enum` to `ransack-enum`.
|
8
|
+
- Module of gem has changed from `Ransack::Enum` to `RansackEnum`.
|
9
|
+
|
3
10
|
## 0.3.0 / 2020-09-28
|
4
11
|
### New features
|
5
12
|
- Support boolean enum value
|
data/Gemfile
CHANGED
@@ -6,5 +6,11 @@ source 'https://rubygems.org'
|
|
6
6
|
gemspec
|
7
7
|
|
8
8
|
gem 'rake'
|
9
|
-
gem '
|
10
|
-
gem '
|
9
|
+
gem 'ransack', require: false
|
10
|
+
gem 'rspec', require: false
|
11
|
+
gem 'rubocop', require: false
|
12
|
+
gem 'rubocop-performance', require: false
|
13
|
+
gem 'rubocop-rake', require: false
|
14
|
+
gem 'rubocop-rspec', require: false
|
15
|
+
gem 'sqlite3', require: false
|
16
|
+
gem 'yard', require: false
|
data/README.md
CHANGED
@@ -1,18 +1,21 @@
|
|
1
|
-
#
|
1
|
+
# RansackEnum
|
2
2
|
|
3
|
-
|
3
|
+
Enable enum values in [Ransack](https://github.com/activerecord-hackery/ransack) search.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
7
7
|
Add this line to your application's Gemfile:
|
8
8
|
|
9
9
|
```ruby
|
10
|
-
gem 'ransack
|
10
|
+
gem 'ransack', '~> 2.0'
|
11
|
+
gem 'ransack-enum', '~> 1.0'
|
11
12
|
```
|
12
13
|
|
13
14
|
And then execute:
|
14
15
|
|
15
|
-
|
16
|
+
```sh
|
17
|
+
$ bundle install
|
18
|
+
```
|
16
19
|
|
17
20
|
## Usage
|
18
21
|
|
@@ -22,6 +25,9 @@ There is no need to add any special code.
|
|
22
25
|
```ruby
|
23
26
|
class Post < ActiveRecord::Base
|
24
27
|
enum status: { unpublished: 0, published: 1 }
|
28
|
+
|
29
|
+
# after ActiveRecord 7, the following is also possible.
|
30
|
+
# enum :status, { unpublished: 0, published: 1 }
|
25
31
|
end
|
26
32
|
```
|
27
33
|
|
@@ -55,8 +61,8 @@ Ransack.configure do |config|
|
|
55
61
|
# ...
|
56
62
|
end
|
57
63
|
|
58
|
-
|
59
|
-
# enabled
|
64
|
+
RansackEnum.configure do |config|
|
65
|
+
# enabled (default)
|
60
66
|
config.enabled = true
|
61
67
|
|
62
68
|
# disabled
|
@@ -70,7 +76,7 @@ end
|
|
70
76
|
|
71
77
|
## Development
|
72
78
|
|
73
|
-
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake
|
79
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `bundle exec rake` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
74
80
|
|
75
81
|
To install this gem onto your local machine, run `bundle exec rake install`.
|
76
82
|
|
data/Rakefile
CHANGED
@@ -1,8 +1,23 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'bundler/gem_tasks'
|
4
|
-
require 'rspec/core/rake_task'
|
5
4
|
|
5
|
+
require 'rspec/core/rake_task'
|
6
6
|
RSpec::Core::RakeTask.new(:spec)
|
7
7
|
|
8
|
-
|
8
|
+
require 'rubocop/rake_task'
|
9
|
+
RuboCop::RakeTask.new(:lint) do |t|
|
10
|
+
t.options = %w[--parallel]
|
11
|
+
end
|
12
|
+
namespace :lint do
|
13
|
+
desc 'Lint fix (Rubocop)'
|
14
|
+
task fix: :auto_correct
|
15
|
+
end
|
16
|
+
|
17
|
+
require 'yard'
|
18
|
+
desc 'document'
|
19
|
+
task :doc do
|
20
|
+
YARD::CLI::CommandParser.run
|
21
|
+
end
|
22
|
+
|
23
|
+
task default: %i[lint spec]
|
data/bin/console
CHANGED
data/lib/ransack-enum.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RansackEnum
|
4
|
+
module Adapters
|
5
|
+
# RansackEnum::Adapters::ActiveRecord6
|
6
|
+
module ActiveRecord6
|
7
|
+
# @param definitions [Hash]
|
8
|
+
# @return [void]
|
9
|
+
def enum(definitions)
|
10
|
+
::RansackEnum::Ransacker.new(self, nil, nil, **definitions.to_h.deep_dup).then do |enum_ransacker|
|
11
|
+
super.tap { enum_ransacker.call }
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
private_constant :ActiveRecord6
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RansackEnum
|
4
|
+
module Adapters
|
5
|
+
# RansackEnum::Adapters::ActiveRecord7
|
6
|
+
module ActiveRecord7
|
7
|
+
# @param name [Symbol, nil]
|
8
|
+
# @param values [Hash, nil]
|
9
|
+
# @param options [Hash]
|
10
|
+
# @return [void]
|
11
|
+
def enum(name = nil, values = nil, **options)
|
12
|
+
::RansackEnum::Ransacker.new(self, name, values.deep_dup, **options.deep_dup).then do |enum_ransacker|
|
13
|
+
super.tap { enum_ransacker.call }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
private_constant :ActiveRecord7
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'adapters/active_record_6'
|
4
|
+
require_relative 'adapters/active_record_7'
|
5
|
+
|
6
|
+
module RansackEnum
|
7
|
+
# RansackEnum::Adapters
|
8
|
+
module Adapters
|
9
|
+
::ActiveSupport.on_load(:active_record) do
|
10
|
+
if Integer(::ActiveRecord::VERSION::STRING.split('.').first) >= 7
|
11
|
+
extend ActiveRecord7
|
12
|
+
else
|
13
|
+
extend ActiveRecord6
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
private_constant :Adapters
|
19
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RansackEnum
|
4
|
+
# RansackEnum::Configuration
|
5
|
+
class Configuration
|
6
|
+
# @return [void]
|
7
|
+
def initialize
|
8
|
+
@enabled = true
|
9
|
+
end
|
10
|
+
|
11
|
+
# @param enabled [Boolean]
|
12
|
+
# @return [void]
|
13
|
+
# @raise [ArgumentError]
|
14
|
+
def enabled=(enabled)
|
15
|
+
raise ArgumentError if !enabled.is_a?(::TrueClass) && !enabled.is_a?(::FalseClass)
|
16
|
+
|
17
|
+
@enabled = enabled
|
18
|
+
end
|
19
|
+
|
20
|
+
# @return [Boolean]
|
21
|
+
def enabled?
|
22
|
+
enabled
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
# @!attribute [r] enabled
|
28
|
+
# @return [Boolean]
|
29
|
+
attr_reader :enabled
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RansackEnum
|
4
|
+
# RansackEnum::Formatter
|
5
|
+
class Formatter
|
6
|
+
# @param model_class [Class]
|
7
|
+
# @param name [String]
|
8
|
+
# @param values [Array, Hash]
|
9
|
+
# @return [void]
|
10
|
+
def initialize(model_class, name, values)
|
11
|
+
@model_class = model_class
|
12
|
+
@name = name
|
13
|
+
@normalized_values = normalize_values(values)
|
14
|
+
end
|
15
|
+
|
16
|
+
# @param value [Object]
|
17
|
+
# @return [Object]
|
18
|
+
def call(value)
|
19
|
+
value.is_a?(::Array) ? (value.map { |val| normalize_value(val) }) : normalize_value(value)
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
# @!attribute [r] model_class
|
25
|
+
# @return [Class]
|
26
|
+
attr_reader :model_class
|
27
|
+
# @!attribute [r] name
|
28
|
+
# @return [String]
|
29
|
+
attr_reader :name
|
30
|
+
# @!attribute [r] normalized_values
|
31
|
+
# @return [Hash]
|
32
|
+
attr_reader :normalized_values
|
33
|
+
|
34
|
+
# @param values [Array, Hash]
|
35
|
+
# @return [Hash]
|
36
|
+
def normalize_values(values)
|
37
|
+
(values.is_a?(::Hash) ? values : [values, ::Array.new(values.size, &:itself)].transpose.to_h).symbolize_keys
|
38
|
+
end
|
39
|
+
|
40
|
+
# @param value [Object]
|
41
|
+
# @return [Object]
|
42
|
+
def normalize_value(value)
|
43
|
+
enum_value(value).then { |val| cast_value(val.nil? ? value : val) }
|
44
|
+
end
|
45
|
+
|
46
|
+
# @param value [Object]
|
47
|
+
# @return [Object]
|
48
|
+
def enum_value(value)
|
49
|
+
normalized_values[value.to_sym] if ::RansackEnum.config.enabled? && value.respond_to?(:to_sym)
|
50
|
+
end
|
51
|
+
|
52
|
+
# @param value [Object]
|
53
|
+
# @return [Object]
|
54
|
+
def cast_value(value)
|
55
|
+
::Ransack::Nodes::Value.new(nil, value).cast(model_class.attribute_types[name]&.type)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RansackEnum
|
4
|
+
# RansackEnum::Ransacker
|
5
|
+
class Ransacker
|
6
|
+
# @param model_class [Class]
|
7
|
+
# @param name [Symbol, nil]
|
8
|
+
# @param values [Hash, nil]
|
9
|
+
# @param options [Hash]
|
10
|
+
# @return [void]
|
11
|
+
def initialize(model_class, name = nil, values = nil, **options)
|
12
|
+
@model_class = model_class
|
13
|
+
if name
|
14
|
+
@name = name
|
15
|
+
@values = values || options
|
16
|
+
else
|
17
|
+
@name, @values = options.slice!(:_prefix, :_suffix, :_scopes, :_default).to_a.first
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# @return [void]
|
22
|
+
def call
|
23
|
+
return if !model_class.respond_to?(:ransacker) || !name || !values
|
24
|
+
|
25
|
+
model_class.ransacker(name.to_sym, formatter: ::RansackEnum::Formatter.new(model_class, name.to_s, values))
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
# @!attribute [r] model_class
|
31
|
+
# @return [Class]
|
32
|
+
attr_reader :model_class
|
33
|
+
# @!attribute [r] name
|
34
|
+
# @return [Symbol, nil]
|
35
|
+
attr_reader :name
|
36
|
+
# @!attribute [r] values
|
37
|
+
# @return [Hash, nil]
|
38
|
+
attr_reader :values
|
39
|
+
end
|
40
|
+
end
|
data/lib/ransack_enum.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_support'
|
4
|
+
require_relative 'ransack_enum/version'
|
5
|
+
require_relative 'ransack_enum/configuration'
|
6
|
+
require_relative 'ransack_enum/formatter'
|
7
|
+
require_relative 'ransack_enum/ransacker'
|
8
|
+
require_relative 'ransack_enum/adapters'
|
9
|
+
|
10
|
+
# RansackEnum
|
11
|
+
module RansackEnum
|
12
|
+
# RansackEnum::Error
|
13
|
+
class Error < StandardError; end
|
14
|
+
|
15
|
+
class << self
|
16
|
+
# @return [RansackEnum::Configuration]
|
17
|
+
def config
|
18
|
+
@config ||= ::RansackEnum::Configuration.new
|
19
|
+
end
|
20
|
+
|
21
|
+
# @yieldparam config [RansackEnum::Configuration]
|
22
|
+
# @yieldreturn [void]
|
23
|
+
# @return [void]
|
24
|
+
def configure
|
25
|
+
raise ::RansackEnum::Error, 'No block is given!' unless block_given?
|
26
|
+
|
27
|
+
yield config
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/ransack-enum.gemspec
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative 'lib/
|
3
|
+
require_relative 'lib/ransack_enum/version'
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = 'ransack-enum'
|
7
|
-
spec.version =
|
7
|
+
spec.version = RansackEnum::VERSION
|
8
8
|
spec.authors = %w[shoma07]
|
9
9
|
spec.email = %w[23730734+shoma07@users.noreply.github.com]
|
10
10
|
|
11
|
-
spec.summary = '
|
12
|
-
spec.description = '
|
11
|
+
spec.summary = 'Enable enum values in Ransack search'
|
12
|
+
spec.description = 'Enable enum values in Ransack search'
|
13
13
|
spec.homepage = 'https://github.com/shoma07/ransack-enum'
|
14
14
|
spec.license = 'MIT'
|
15
|
-
spec.required_ruby_version = Gem::Requirement.new('>= 2.
|
15
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 2.6.0')
|
16
16
|
|
17
17
|
spec.metadata['homepage_uri'] = spec.homepage
|
18
18
|
spec.metadata['source_code_uri'] = spec.homepage
|
@@ -26,6 +26,5 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.bindir = 'exe'
|
27
27
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
28
28
|
spec.require_paths = %w[lib]
|
29
|
-
|
30
|
-
spec.add_dependency 'ransack', '~> 2.0'
|
29
|
+
spec.metadata = { 'rubygems_mfa_required' => 'true' }
|
31
30
|
end
|
metadata
CHANGED
@@ -1,30 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ransack-enum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- shoma07
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
13
|
-
|
14
|
-
name: ransack
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '2.0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '2.0'
|
27
|
-
description: Allow Enum values to be used in Ransack searches
|
11
|
+
date: 2021-12-31 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Enable enum values in Ransack search
|
28
14
|
email:
|
29
15
|
- 23730734+shoma07@users.noreply.github.com
|
30
16
|
executables: []
|
@@ -41,20 +27,22 @@ files:
|
|
41
27
|
- Rakefile
|
42
28
|
- bin/console
|
43
29
|
- bin/setup
|
44
|
-
- lib/ransack
|
45
|
-
- lib/
|
46
|
-
- lib/
|
47
|
-
- lib/
|
48
|
-
- lib/
|
30
|
+
- lib/ransack-enum.rb
|
31
|
+
- lib/ransack_enum.rb
|
32
|
+
- lib/ransack_enum/adapters.rb
|
33
|
+
- lib/ransack_enum/adapters/active_record_6.rb
|
34
|
+
- lib/ransack_enum/adapters/active_record_7.rb
|
35
|
+
- lib/ransack_enum/configuration.rb
|
36
|
+
- lib/ransack_enum/formatter.rb
|
37
|
+
- lib/ransack_enum/ransacker.rb
|
38
|
+
- lib/ransack_enum/version.rb
|
49
39
|
- ransack-enum.gemspec
|
50
40
|
homepage: https://github.com/shoma07/ransack-enum
|
51
41
|
licenses:
|
52
42
|
- MIT
|
53
43
|
metadata:
|
54
|
-
|
55
|
-
|
56
|
-
changelog_uri: https://github.com/shoma07/ransack-enum/blob/v0.3.0/CHANGELOG.md
|
57
|
-
post_install_message:
|
44
|
+
rubygems_mfa_required: 'true'
|
45
|
+
post_install_message:
|
58
46
|
rdoc_options: []
|
59
47
|
require_paths:
|
60
48
|
- lib
|
@@ -62,15 +50,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
62
50
|
requirements:
|
63
51
|
- - ">="
|
64
52
|
- !ruby/object:Gem::Version
|
65
|
-
version: 2.
|
53
|
+
version: 2.6.0
|
66
54
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
55
|
requirements:
|
68
56
|
- - ">="
|
69
57
|
- !ruby/object:Gem::Version
|
70
58
|
version: '0'
|
71
59
|
requirements: []
|
72
|
-
rubygems_version: 3.
|
73
|
-
signing_key:
|
60
|
+
rubygems_version: 3.2.3
|
61
|
+
signing_key:
|
74
62
|
specification_version: 4
|
75
|
-
summary:
|
63
|
+
summary: Enable enum values in Ransack search
|
76
64
|
test_files: []
|
@@ -1,44 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Ransack
|
4
|
-
module Enum
|
5
|
-
module Adapters
|
6
|
-
module ActiveRecord
|
7
|
-
# Ransack::Enum::Adapters::ActiveRecord::Base
|
8
|
-
module Base
|
9
|
-
# @see https://github.com/rails/rails/blob/66cabeda2c46c582d19738e1318be8d59584cc5b/activerecord/lib/active_record/enum.rb#L150
|
10
|
-
# @param [Hash] definitions
|
11
|
-
# @return [Hash]
|
12
|
-
def enum(definitions)
|
13
|
-
enum_ransacker(*definitions.to_a.first) if respond_to?(:ransacker)
|
14
|
-
super
|
15
|
-
end
|
16
|
-
|
17
|
-
private
|
18
|
-
|
19
|
-
# @param [Symbol] name
|
20
|
-
# @param [Hash] values
|
21
|
-
# @return [Hash]
|
22
|
-
def enum_ransacker(name, values)
|
23
|
-
converter = enum_ransack_value_converter(name.to_s, values)
|
24
|
-
ransacker name, formatter: lambda { |value|
|
25
|
-
value.is_a?(Array) ? value.map(&converter) : converter.call(value)
|
26
|
-
}
|
27
|
-
end
|
28
|
-
|
29
|
-
# @param [String] name
|
30
|
-
# @param [Hash] values
|
31
|
-
# @return [Proc]
|
32
|
-
def enum_ransack_value_converter(name, values)
|
33
|
-
lambda do |value|
|
34
|
-
val = values[value.to_sym]
|
35
|
-
return val if Ransack::Enum.enabled? && !val.nil?
|
36
|
-
|
37
|
-
Ransack::Nodes::Value.new(nil, value).cast(attribute_types[name]&.type)
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Ransack
|
4
|
-
module Enum
|
5
|
-
# Ransack::Enum::Configuration
|
6
|
-
module Configuration
|
7
|
-
mattr_accessor :options
|
8
|
-
|
9
|
-
self.options = { enabled: true }
|
10
|
-
|
11
|
-
def configure
|
12
|
-
yield self
|
13
|
-
end
|
14
|
-
|
15
|
-
# @param [TrueClass, FalseClass] enabled
|
16
|
-
# @return [TrueClass, FalseClass]
|
17
|
-
def enabled=(enabled)
|
18
|
-
options[:enabled] = enabled
|
19
|
-
end
|
20
|
-
|
21
|
-
# @return [TrueClass, FalseClass]
|
22
|
-
def enabled?
|
23
|
-
options[:enabled]
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
data/lib/ransack/enum/version.rb
DELETED
data/lib/ransack/enum.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'active_support/core_ext'
|
4
|
-
require 'ransack'
|
5
|
-
require 'ransack/enum/version'
|
6
|
-
require 'ransack/enum/configuration'
|
7
|
-
require 'ransack/enum/adapters/active_record'
|
8
|
-
|
9
|
-
module Ransack
|
10
|
-
# Ransack::Enum
|
11
|
-
module Enum
|
12
|
-
extend Configuration
|
13
|
-
end
|
14
|
-
end
|