yiffspace 0.0.24 → 0.0.25

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: 483249113d393f9851f4641c08e917c087a5c1db46cbbd44c8097c0760b883c5
4
- data.tar.gz: 5e2daacda68d812268a384cc00ccc6df4cb05e267725feee663af3b1a5976e86
3
+ metadata.gz: d25c09cc2215ae215fedbcac2a2f7df9cb90bcffe077b9ce65e19cc7a87cdcc2
4
+ data.tar.gz: d1e559638ed2c624a88df12fb99c95e6f72af323d1acea7745240bd2f44e8b36
5
5
  SHA512:
6
- metadata.gz: d7df4e7e6aaabe1460202b67c70cde28dc4f6a195afa09050302b4858f532576f380b3f73ed93baea5d15530a429779269583adb3ff32f4420a12abe6962b5ca
7
- data.tar.gz: 9e811ec4b770efe3df29d2664fe0b9adfde3841d501ba1614458dcdf7e3839b5e4a15d14ca035d64cb5ce3cdb17847d07b15d8dc8c98c2a6698d6d6a09863556
6
+ metadata.gz: '068f7913582ba815958d342421467c0af7a88ca7ec98643e2d3503c1c5cf36a74d284928f8e4df4a100e874170ca3eed13d2e6ff1c4c448ebbc3fea05e19b5fe'
7
+ data.tar.gz: 9991d33a718322c301de8fff0a705f209d1853fb5d60bb1dc00a6f0d39e16fb5c9c85ef1af0a1e772c56d7e894f43461d994ebe66dd1ac15b7a24df65026b2e8
@@ -30,13 +30,13 @@ module YiffSpace
30
30
  end
31
31
 
32
32
  # CrossJoinLateral, LeftJoinLateral, nil
33
- def unnest(column, name: column.singularize, type: Arel::Nodes::LeftJoinLateral)
34
- function = Arel::Nodes::NamedFunction.new("unnest", [arel(column)], name)
33
+ def unnest(column, name: column.singularize, type: ::Arel::Nodes::LeftJoinLateral)
34
+ function = ::Arel::Nodes::NamedFunction.new("unnest", [arel(column)], name)
35
35
  return function if type.nil?
36
36
 
37
37
  joins(type.new(
38
38
  function,
39
- Arel::Nodes::On.new(Arel.sql("TRUE")),
39
+ ::Arel::Nodes::On.new(Arel.sql("TRUE")),
40
40
  ))
41
41
  end
42
42
  end
@@ -38,31 +38,31 @@ module YiffSpace
38
38
  end
39
39
 
40
40
  METHODS = {
41
- lt: ->(table_name, column, value) { Arel::Table.new(table_name)[column].lt(value) },
42
- lteq: ->(table_name, column, value) { Arel::Table.new(table_name)[column].lteq(value) },
43
- gt: ->(table_name, column, value) { Arel::Table.new(table_name)[column].gt(value) },
44
- gteq: ->(table_name, column, value) { Arel::Table.new(table_name)[column].gteq(value) },
45
- between: ->(table_name, column, value) { Arel::Table.new(table_name)[column].between(value) },
46
- not_between: ->(table_name, column, value) { Arel::Table.new(table_name)[column].not_between(value) },
47
- in: ->(table_name, column, value) { Arel::Table.new(table_name)[column].in(value) },
48
- not_in: ->(table_name, column, value) { Arel::Table.new(table_name)[column].not_in(value) },
49
- like: ->(table_name, column, value) { Arel::Table.new(table_name)[column].matches(value.to_escaped_for_sql_like, Arel.sql("E'\\\\'"), true) },
50
- ilike: ->(table_name, column, value) { Arel::Table.new(table_name)[column].matches(value.to_escaped_for_sql_like, Arel.sql("E'\\\\'"), false) },
51
- not_like: ->(table_name, column, value) { Arel::Table.new(table_name)[column].does_not_match(value.to_escaped_for_sql_like, Arel.sql("E'\\\\'"), true) },
52
- not_ilike: ->(table_name, column, value) { Arel::Table.new(table_name)[column].does_not_match(value.to_escaped_for_sql_like, Arel.sql("E'\\\\'"), false) },
53
- like_all: ->(table_name, column, value) { Arel::Table.new(table_name)[column].matches_all(value.map(&:to_escaped_for_sql_like), Arel.sql("E'\\\\'"), true) },
54
- ilike_all: ->(table_name, column, value) { Arel::Table.new(table_name)[column].matches_all(value.map(&:to_escaped_for_sql_like), Arel.sql("E'\\\\'"), false) },
55
- not_like_all: ->(table_name, column, value) { Arel::Table.new(table_name)[column].does_not_match_all(value.map(&:to_escaped_for_sql_like), Arel.sql("E'\\\\'"), true) },
56
- not_ilike_all: ->(table_name, column, value) { Arel::Table.new(table_name)[column].does_not_match_all(value.map(&:to_escaped_for_sql_like), Arel.sql("E'\\\\'"), false) },
57
- like_any: ->(table_name, column, value) { Arel::Table.new(table_name)[column].matches_any(value.map(&:to_escaped_for_sql_like), Arel.sql("E'\\\\'"), true) },
58
- ilike_any: ->(table_name, column, value) { Arel::Table.new(table_name)[column].matches_any(value.map(&:to_escaped_for_sql_like), Arel.sql("E'\\\\'"), false) },
59
- not_like_any: ->(table_name, column, value) { Arel::Table.new(table_name)[column].does_not_match_any(value.map(&:to_escaped_for_sql_like), Arel.sql("E'\\\\'"), true) },
60
- not_ilike_any: ->(table_name, column, value) { Arel::Table.new(table_name)[column].does_not_match_any(value.map(&:to_escaped_for_sql_like), Arel.sql("E'\\\\'"), false) },
61
- regex: ->(table_name, column, value, flags) { Arel::Table.new(table_name)[column].matches_regexp("(?#{flags})#{value.is_a?(Regexp) ? value.source : value}") },
62
- not_regex: ->(table_name, column, value, flags) { Arel::Table.new(table_name)[column].does_not_match_regexp("(?#{flags})#{value.is_a?(Regexp) ? value.source : value}") },
63
- tsquery: ->(table_name, column, value, ts_config) { Arel.sql("to_tsvector(:ts_config, :table) @@ plainto_tsquery(:ts_config, :value)", ts_config: ts_config, value: value, table: Arel.sql("#{table_name}.#{column}")) },
64
- has_bits: ->(table_name, column, value) { Arel.sql("(#{table_name}.#{column} & #{Arel::Nodes.build_quoted(value).to_sql}) = #{Arel::Nodes.build_quoted(value).to_sql}") },
65
- not_has_bits: ->(table_name, column, value) { Arel.sql("(#{table_name}.#{column} & #{Arel::Nodes.build_quoted(value).to_sql}) != #{Arel::Nodes.build_quoted(value).to_sql}") },
41
+ lt: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].lt(value) },
42
+ lteq: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].lteq(value) },
43
+ gt: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].gt(value) },
44
+ gteq: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].gteq(value) },
45
+ between: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].between(value) },
46
+ not_between: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].not_between(value) },
47
+ in: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].in(value) },
48
+ not_in: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].not_in(value) },
49
+ like: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].matches(value.to_escaped_for_sql_like, ::Arel.sql("E'\\\\'"), true) },
50
+ ilike: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].matches(value.to_escaped_for_sql_like, ::Arel.sql("E'\\\\'"), false) },
51
+ not_like: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].does_not_match(value.to_escaped_for_sql_like, ::Arel.sql("E'\\\\'"), true) },
52
+ not_ilike: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].does_not_match(value.to_escaped_for_sql_like, ::Arel.sql("E'\\\\'"), false) },
53
+ like_all: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].matches_all(value.map(&:to_escaped_for_sql_like), ::Arel.sql("E'\\\\'"), true) },
54
+ ilike_all: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].matches_all(value.map(&:to_escaped_for_sql_like), ::Arel.sql("E'\\\\'"), false) },
55
+ not_like_all: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].does_not_match_all(value.map(&:to_escaped_for_sql_like), ::Arel.sql("E'\\\\'"), true) },
56
+ not_ilike_all: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].does_not_match_all(value.map(&:to_escaped_for_sql_like), ::Arel.sql("E'\\\\'"), false) },
57
+ like_any: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].matches_any(value.map(&:to_escaped_for_sql_like), ::Arel.sql("E'\\\\'"), true) },
58
+ ilike_any: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].matches_any(value.map(&:to_escaped_for_sql_like), ::Arel.sql("E'\\\\'"), false) },
59
+ not_like_any: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].does_not_match_any(value.map(&:to_escaped_for_sql_like), ::Arel.sql("E'\\\\'"), true) },
60
+ not_ilike_any: ->(table_name, column, value) { ::Arel::Table.new(table_name)[column].does_not_match_any(value.map(&:to_escaped_for_sql_like), ::Arel.sql("E'\\\\'"), false) },
61
+ regex: ->(table_name, column, value, flags) { ::Arel::Table.new(table_name)[column].matches_regexp("(?#{flags})#{value.is_a?(Regexp) ? value.source : value}") },
62
+ not_regex: ->(table_name, column, value, flags) { ::Arel::Table.new(table_name)[column].does_not_match_regexp("(?#{flags})#{value.is_a?(Regexp) ? value.source : value}") },
63
+ tsquery: ->(table_name, column, value, ts_config) { ::Arel.sql("to_tsvector(:ts_config, :table) @@ plainto_tsquery(:ts_config, :value)", ts_config: ts_config, value: value, table: ::Arel.sql("#{table_name}.#{column}")) },
64
+ has_bits: ->(table_name, column, value) { ::Arel.sql("(#{table_name}.#{column} & #{::Arel::Nodes.build_quoted(value).to_sql}) = #{::Arel::Nodes.build_quoted(value).to_sql}") },
65
+ not_has_bits: ->(table_name, column, value) { ::Arel.sql("(#{table_name}.#{column} & #{::Arel::Nodes.build_quoted(value).to_sql}) != #{::Arel::Nodes.build_quoted(value).to_sql}") },
66
66
  }.freeze
67
67
 
68
68
  private
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative("../concerns/active_record_extensions")
4
+
5
+ ActiveRecordExtensions = YiffSpace::Concerns::ActiveRecordExtensions
@@ -1,8 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative("active_record_extensions")
4
+ require_relative("api_methods")
5
+ require_relative("attribute_matchers")
6
+ require_relative("attribute_methods")
3
7
  require_relative("cache")
8
+ require_relative("concurrency_methods")
9
+ require_relative("conditional_includes")
4
10
  require_relative("current")
11
+ require_relative("current_methods")
5
12
  require_relative("duration_parser")
13
+ require_relative("has_bit_flags")
6
14
  require_relative("helpers")
7
15
  require_relative("open_hash")
8
16
  require_relative("parameter_builder")
@@ -15,5 +23,9 @@ require_relative("table_builder")
15
23
  require_relative("trace_logger")
16
24
  require_relative("u2id")
17
25
  require_relative("user_attribute")
26
+ require_relative("user_class_methods")
18
27
  require_relative("user_like")
28
+ require_relative("user_methods")
29
+ require_relative("user_name_methods")
19
30
  require_relative("user_resolvable")
31
+ require_relative("user_resolvable_methods")
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative("../concerns/api_methods")
4
+
5
+ ApiMethods = YiffSpace::Concerns::ApiMethods
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative("../concerns/attribute_matchers")
4
+
5
+ AttributeMatchers = YiffSpace::Concerns::AttributeMatchers
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative("../concerns/attribute_methods")
4
+
5
+ AttributeMethods = YiffSpace::Concerns::AttributeMethods
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative("../concerns/active_record_extensions")
4
+
5
+ ConcurrencyMethods = YiffSpace::Concerns::ConcurrencyMethods
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative("../concerns/conditional_includes")
4
+
5
+ ConditionalIncludes = YiffSpace::Concerns::ConditionalIncludes
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative("../concerns/current_methods")
4
+
5
+ CurrentMethods = YiffSpace::Concerns::CurrentMethods
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative("../concerns/has_bit_flags")
4
+
5
+ HasBitFlags = YiffSpace::Concerns::HasBitFlags
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative("../concerns/user_class_methods")
4
+
5
+ UserClassMethods = YiffSpace::Concerns::UserClassMethods
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative("../concerns/user_methods")
4
+
5
+ UserMethods = YiffSpace::Concerns::UserMethods
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative("../concerns/user_name_methods")
4
+
5
+ UserNameMethods = YiffSpace::Concerns::UserNameMethods
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative("../concerns/user_resolvable_methods")
4
+
5
+ UserResolvableMethods = YiffSpace::Concerns::UserResolvableMethods
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module YiffSpace
4
- VERSION = "0.0.24"
4
+ VERSION = "0.0.25"
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yiffspace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.24
4
+ version: 0.0.25
5
5
  platform: ruby
6
6
  authors:
7
7
  - Donovan_DMC
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2026-07-11 00:00:00.000000000 Z
10
+ date: 2026-07-14 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: abbrev
@@ -187,10 +187,18 @@ files:
187
187
  - lib/yiffspace/images/banner.rb
188
188
  - lib/yiffspace/images/banner/base.rb
189
189
  - lib/yiffspace/images/banner/discord.rb
190
+ - lib/yiffspace/include/active_record_extensions.rb
190
191
  - lib/yiffspace/include/all.rb
192
+ - lib/yiffspace/include/api_methods.rb
193
+ - lib/yiffspace/include/attribute_matchers.rb
194
+ - lib/yiffspace/include/attribute_methods.rb
191
195
  - lib/yiffspace/include/cache.rb
196
+ - lib/yiffspace/include/concurrency_methods.rb
197
+ - lib/yiffspace/include/conditional_includes.rb
192
198
  - lib/yiffspace/include/current.rb
199
+ - lib/yiffspace/include/current_methods.rb
193
200
  - lib/yiffspace/include/duration_parser.rb
201
+ - lib/yiffspace/include/has_bit_flags.rb
194
202
  - lib/yiffspace/include/helpers.rb
195
203
  - lib/yiffspace/include/open_hash.rb
196
204
  - lib/yiffspace/include/parameter_builder.rb
@@ -203,8 +211,12 @@ files:
203
211
  - lib/yiffspace/include/trace_logger.rb
204
212
  - lib/yiffspace/include/u2id.rb
205
213
  - lib/yiffspace/include/user_attribute.rb
214
+ - lib/yiffspace/include/user_class_methods.rb
206
215
  - lib/yiffspace/include/user_like.rb
216
+ - lib/yiffspace/include/user_methods.rb
217
+ - lib/yiffspace/include/user_name_methods.rb
207
218
  - lib/yiffspace/include/user_resolvable.rb
219
+ - lib/yiffspace/include/user_resolvable_methods.rb
208
220
  - lib/yiffspace/logto_management_client.rb
209
221
  - lib/yiffspace/railtie.rb
210
222
  - lib/yiffspace/search/query_builder.rb