yiffspace 0.1.7 → 0.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.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -10
  3. data/README.md +18 -1
  4. data/Rakefile +6 -7
  5. data/lib/yiffspace/version.rb +1 -1
  6. data/lib/yiffspace.rb +26 -27
  7. metadata +104 -139
  8. data/app/assets/config/yiffspace_manifest.js +0 -1
  9. data/app/assets/stylesheets/yiffspace/application.css +0 -30
  10. data/app/controllers/yiff_space/application_controller.rb +0 -6
  11. data/app/helpers/yiff_space/application_helper.rb +0 -6
  12. data/app/models/yiff_space/application_record.rb +0 -7
  13. data/app/views/layouts/yiff_space/application.html.erb +0 -17
  14. data/app/views/yiff_space/error.html.erb +0 -3
  15. data/lib/yiffspace/concerns/active_record_extensions.rb +0 -45
  16. data/lib/yiffspace/concerns/api_methods.rb +0 -101
  17. data/lib/yiffspace/concerns/attribute_matchers.rb +0 -100
  18. data/lib/yiffspace/concerns/attribute_methods.rb +0 -39
  19. data/lib/yiffspace/concerns/concurrency_methods.rb +0 -20
  20. data/lib/yiffspace/concerns/conditional_includes.rb +0 -43
  21. data/lib/yiffspace/concerns/current_methods.rb +0 -60
  22. data/lib/yiffspace/concerns/has_bit_flags.rb +0 -59
  23. data/lib/yiffspace/concerns/user_class_methods.rb +0 -32
  24. data/lib/yiffspace/concerns/user_methods.rb +0 -77
  25. data/lib/yiffspace/concerns/user_name_methods.rb +0 -53
  26. data/lib/yiffspace/concerns/user_resolvable_methods.rb +0 -38
  27. data/lib/yiffspace/config_builder.rb +0 -192
  28. data/lib/yiffspace/configuration/images.rb +0 -22
  29. data/lib/yiffspace/configuration.rb +0 -116
  30. data/lib/yiffspace/core_ext/active_record/all.rb +0 -8
  31. data/lib/yiffspace/core_ext/active_record/cross_join_lateral.rb +0 -7
  32. data/lib/yiffspace/core_ext/active_record/cross_unnest.rb +0 -7
  33. data/lib/yiffspace/core_ext/active_record/left_join_lateral.rb +0 -7
  34. data/lib/yiffspace/core_ext/active_record/left_unnest.rb +0 -7
  35. data/lib/yiffspace/core_ext/active_record/unnest.rb +0 -8
  36. data/lib/yiffspace/core_ext/active_record/where_chain.rb +0 -6
  37. data/lib/yiffspace/core_ext/all.rb +0 -8
  38. data/lib/yiffspace/core_ext/arel/all.rb +0 -4
  39. data/lib/yiffspace/core_ext/arel/cross_join_lateral.rb +0 -21
  40. data/lib/yiffspace/core_ext/arel/left_join_lateral.rb +0 -21
  41. data/lib/yiffspace/core_ext/enumerable/all.rb +0 -3
  42. data/lib/yiffspace/core_ext/enumerable/parallel.rb +0 -7
  43. data/lib/yiffspace/core_ext/hash/all.rb +0 -3
  44. data/lib/yiffspace/core_ext/hash/to_open_hash.rb +0 -7
  45. data/lib/yiffspace/core_ext/object/all.rb +0 -4
  46. data/lib/yiffspace/core_ext/object/to_b.rb +0 -7
  47. data/lib/yiffspace/core_ext/object/truthy_falsy.rb +0 -7
  48. data/lib/yiffspace/core_ext/string/all.rb +0 -3
  49. data/lib/yiffspace/core_ext/string/sql.rb +0 -7
  50. data/lib/yiffspace/engine.rb +0 -23
  51. data/lib/yiffspace/extensions/active_record/cross_join_lateral.rb +0 -23
  52. data/lib/yiffspace/extensions/active_record/cross_unnest.rb +0 -15
  53. data/lib/yiffspace/extensions/active_record/left_join_lateral.rb +0 -24
  54. data/lib/yiffspace/extensions/active_record/left_unnest.rb +0 -15
  55. data/lib/yiffspace/extensions/active_record/unnest.rb +0 -20
  56. data/lib/yiffspace/extensions/active_record/where_chain.rb +0 -107
  57. data/lib/yiffspace/extensions/arel/nodes/cross_join_lateral.rb +0 -17
  58. data/lib/yiffspace/extensions/arel/nodes/left_join_lateral.rb +0 -17
  59. data/lib/yiffspace/extensions/arel/table/cross_join_lateral.rb +0 -15
  60. data/lib/yiffspace/extensions/arel/table/left_join_lateral.rb +0 -15
  61. data/lib/yiffspace/extensions/arel/visitors/postgresql/cross_join_lateral.rb +0 -19
  62. data/lib/yiffspace/extensions/arel/visitors/postgresql/left_join_lateral.rb +0 -23
  63. data/lib/yiffspace/extensions/enumerable/parallel.rb +0 -39
  64. data/lib/yiffspace/extensions/hash/to_open_hash.rb +0 -15
  65. data/lib/yiffspace/extensions/object/to_b.rb +0 -22
  66. data/lib/yiffspace/extensions/object/truthy_falsy.rb +0 -35
  67. data/lib/yiffspace/extensions/string/sql.rb +0 -21
  68. data/lib/yiffspace/images/avatar/base.rb +0 -41
  69. data/lib/yiffspace/images/avatar/discord.rb +0 -37
  70. data/lib/yiffspace/images/avatar/gravatar.rb +0 -21
  71. data/lib/yiffspace/images/avatar.rb +0 -33
  72. data/lib/yiffspace/images/banner/base.rb +0 -41
  73. data/lib/yiffspace/images/banner/discord.rb +0 -37
  74. data/lib/yiffspace/images/banner.rb +0 -33
  75. data/lib/yiffspace/images.rb +0 -6
  76. data/lib/yiffspace/include/active_record_extensions.rb +0 -5
  77. data/lib/yiffspace/include/all.rb +0 -31
  78. data/lib/yiffspace/include/api_methods.rb +0 -5
  79. data/lib/yiffspace/include/attribute_matchers.rb +0 -5
  80. data/lib/yiffspace/include/attribute_methods.rb +0 -5
  81. data/lib/yiffspace/include/cache.rb +0 -5
  82. data/lib/yiffspace/include/concurrency_methods.rb +0 -5
  83. data/lib/yiffspace/include/conditional_includes.rb +0 -5
  84. data/lib/yiffspace/include/current.rb +0 -5
  85. data/lib/yiffspace/include/current_methods.rb +0 -5
  86. data/lib/yiffspace/include/duration_parser.rb +0 -5
  87. data/lib/yiffspace/include/has_bit_flags.rb +0 -5
  88. data/lib/yiffspace/include/helpers.rb +0 -5
  89. data/lib/yiffspace/include/open_hash.rb +0 -5
  90. data/lib/yiffspace/include/parameter_builder.rb +0 -5
  91. data/lib/yiffspace/include/parse_value.rb +0 -5
  92. data/lib/yiffspace/include/query_builder.rb +0 -5
  93. data/lib/yiffspace/include/query_dsl.rb +0 -5
  94. data/lib/yiffspace/include/query_helper.rb +0 -5
  95. data/lib/yiffspace/include/routes.rb +0 -5
  96. data/lib/yiffspace/include/table_builder.rb +0 -5
  97. data/lib/yiffspace/include/trace_logger.rb +0 -5
  98. data/lib/yiffspace/include/u2id.rb +0 -5
  99. data/lib/yiffspace/include/user_attribute.rb +0 -5
  100. data/lib/yiffspace/include/user_class_methods.rb +0 -5
  101. data/lib/yiffspace/include/user_like.rb +0 -5
  102. data/lib/yiffspace/include/user_methods.rb +0 -5
  103. data/lib/yiffspace/include/user_name_methods.rb +0 -5
  104. data/lib/yiffspace/include/user_resolvable.rb +0 -5
  105. data/lib/yiffspace/include/user_resolvable_methods.rb +0 -5
  106. data/lib/yiffspace/search/query_builder.rb +0 -83
  107. data/lib/yiffspace/search/query_dsl.rb +0 -119
  108. data/lib/yiffspace/search/query_helper.rb +0 -49
  109. data/lib/yiffspace/serializers/avatar_serializer.rb +0 -21
  110. data/lib/yiffspace/serializers/banner_serializer.rb +0 -21
  111. data/lib/yiffspace/serializers/user_resolvable_serializer.rb +0 -21
  112. data/lib/yiffspace/utils/cache.rb +0 -40
  113. data/lib/yiffspace/utils/current.rb +0 -43
  114. data/lib/yiffspace/utils/duration_parser.rb +0 -24
  115. data/lib/yiffspace/utils/helpers.rb +0 -25
  116. data/lib/yiffspace/utils/open_hash.rb +0 -63
  117. data/lib/yiffspace/utils/parameter_builder.rb +0 -121
  118. data/lib/yiffspace/utils/parse_value.rb +0 -174
  119. data/lib/yiffspace/utils/routes.rb +0 -28
  120. data/lib/yiffspace/utils/set_env_constraint.rb +0 -18
  121. data/lib/yiffspace/utils/table_builder.rb +0 -169
  122. data/lib/yiffspace/utils/trace_logger.rb +0 -91
  123. data/lib/yiffspace/utils/user_attribute.rb +0 -272
  124. data/lib/yiffspace/utils/user_like.rb +0 -8
  125. data/lib/yiffspace/utils/user_resolvable.rb +0 -61
  126. data/lib/yiffspace/utils/user_to_id.rb +0 -11
  127. data/lib/yiffspace/utils.rb +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 005aad0fa1bb9ee0b93c116a8ff16ee6b9221393b7218ace6458a0a205edf851
4
- data.tar.gz: 3184951a3460ebb9c4b3afc7174f2956789d7a1617b6b6bdf0a8c7567298ab71
3
+ metadata.gz: b843f1611fa758b7c3b1b193138f84659f796b5d339a7528bf120d252bbbfc2c
4
+ data.tar.gz: 4ed73277ad5da58a91aeb8a0f8cdf356431b3f3310ed38cbcefb46f7460a9dbf
5
5
  SHA512:
6
- metadata.gz: c3aedc62b4a752a0124e8a41ac8aa013ea5a54cc7f95d5876afda928bcad70e9b13b0744a42cde382dfb2a7d4af3f7d906493971c28f0813d9f24de7ef70fb23
7
- data.tar.gz: 0063344df91e5a741fe752be20b1f591b51df35bbc16746a7eb51d155c16b77c8d39824a7a8f0dc7c2f852444c48fe802b84f00ac9a7ab6e34af08c0489b46bc
6
+ metadata.gz: 0af94549a33975740e814d9099debc8b902dc1b462f60d65c2c5e7c4bc7897083fd81404d9d68c297a457a502205d57b295b37cc864777fa1ad27b0ce80f4069
7
+ data.tar.gz: 60291b08e9c6bc58ac8e248b70571466bfa19aa37857e1f405e5bac9a39001bbe12154741cc5a35a1e6310261b9e2faaf47cf9ae9dd52720ced4faddbcc297e5
data/CHANGELOG.md CHANGED
@@ -1,11 +1,5 @@
1
- ## 0.1.0
1
+ ## 0.2.0
2
2
 
3
- - **Breaking:** extracted the Logto auth engine (`YiffSpace::Auth::*`) into a
4
- separate gem, [`yiffspace-auth`](https://github.com/YiffSpace/Auth.rb). Apps
5
- using auth need to add that gem alongside `yiffspace`.
6
- - `YiffSpace::Configuration#auth`/`#add_auth`/`#add_default_auth` and the
7
- `logto_api_*`/`discord_bot_token` settings moved to `yiffspace-auth`.
8
- - Replaced the dead `YiffSpace::Railtie` with a real `YiffSpace::Engine <
9
- Rails::Engine`, so the shared `app/` directory (ApplicationController,
10
- layout, error view, CSS, ActiveJob serializers) actually loads into host
11
- apps again.
3
+ - Became a husk gem that depends on every `yiffspace-*` gem instead of
4
+ containing code directly - see the individual gems' own CHANGELOGs
5
+ (particularly `yiffspace-core`'s) for what moved where.
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # YiffSpace
2
2
 
3
- Collection of ruby code for https://yiff.space and related projects
3
+ A husk that just depends on every `yiffspace-*` gem, for apps that want
4
+ everything instead of picking specific gems.
4
5
 
5
6
  ## Installation
6
7
 
@@ -16,6 +17,22 @@ And then execute:
16
17
  $ bundle install
17
18
  ```
18
19
 
20
+ ## What's in here
21
+
22
+ - [`yiffspace-core`](../yiffspace-core) - Rails engine, Configuration, shared concerns/utils
23
+ - [`yiffspace-config`](../yiffspace-config) - standalone `ConfigBuilder`
24
+ - [`yiffspace-ext`](../yiffspace-ext) - generic core extensions + `WhereChain`
25
+ - [`yiffspace-arel`](../yiffspace-arel) - Postgres lateral-join/unnest extensions
26
+ - [`yiffspace-images`](../yiffspace-images) - avatar/banner URLs
27
+ - [`yiffspace-tables`](../yiffspace-tables) - HTML table-building DSL
28
+ - [`yiffspace-search`](../yiffspace-search) - query-param search DSL
29
+ - [`yiffspace-user`](../yiffspace-user) - User/Current/Resolvable concerns
30
+ - [`yiffspace-include`](../yiffspace-include) - deprecated global-constant aliases
31
+ - [`yiffspace-auth`](../yiffspace-auth) - Logto-based auth engine
32
+ - [`yiffspace-fixers`](../yiffspace-fixers) - one-time db/fixes scripts
33
+
34
+ Only need a subset? Depend on the specific gem(s) instead of this one.
35
+
19
36
  ## Contributing
20
37
 
21
38
  Go away
data/Rakefile CHANGED
@@ -1,10 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require("bundler/setup")
4
-
5
- APP_RAKEFILE = File.expand_path("test/dummy/Rakefile", __dir__)
6
- load("rails/tasks/engine.rake")
7
-
8
- load("rails/tasks/statistics.rake")
9
-
10
3
  require("bundler/gem_tasks")
4
+
5
+ # CI releases from an already-tagged, already-pushed commit checked out at a detached HEAD, so
6
+ # the default release task's git tag/push step has nothing to do and fails trying to push a
7
+ # branch ref that does not exist in that checkout.
8
+ Rake::Task["release"].clear
9
+ task("release" => "release:rubygem_push")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module YiffSpace
4
- VERSION = "0.1.7"
4
+ VERSION = "0.2.0"
5
5
  end
data/lib/yiffspace.rb CHANGED
@@ -1,30 +1,29 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module YiffSpace
4
- class << self
5
- def config
6
- @config ||= Configuration.new
7
- end
3
+ # A husk that just depends on every yiffspace-* gem, for apps that want everything instead of
4
+ # picking specific gems. See each gem's own README for what it provides:
5
+ #
6
+ # yiffspace-core - Rails engine, Configuration, shared concerns/utils
7
+ # yiffspace-config - standalone ConfigBuilder
8
+ # yiffspace-ext - generic core extensions + WhereChain
9
+ # yiffspace-arel - Postgres lateral-join/unnest extensions
10
+ # yiffspace-images - avatar/banner URLs
11
+ # yiffspace-tables - HTML table-building DSL
12
+ # yiffspace-search - query-param search DSL
13
+ # yiffspace-user - User/Current/Resolvable concerns
14
+ # yiffspace-include - deprecated global-constant aliases
15
+ # yiffspace-auth - Logto-based auth engine
16
+ # yiffspace-fixers - one-time db/fixes scripts
8
17
 
9
- def configure
10
- yield(config)
11
- end
12
- end
13
- end
14
-
15
- require("zeitwerk")
16
- require("active_support/all")
17
- require("active_support/core_ext/object/blank")
18
-
19
- loader = Zeitwerk::Loader.for_gem
20
- loader.inflector.inflect({ "postgresql" => "PostgreSQL", "yiffspace" => "YiffSpace", "query_dsl" => "QueryDSL" })
21
- loader.ignore("#{__dir__}/yiffspace/core_ext")
22
- loader.ignore("#{__dir__}/yiffspace/include")
23
- loader.ignore("#{__dir__}/yiffspace/engine.rb")
24
- loader.setup
25
-
26
- # Require the engine eagerly so it registers with Rails before the host app's
27
- # active_support.initialize_per_engine_zeitwerk_loaders initializer runs. Without this,
28
- # the engine is only loaded lazily (after Zeitwerk setup) and its app/controllers
29
- # path is never added to the app's autoload roots.
30
- require_relative("yiffspace/engine") if defined?(Rails)
18
+ require("yiffspace/config")
19
+ require("yiffspace/core")
20
+ require("yiffspace/ext")
21
+ require("yiffspace/arel")
22
+ require("yiffspace/images")
23
+ require("yiffspace/tables")
24
+ require("yiffspace/user")
25
+ require("yiffspace/search")
26
+ require("yiffspace/include")
27
+ require("yiffspace/auth")
28
+ require("yiffspace/fixers")
29
+ require_relative("yiffspace/version")
metadata CHANGED
@@ -1,85 +1,170 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yiffspace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Donovan_DMC
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2026-08-21 00:00:00.000000000 Z
10
+ date: 2026-09-04 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
- name: abbrev
13
+ name: yiffspace-arel
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: 0.1.2
18
+ version: 0.0.1
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
- version: 0.1.2
25
+ version: 0.0.1
26
26
  - !ruby/object:Gem::Dependency
27
- name: httparty
27
+ name: yiffspace-auth
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: '0.24'
32
+ version: 0.0.1
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: '0.24'
39
+ version: 0.0.1
40
40
  - !ruby/object:Gem::Dependency
41
- name: rails
41
+ name: yiffspace-config
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: '8.1'
46
+ version: 0.0.1
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: '8.1'
53
+ version: 0.0.1
54
54
  - !ruby/object:Gem::Dependency
55
- name: request_store
55
+ name: yiffspace-core
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: '1.7'
60
+ version: 0.2.0
61
61
  type: :runtime
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - ">="
66
66
  - !ruby/object:Gem::Version
67
- version: '1.7'
67
+ version: 0.2.0
68
68
  - !ruby/object:Gem::Dependency
69
- name: zeitwerk
69
+ name: yiffspace-ext
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: '2.6'
74
+ version: 0.0.1
75
75
  type: :runtime
76
76
  prerelease: false
77
77
  version_requirements: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - ">="
80
80
  - !ruby/object:Gem::Version
81
- version: '2.6'
82
- description: Collection of ruby code for https://yiff.space and related projects
81
+ version: 0.0.1
82
+ - !ruby/object:Gem::Dependency
83
+ name: yiffspace-fixers
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: 0.0.1
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 0.0.1
96
+ - !ruby/object:Gem::Dependency
97
+ name: yiffspace-images
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 0.0.1
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: 0.0.1
110
+ - !ruby/object:Gem::Dependency
111
+ name: yiffspace-include
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: 0.0.1
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: 0.0.1
124
+ - !ruby/object:Gem::Dependency
125
+ name: yiffspace-search
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: 0.0.1
131
+ type: :runtime
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: 0.0.1
138
+ - !ruby/object:Gem::Dependency
139
+ name: yiffspace-tables
140
+ requirement: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: 0.0.1
145
+ type: :runtime
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: 0.0.1
152
+ - !ruby/object:Gem::Dependency
153
+ name: yiffspace-user
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: 0.0.1
159
+ type: :runtime
160
+ prerelease: false
161
+ version_requirements: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: 0.0.1
166
+ description: Depends on every yiffspace-* gem, for https://yiff.space and related
167
+ projects
83
168
  email:
84
169
  - hewwo@yiff.rocks
85
170
  executables: []
@@ -90,127 +175,7 @@ files:
90
175
  - LICENSE
91
176
  - README.md
92
177
  - Rakefile
93
- - app/assets/config/yiffspace_manifest.js
94
- - app/assets/stylesheets/yiffspace/application.css
95
- - app/controllers/yiff_space/application_controller.rb
96
- - app/helpers/yiff_space/application_helper.rb
97
- - app/models/yiff_space/application_record.rb
98
- - app/views/layouts/yiff_space/application.html.erb
99
- - app/views/yiff_space/error.html.erb
100
178
  - lib/yiffspace.rb
101
- - lib/yiffspace/concerns/active_record_extensions.rb
102
- - lib/yiffspace/concerns/api_methods.rb
103
- - lib/yiffspace/concerns/attribute_matchers.rb
104
- - lib/yiffspace/concerns/attribute_methods.rb
105
- - lib/yiffspace/concerns/concurrency_methods.rb
106
- - lib/yiffspace/concerns/conditional_includes.rb
107
- - lib/yiffspace/concerns/current_methods.rb
108
- - lib/yiffspace/concerns/has_bit_flags.rb
109
- - lib/yiffspace/concerns/user_class_methods.rb
110
- - lib/yiffspace/concerns/user_methods.rb
111
- - lib/yiffspace/concerns/user_name_methods.rb
112
- - lib/yiffspace/concerns/user_resolvable_methods.rb
113
- - lib/yiffspace/config_builder.rb
114
- - lib/yiffspace/configuration.rb
115
- - lib/yiffspace/configuration/images.rb
116
- - lib/yiffspace/core_ext/active_record/all.rb
117
- - lib/yiffspace/core_ext/active_record/cross_join_lateral.rb
118
- - lib/yiffspace/core_ext/active_record/cross_unnest.rb
119
- - lib/yiffspace/core_ext/active_record/left_join_lateral.rb
120
- - lib/yiffspace/core_ext/active_record/left_unnest.rb
121
- - lib/yiffspace/core_ext/active_record/unnest.rb
122
- - lib/yiffspace/core_ext/active_record/where_chain.rb
123
- - lib/yiffspace/core_ext/all.rb
124
- - lib/yiffspace/core_ext/arel/all.rb
125
- - lib/yiffspace/core_ext/arel/cross_join_lateral.rb
126
- - lib/yiffspace/core_ext/arel/left_join_lateral.rb
127
- - lib/yiffspace/core_ext/enumerable/all.rb
128
- - lib/yiffspace/core_ext/enumerable/parallel.rb
129
- - lib/yiffspace/core_ext/hash/all.rb
130
- - lib/yiffspace/core_ext/hash/to_open_hash.rb
131
- - lib/yiffspace/core_ext/object/all.rb
132
- - lib/yiffspace/core_ext/object/to_b.rb
133
- - lib/yiffspace/core_ext/object/truthy_falsy.rb
134
- - lib/yiffspace/core_ext/string/all.rb
135
- - lib/yiffspace/core_ext/string/sql.rb
136
- - lib/yiffspace/engine.rb
137
- - lib/yiffspace/extensions/active_record/cross_join_lateral.rb
138
- - lib/yiffspace/extensions/active_record/cross_unnest.rb
139
- - lib/yiffspace/extensions/active_record/left_join_lateral.rb
140
- - lib/yiffspace/extensions/active_record/left_unnest.rb
141
- - lib/yiffspace/extensions/active_record/unnest.rb
142
- - lib/yiffspace/extensions/active_record/where_chain.rb
143
- - lib/yiffspace/extensions/arel/nodes/cross_join_lateral.rb
144
- - lib/yiffspace/extensions/arel/nodes/left_join_lateral.rb
145
- - lib/yiffspace/extensions/arel/table/cross_join_lateral.rb
146
- - lib/yiffspace/extensions/arel/table/left_join_lateral.rb
147
- - lib/yiffspace/extensions/arel/visitors/postgresql/cross_join_lateral.rb
148
- - lib/yiffspace/extensions/arel/visitors/postgresql/left_join_lateral.rb
149
- - lib/yiffspace/extensions/enumerable/parallel.rb
150
- - lib/yiffspace/extensions/hash/to_open_hash.rb
151
- - lib/yiffspace/extensions/object/to_b.rb
152
- - lib/yiffspace/extensions/object/truthy_falsy.rb
153
- - lib/yiffspace/extensions/string/sql.rb
154
- - lib/yiffspace/images.rb
155
- - lib/yiffspace/images/avatar.rb
156
- - lib/yiffspace/images/avatar/base.rb
157
- - lib/yiffspace/images/avatar/discord.rb
158
- - lib/yiffspace/images/avatar/gravatar.rb
159
- - lib/yiffspace/images/banner.rb
160
- - lib/yiffspace/images/banner/base.rb
161
- - lib/yiffspace/images/banner/discord.rb
162
- - lib/yiffspace/include/active_record_extensions.rb
163
- - lib/yiffspace/include/all.rb
164
- - lib/yiffspace/include/api_methods.rb
165
- - lib/yiffspace/include/attribute_matchers.rb
166
- - lib/yiffspace/include/attribute_methods.rb
167
- - lib/yiffspace/include/cache.rb
168
- - lib/yiffspace/include/concurrency_methods.rb
169
- - lib/yiffspace/include/conditional_includes.rb
170
- - lib/yiffspace/include/current.rb
171
- - lib/yiffspace/include/current_methods.rb
172
- - lib/yiffspace/include/duration_parser.rb
173
- - lib/yiffspace/include/has_bit_flags.rb
174
- - lib/yiffspace/include/helpers.rb
175
- - lib/yiffspace/include/open_hash.rb
176
- - lib/yiffspace/include/parameter_builder.rb
177
- - lib/yiffspace/include/parse_value.rb
178
- - lib/yiffspace/include/query_builder.rb
179
- - lib/yiffspace/include/query_dsl.rb
180
- - lib/yiffspace/include/query_helper.rb
181
- - lib/yiffspace/include/routes.rb
182
- - lib/yiffspace/include/table_builder.rb
183
- - lib/yiffspace/include/trace_logger.rb
184
- - lib/yiffspace/include/u2id.rb
185
- - lib/yiffspace/include/user_attribute.rb
186
- - lib/yiffspace/include/user_class_methods.rb
187
- - lib/yiffspace/include/user_like.rb
188
- - lib/yiffspace/include/user_methods.rb
189
- - lib/yiffspace/include/user_name_methods.rb
190
- - lib/yiffspace/include/user_resolvable.rb
191
- - lib/yiffspace/include/user_resolvable_methods.rb
192
- - lib/yiffspace/search/query_builder.rb
193
- - lib/yiffspace/search/query_dsl.rb
194
- - lib/yiffspace/search/query_helper.rb
195
- - lib/yiffspace/serializers/avatar_serializer.rb
196
- - lib/yiffspace/serializers/banner_serializer.rb
197
- - lib/yiffspace/serializers/user_resolvable_serializer.rb
198
- - lib/yiffspace/utils.rb
199
- - lib/yiffspace/utils/cache.rb
200
- - lib/yiffspace/utils/current.rb
201
- - lib/yiffspace/utils/duration_parser.rb
202
- - lib/yiffspace/utils/helpers.rb
203
- - lib/yiffspace/utils/open_hash.rb
204
- - lib/yiffspace/utils/parameter_builder.rb
205
- - lib/yiffspace/utils/parse_value.rb
206
- - lib/yiffspace/utils/routes.rb
207
- - lib/yiffspace/utils/set_env_constraint.rb
208
- - lib/yiffspace/utils/table_builder.rb
209
- - lib/yiffspace/utils/trace_logger.rb
210
- - lib/yiffspace/utils/user_attribute.rb
211
- - lib/yiffspace/utils/user_like.rb
212
- - lib/yiffspace/utils/user_resolvable.rb
213
- - lib/yiffspace/utils/user_to_id.rb
214
179
  - lib/yiffspace/version.rb
215
180
  homepage: https://yiff.space
216
181
  licenses:
@@ -237,5 +202,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
237
202
  requirements: []
238
203
  rubygems_version: 3.6.2
239
204
  specification_version: 4
240
- summary: Collection of ruby code for https://yiff.space and related projects
205
+ summary: Depends on every yiffspace-* gem, for https://yiff.space and related projects
241
206
  test_files: []
@@ -1 +0,0 @@
1
- //= link_directory ../stylesheets/yiffspace .css
@@ -1,30 +0,0 @@
1
- /*
2
- * This is a manifest file that'll be compiled into application.css, which will include all the files
3
- * listed below.
4
- *
5
- * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
- * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
- *
8
- * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
- * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10
- * files in this directory. Styles in this file should be added after the last require_* statement.
11
- * It is generally better to create a new file per style scope.
12
- *
13
- *= require_tree .
14
- *= require_self
15
- */
16
-
17
- body {
18
- background-color: #2C2F33;
19
- color: #FFFDD0;
20
- font-size: 2rem;
21
- }
22
-
23
- body div#page {
24
- text-align: center;
25
-
26
- ul.permissions-list {
27
- display: inline-block;
28
- text-align: left;
29
- }
30
- }
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module YiffSpace
4
- class ApplicationController < ActionController::Base
5
- end
6
- end
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module YiffSpace
4
- module ApplicationHelper
5
- end
6
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module YiffSpace
4
- class ApplicationRecord < ActiveRecord::Base
5
- self.abstract_class = true
6
- end
7
- end
@@ -1,17 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>YiffSpace</title>
5
- <%= csrf_meta_tags %>
6
- <%= csp_meta_tag %>
7
-
8
- <%= stylesheet_link_tag("yiffspace/application", media: "all") %>
9
- </head>
10
- <body>
11
-
12
- <div id="page">
13
- <%= yield %>
14
- </div>
15
-
16
- </body>
17
- </html>
@@ -1,3 +0,0 @@
1
- <%# locals: (message:) %>
2
- <h1 class="title">Error</h1>
3
- <p class="message"><%= message %></p>
@@ -1,45 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module YiffSpace
4
- module Concerns
5
- module ActiveRecordExtensions
6
- extend(ActiveSupport::Concern)
7
-
8
- module ClassMethods
9
- def without_timeout
10
- original = statement_timeout
11
- connection.execute("SET STATEMENT_TIMEOUT = 0") unless Rails.env.test?
12
- yield
13
- ensure
14
- connection.execute("SET STATEMENT_TIMEOUT = #{original}") unless Rails.env.test?
15
- end
16
-
17
- def with_timeout(time, default_value = nil)
18
- original = statement_timeout
19
- connection.execute("SET STATEMENT_TIMEOUT = #{time}") unless Rails.env.test?
20
- yield
21
- rescue ::ActiveRecord::StatementInvalid => e
22
- Rails.logger.warn("Statement timeout exceeded: #{e.message}")
23
- default_value
24
- ensure
25
- connection.execute("SET STATEMENT_TIMEOUT = #{original}") unless Rails.env.test?
26
- end
27
-
28
- def statement_timeout
29
- YiffSpace.config.application_record_class.connection.select_one("SELECT setting FROM pg_settings WHERE name = 'statement_timeout'")["setting"].to_i
30
- end
31
-
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)
35
- return function if type.nil?
36
-
37
- joins(type.new(
38
- function,
39
- ::Arel::Nodes::On.new(Arel.sql("TRUE")),
40
- ))
41
- end
42
- end
43
- end
44
- end
45
- end