active_flag 2.1.0 → 2.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
  SHA256:
3
- metadata.gz: 92070a4cfdecda2177518adcf91809607614849a64566c05361669b030775c27
4
- data.tar.gz: 2f9cb34e47a8cce372521d22a8faca84befd100c2d2cf664e96c44565cd0966f
3
+ metadata.gz: 37791570bee7b350b62d7d547e466f53b5bd19fc864fae7f7955644d3eca38b7
4
+ data.tar.gz: 4546c4d82ac631c1dc6f014e8a6ca6041680a58e395f5b1d2148f2e7b4bda538
5
5
  SHA512:
6
- metadata.gz: 2335c49a3c24629650c5bc197d577b2e3faaff940e0afde74f8c01d1d001329d1f094d0ba7bdb2df65480e10917ff6614e9b8bd2d598af9a664de9d0e6e491f8
7
- data.tar.gz: a0f6a1a9ecce9dfb935300762b7baf77d3b37b08a8a3ef8ba74403e1ed3148681f3440269606f9c06d6f6e42e7f70ee14165f208b00fbf66df5017475aaadfc5
6
+ metadata.gz: 2efffbe31062bc874b31bdea68a33be717b81bb25e74d0ecc87c72b249ca9bac9d44ce228a699a84f00cda0cc913c82673380b7e5342cfd2c49f942c273a1076
7
+ data.tar.gz: 71f209ddce3c75c0939fdffacbfa2b3e506778f931a0f74b294acef0afe0c1993842ce9a07c9e14540c5af82c984af1d1a33546be3c608a40d58aa58803b08d4
@@ -16,7 +16,7 @@ jobs:
16
16
  env:
17
17
  BUNDLE_GEMFILE: gemfiles/${{ matrix.rails_version }}.gemfile
18
18
  steps:
19
- - uses: actions/checkout@v6
19
+ - uses: actions/checkout@v7
20
20
  - uses: ruby/setup-ruby@v1
21
21
  with:
22
22
  ruby-version: ${{ matrix.ruby }}
data/active_flag.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_runtime_dependency 'activerecord', '>= 5'
21
+ spec.add_runtime_dependency 'activerecord', '>= 6.1'
22
22
  spec.add_development_dependency 'rake'
23
23
  spec.add_development_dependency 'minitest'
24
24
  spec.add_development_dependency 'sqlite3'
@@ -1,3 +1,3 @@
1
1
  module ActiveFlag
2
- VERSION = '2.1.0'
2
+ VERSION = '2.2.0'
3
3
  end
data/lib/active_flag.rb CHANGED
@@ -29,14 +29,17 @@ module ActiveFlag
29
29
  end
30
30
 
31
31
  # Reference to definition
32
- define_singleton_method column.to_s.pluralize do
32
+ relation_method_name = column.to_s.pluralize
33
+ define_singleton_method relation_method_name do
33
34
  active_flags[column]
34
35
  end
35
36
 
36
37
  if respond_to?(:generated_relation_methods, true)
37
- send(:generated_relation_methods).module_eval do
38
- define_method column.to_s.pluralize do
39
- klass.active_flags[column].with_scope(self)
38
+ unless relation_method_conflict?(relation_method_name)
39
+ send(:generated_relation_methods).module_eval do
40
+ define_method relation_method_name do
41
+ klass.active_flags[column].with_scope(self)
42
+ end
40
43
  end
41
44
  end
42
45
  end
@@ -44,32 +47,40 @@ module ActiveFlag
44
47
 
45
48
  # Scopes
46
49
  define_singleton_method "where_#{column}" do |*args|
47
- integer, column_name = send("_where_#{column}", *args)
48
- where("#{column_name} & #{integer} > 0")
50
+ integer, attribute = send("_where_#{column}", *args)
51
+ where((attribute & integer).gt(0))
49
52
  end
50
53
 
51
54
  define_singleton_method "where_all_#{column}" do |*args|
52
- integer, column_name = send("_where_#{column}", *args)
53
- where("#{column_name} & #{integer} = #{integer}")
55
+ integer, attribute = send("_where_#{column}", *args)
56
+ where((attribute & integer).eq(integer))
54
57
  end
55
58
 
56
59
  define_singleton_method "where_not_#{column}" do |*args|
57
- integer, column_name = send("_where_#{column}", *args)
58
- where("#{column_name} & #{integer} = 0")
60
+ integer, attribute = send("_where_#{column}", *args)
61
+ where((attribute & integer).eq(0))
59
62
  end
60
63
 
61
64
  define_singleton_method "where_not_all_#{column}" do |*args|
62
- integer, column_name = send("_where_#{column}", *args)
63
- where("#{column_name} & #{integer} < #{integer}")
65
+ integer, attribute = send("_where_#{column}", *args)
66
+ where((attribute & integer).lt(integer))
64
67
  end
65
68
 
66
69
  # utility method to extract parameters
67
70
  define_singleton_method "_where_#{column}" do |*args|
68
71
  return [
69
72
  active_flags[column].to_i(args),
70
- "#{connection.quote_table_name(table_name)}.#{connection.quote_column_name(column)}"
73
+ arel_table[column]
71
74
  ]
72
75
  end
73
76
  end
77
+
78
+ private
79
+
80
+ def relation_method_conflict?(method_name)
81
+ name = method_name.to_sym
82
+ ActiveRecord::Relation.method_defined?(name) ||
83
+ ActiveRecord::Relation.private_method_defined?(name)
84
+ end
74
85
  end
75
86
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_flag
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kenn Ejima
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-01-05 00:00:00.000000000 Z
11
+ date: 2026-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '5'
19
+ version: '6.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '5'
26
+ version: '6.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement