rhino_project_core 0.25.0.beta.1 → 0.30.0.alpha.1
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/lib/generators/rhino/dev/setup/setup_generator.rb +32 -0
- data/lib/generators/rhino/dev/setup/templates/env.tt +3 -0
- data/lib/generators/rhino/model/model_generator.rb +0 -5
- data/lib/rhino/resource/active_storage_extension.rb +7 -24
- data/lib/rhino/sieve/order.rb +1 -1
- data/lib/rhino/version.rb +2 -2
- metadata +16 -16
- data/app/overrides/activeadmin/resource_dsl_override.rb +0 -36
- data/lib/generators/rhino/admin/admin_generator.rb +0 -13
- data/lib/generators/rhino/admin/templates/resource.rb.tt +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '09bab6f8b81658c76669317d949e44e1e0728d7be46cb80793fa2488ffcff097'
|
4
|
+
data.tar.gz: 571b132824ac728b7e8072095a106c9731350abe88ce69d74b46852fe3ada36f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 134e615ee50fbfe6de3f37a04a633dc82b89cdcae1d7c2e881b2000f759bdabae4ff22d2e0912d9d642660ee4ff323238b2d134c4644552082dc2d05e252e896
|
7
|
+
data.tar.gz: 975781708959682419d2f40637cf1833dc316f05d353d12422de0074a1a541f63db49f06d7de18e084ecaaaad3460604df9ccaf929ba5ad1e6050b155e176e18
|
@@ -15,6 +15,8 @@ module Rhino
|
|
15
15
|
class_option :db_port, type: :numeric, default: 5432, group: :database
|
16
16
|
class_option :db_user, type: :string, group: :database
|
17
17
|
class_option :db_password, type: :string, group: :database
|
18
|
+
class_option :redis_port, type: :numeric, default: 6379, group: :redis
|
19
|
+
class_option :redis_database, type: :numeric, default: 0, group: :redis
|
18
20
|
|
19
21
|
attr_reader :server_port,
|
20
22
|
:db_name,
|
@@ -22,6 +24,9 @@ module Rhino
|
|
22
24
|
:db_port,
|
23
25
|
:db_user,
|
24
26
|
:db_password,
|
27
|
+
:redis_host,
|
28
|
+
:redis_port,
|
29
|
+
:redis_database,
|
25
30
|
:dockerized
|
26
31
|
|
27
32
|
source_root File.expand_path("templates", __dir__)
|
@@ -87,6 +92,18 @@ module Rhino
|
|
87
92
|
options[:db_password] || ENV["DB_PASSWORD"] || ""
|
88
93
|
end
|
89
94
|
|
95
|
+
def redis_host_default
|
96
|
+
options[:redis_host] || ENV["REDIS_HOST"] || "localhost"
|
97
|
+
end
|
98
|
+
|
99
|
+
def redis_port_default
|
100
|
+
options[:redis_port] || ENV["REDIS_PORT"]
|
101
|
+
end
|
102
|
+
|
103
|
+
def redis_database_default
|
104
|
+
options[:redis_database] || ENV["REDIS_DATABASE"]
|
105
|
+
end
|
106
|
+
|
90
107
|
def dockerized_default
|
91
108
|
options[:defaults] == "docker" ? "Y" : "N"
|
92
109
|
end
|
@@ -97,6 +114,7 @@ module Rhino
|
|
97
114
|
@server_port = ask_prompt("Port?", server_port_default)
|
98
115
|
|
99
116
|
collect_database_info
|
117
|
+
collect_redis_info
|
100
118
|
end
|
101
119
|
|
102
120
|
def collect_docker_info
|
@@ -108,6 +126,9 @@ module Rhino
|
|
108
126
|
@db_user = "postgres"
|
109
127
|
@db_password = "password"
|
110
128
|
@db_port = 5432
|
129
|
+
@redis_host = "redis"
|
130
|
+
@redis_port = 6379
|
131
|
+
@redis_database = 0
|
111
132
|
|
112
133
|
puts <<~HERE
|
113
134
|
The following docker configuration has been automatically set for you:
|
@@ -115,6 +136,9 @@ module Rhino
|
|
115
136
|
Database port: #{db_port}
|
116
137
|
Database user: #{db_user}
|
117
138
|
Database password: #{db_password}
|
139
|
+
Redis host: #{redis_host}
|
140
|
+
Redis port: #{redis_port}
|
141
|
+
Redis database: #{redis_database}
|
118
142
|
HERE
|
119
143
|
end
|
120
144
|
|
@@ -128,6 +152,14 @@ module Rhino
|
|
128
152
|
nil
|
129
153
|
end
|
130
154
|
|
155
|
+
def collect_redis_info
|
156
|
+
@redis_host ||= ask_prompt("Redis host?", redis_host_default)
|
157
|
+
@redis_port ||= ask_prompt("Redis port?", redis_port_default)
|
158
|
+
@redis_database ||= ask_prompt("Redis database?", redis_database_default)
|
159
|
+
|
160
|
+
nil
|
161
|
+
end
|
162
|
+
|
131
163
|
def project_file(file)
|
132
164
|
File.join(project_dir, file)
|
133
165
|
end
|
@@ -9,6 +9,9 @@ DB_HOST=<%= db_host %>
|
|
9
9
|
DB_PORT=<%= db_port %>
|
10
10
|
DB_USERNAME=<%= db_user %>
|
11
11
|
DB_PASSWORD=<%= db_password %>
|
12
|
+
REDIS_HOST=<%= redis_host %>
|
13
|
+
REDIS_PORT=<%= redis_port %>
|
14
|
+
REDIS_DATABASE=<%= redis_database %>
|
12
15
|
|
13
16
|
# Client
|
14
17
|
VITE_API_ROOT_PATH=$ROOT_URL
|
@@ -11,7 +11,6 @@ module Rhino
|
|
11
11
|
class_option :owner, type: :string, desc: "The model is owned by the reference attribute", group: :owner
|
12
12
|
class_option :base_owner, type: :boolean, default: false, desc: "The model is owned by the base owner", group: :owner
|
13
13
|
class_option :global_owner, type: :boolean, default: false, desc: "The model is globally owned", group: :owner
|
14
|
-
class_option :skip_admin, type: :boolean, default: false, desc: "Skip generating ActiveAdmin resources", group: :admin
|
15
14
|
|
16
15
|
# Parent source paths
|
17
16
|
def source_paths
|
@@ -53,10 +52,6 @@ module Rhino
|
|
53
52
|
end
|
54
53
|
end
|
55
54
|
|
56
|
-
def active_admin_resource
|
57
|
-
generate "rhino:admin", class_name unless options[:skip_admin]
|
58
|
-
end
|
59
|
-
|
60
55
|
protected
|
61
56
|
def check_ownership
|
62
57
|
raise Thor::Error, "Exactly one owner must be defined on a reference or globally" unless base_owner? ^ global_owner? ^ reference_owner?
|
@@ -11,8 +11,6 @@ module Rhino
|
|
11
11
|
included do
|
12
12
|
attribute :url
|
13
13
|
attribute :url_attachment
|
14
|
-
attribute :previews, :json, default: {}
|
15
|
-
attribute :representations, :json, default: {}
|
16
14
|
attribute :variants, :json, default: {}
|
17
15
|
|
18
16
|
rhino_policy :active_storage_attachment
|
@@ -25,35 +23,20 @@ module Rhino
|
|
25
23
|
url(attachment, disposition: :attachment)
|
26
24
|
end
|
27
25
|
|
28
|
-
def
|
29
|
-
|
26
|
+
def variants
|
27
|
+
# Not everything may be processed into a variant based on mime type
|
28
|
+
return unless variable?
|
30
29
|
|
31
30
|
record.attachment_reflections[self.name]&.named_variants&.keys&.index_with do |v|
|
32
|
-
|
31
|
+
variant = variant(v)
|
33
32
|
|
34
33
|
{
|
35
|
-
url: url(
|
36
|
-
url_attachment: url_attachment(
|
34
|
+
url: url(variant),
|
35
|
+
url_attachment: url_attachment(variant)
|
37
36
|
}
|
38
37
|
end
|
39
38
|
end
|
40
39
|
|
41
|
-
# FIXME: Cache for performance
|
42
|
-
def previews
|
43
|
-
# Not everything may be processed into a preview based on mime type
|
44
|
-
return unless previewable?
|
45
|
-
|
46
|
-
representations
|
47
|
-
end
|
48
|
-
|
49
|
-
# FIXME: Cache for performance
|
50
|
-
def variants
|
51
|
-
# Not everything may be processed into a variant based on mime type
|
52
|
-
return unless variable?
|
53
|
-
|
54
|
-
representations
|
55
|
-
end
|
56
|
-
|
57
40
|
def display_name
|
58
41
|
filename.to_s
|
59
42
|
end
|
@@ -61,7 +44,7 @@ module Rhino
|
|
61
44
|
|
62
45
|
class_methods do
|
63
46
|
def readable_properties
|
64
|
-
super + [ "
|
47
|
+
super + [ "variants", "signed_id"]
|
65
48
|
end
|
66
49
|
end
|
67
50
|
|
data/lib/rhino/sieve/order.rb
CHANGED
@@ -13,7 +13,7 @@ module Rhino
|
|
13
13
|
@param = params[:order]
|
14
14
|
|
15
15
|
# Always append id to the end of the order clause to ensure a stable sort for pagination
|
16
|
-
result = apply_order.order(scope.primary_key
|
16
|
+
result = apply_order.order(scope.primary_key)
|
17
17
|
@app.resolve(result, params)
|
18
18
|
end
|
19
19
|
|
data/lib/rhino/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rhino_project_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.30.0.alpha.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- JP Rosevear
|
8
|
+
autorequire:
|
8
9
|
bindir: bin
|
9
10
|
cert_chain: []
|
10
|
-
date:
|
11
|
+
date: 2024-12-08 00:00:00.000000000 Z
|
11
12
|
dependencies:
|
12
13
|
- !ruby/object:Gem::Dependency
|
13
14
|
name: rails
|
@@ -15,20 +16,20 @@ dependencies:
|
|
15
16
|
requirements:
|
16
17
|
- - "~>"
|
17
18
|
- !ruby/object:Gem::Version
|
18
|
-
version:
|
19
|
+
version: 7.2.0
|
19
20
|
- - ">="
|
20
21
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
22
|
+
version: 7.2.0
|
22
23
|
type: :runtime
|
23
24
|
prerelease: false
|
24
25
|
version_requirements: !ruby/object:Gem::Requirement
|
25
26
|
requirements:
|
26
27
|
- - "~>"
|
27
28
|
- !ruby/object:Gem::Version
|
28
|
-
version:
|
29
|
+
version: 7.2.0
|
29
30
|
- - ">="
|
30
31
|
- !ruby/object:Gem::Version
|
31
|
-
version:
|
32
|
+
version: 7.2.0
|
32
33
|
- !ruby/object:Gem::Dependency
|
33
34
|
name: activeadmin
|
34
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -49,14 +50,14 @@ dependencies:
|
|
49
50
|
requirements:
|
50
51
|
- - '='
|
51
52
|
- !ruby/object:Gem::Version
|
52
|
-
version:
|
53
|
+
version: 11.0.0
|
53
54
|
type: :runtime
|
54
55
|
prerelease: false
|
55
56
|
version_requirements: !ruby/object:Gem::Requirement
|
56
57
|
requirements:
|
57
58
|
- - '='
|
58
59
|
- !ruby/object:Gem::Version
|
59
|
-
version:
|
60
|
+
version: 11.0.0
|
60
61
|
- !ruby/object:Gem::Dependency
|
61
62
|
name: analytics-ruby
|
62
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -91,14 +92,14 @@ dependencies:
|
|
91
92
|
requirements:
|
92
93
|
- - '='
|
93
94
|
- !ruby/object:Gem::Version
|
94
|
-
version: 2.
|
95
|
+
version: 2.15.0
|
95
96
|
type: :runtime
|
96
97
|
prerelease: false
|
97
98
|
version_requirements: !ruby/object:Gem::Requirement
|
98
99
|
requirements:
|
99
100
|
- - '='
|
100
101
|
- !ruby/object:Gem::Version
|
101
|
-
version: 2.
|
102
|
+
version: 2.15.0
|
102
103
|
- !ruby/object:Gem::Dependency
|
103
104
|
name: countries
|
104
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -133,14 +134,14 @@ dependencies:
|
|
133
134
|
requirements:
|
134
135
|
- - '='
|
135
136
|
- !ruby/object:Gem::Version
|
136
|
-
version: 1.2.
|
137
|
+
version: 1.2.4
|
137
138
|
type: :runtime
|
138
139
|
prerelease: false
|
139
140
|
version_requirements: !ruby/object:Gem::Requirement
|
140
141
|
requirements:
|
141
142
|
- - '='
|
142
143
|
- !ruby/object:Gem::Version
|
143
|
-
version: 1.2.
|
144
|
+
version: 1.2.4
|
144
145
|
- !ruby/object:Gem::Dependency
|
145
146
|
name: friendly_id
|
146
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -394,7 +395,6 @@ files:
|
|
394
395
|
- app/models/rhino/current.rb
|
395
396
|
- app/models/rhino/user.rb
|
396
397
|
- app/overrides/active_record/nested_error_override.rb
|
397
|
-
- app/overrides/activeadmin/resource_dsl_override.rb
|
398
398
|
- app/overrides/activestorage/direct_uploads_controller_override.rb
|
399
399
|
- app/overrides/activestorage/redirect_controller_override.rb
|
400
400
|
- app/overrides/activestorage/redirect_representation_controller_override.rb
|
@@ -426,8 +426,6 @@ files:
|
|
426
426
|
- lib/commands/rhino/module/new_command.rb
|
427
427
|
- lib/commands/rhino/module/rails_command.rb
|
428
428
|
- lib/commands/rhino/module/test_command.rb
|
429
|
-
- lib/generators/rhino/admin/admin_generator.rb
|
430
|
-
- lib/generators/rhino/admin/templates/resource.rb.tt
|
431
429
|
- lib/generators/rhino/dev/setup/setup_generator.rb
|
432
430
|
- lib/generators/rhino/dev/setup/templates/env.tt
|
433
431
|
- lib/generators/rhino/dev/setup/templates/prepare-commit-msg
|
@@ -510,6 +508,7 @@ homepage: ''
|
|
510
508
|
licenses:
|
511
509
|
- MIT
|
512
510
|
metadata: {}
|
511
|
+
post_install_message:
|
513
512
|
rdoc_options: []
|
514
513
|
require_paths:
|
515
514
|
- lib
|
@@ -524,7 +523,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
524
523
|
- !ruby/object:Gem::Version
|
525
524
|
version: '0'
|
526
525
|
requirements: []
|
527
|
-
rubygems_version: 3.
|
526
|
+
rubygems_version: 3.5.22
|
527
|
+
signing_key:
|
528
528
|
specification_version: 4
|
529
529
|
summary: ''
|
530
530
|
test_files: []
|
@@ -1,36 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "active_admin/resource_dsl"
|
4
|
-
|
5
|
-
module ActiveAdmin
|
6
|
-
# This is the class where all the register blocks are evaluated.
|
7
|
-
class ResourceDSL
|
8
|
-
# Runs in the context of the ResourceDSL
|
9
|
-
def rhino_filters
|
10
|
-
klass = self.config.resource_class_name.constantize
|
11
|
-
klass.ransackable_filters.each do |attr|
|
12
|
-
filter attr.to_sym
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
# Runs in the context of the controller
|
17
|
-
def rhino_permit_params(permitted: [])
|
18
|
-
permit_params do
|
19
|
-
klass = self.active_admin_config.resource_class_name.constantize
|
20
|
-
|
21
|
-
permitted += klass.creatable_properties.map(&:to_sym) if params[:action] == "create"
|
22
|
-
permitted += klass.updatable_properties.map(&:to_sym) if params[:action] == "update"
|
23
|
-
|
24
|
-
# Allow owner and other references to be assigned or changed by admin
|
25
|
-
# All possible relations
|
26
|
-
references = klass.describe[:properties].select { |_p, d| d[:type] == :reference }.keys
|
27
|
-
|
28
|
-
# Restrict to the valid create/update properties
|
29
|
-
references.select! { |r| permitted.include?(r.to_sym) }
|
30
|
-
permitted += references.map { |r| klass.reflections[r].foreign_key }
|
31
|
-
|
32
|
-
permitted.uniq
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "rails/generators"
|
4
|
-
|
5
|
-
module Rhino
|
6
|
-
class AdminGenerator < Rails::Generators::NamedBase
|
7
|
-
source_root File.expand_path("templates", __dir__)
|
8
|
-
|
9
|
-
def admin
|
10
|
-
template "resource.rb", "app/admin/#{file_path.tr('/', '_').pluralize}.rb" unless options[:skip_admin]
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|