rhino_project_core 0.22.0.beta.11 → 0.22.0.beta.13

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: a7d64b1d98a4680d4b4cbace8ab4cf0a1ed1d6a6be95753cd38fce39920eb601
4
- data.tar.gz: 3158f9679d1733acbcef8adeb798d352427b78db72f581b50367c75293acaca1
3
+ metadata.gz: b96c00a690cdfab11d3c180d7704196dc989c76a3c35bff71f03a1aaeba501f2
4
+ data.tar.gz: f6ca881b78da8153718ab4b85e117eceeb3199f4a029f00fc5b1d9f202b67619
5
5
  SHA512:
6
- metadata.gz: 84986b59ca9a04b610762b3c277287a898959f0abbcb952de57ae0b16130704000e779249a81aada37298e344fb1f5db771cd2c86d0010e2104a04afd516cd54
7
- data.tar.gz: e2b47e876f328e7e147c1c3d5b7412c05e1dffb44ccc4e8f890e2b8b9c1e2f5bb5179e36e0ec68bc02a15fb9866916c4c1bf3abd672fb4244e1381a8bc805e03
6
+ metadata.gz: e209f50763fcfb3ee4c095f299f2b7da907a7ef5cc34ca363e73cb22010914e079a22f1ee31557665b17fefaab3c065c1237fb65911e5a987aa60d5b5947cf6e
7
+ data.tar.gz: 6cbfecec1f19bab4cb0e212ecee73fc2c7bddc02b03a1fb151b41f0ef92279a77b4c7399f8fc052705368473a1a7772653067423a74c194f2e238d74d49fbc6a
@@ -0,0 +1,36 @@
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
@@ -0,0 +1,13 @@
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
@@ -0,0 +1,4 @@
1
+ ActiveAdmin.register <%= class_name %> do
2
+ rhino_filters
3
+ rhino_permit_params
4
+ end
@@ -11,6 +11,7 @@ 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
14
15
 
15
16
  # Parent source paths
16
17
  def source_paths
@@ -52,6 +53,10 @@ module Rhino
52
53
  end
53
54
  end
54
55
 
56
+ def active_admin_resource
57
+ generate "rhino:admin", class_name unless options[:skip_admin]
58
+ end
59
+
55
60
  protected
56
61
  def check_ownership
57
62
  raise Thor::Error, "Exactly one owner must be defined on a reference or globally" unless base_owner? ^ global_owner? ^ reference_owner?
data/lib/rhino/version.rb CHANGED
@@ -10,7 +10,7 @@ module Rhino
10
10
  MAJOR = 0
11
11
  MINOR = 22
12
12
  TINY = 0
13
- PRE = "beta.11"
13
+ PRE = "beta.13"
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
16
16
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rhino_project_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.0.beta.11
4
+ version: 0.22.0.beta.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - JP Rosevear
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-01-05 00:00:00.000000000 Z
11
+ date: 2025-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -395,6 +395,7 @@ files:
395
395
  - app/models/rhino/current.rb
396
396
  - app/models/rhino/user.rb
397
397
  - app/overrides/active_record/nested_error_override.rb
398
+ - app/overrides/activeadmin/resource_dsl_override.rb
398
399
  - app/overrides/activestorage/direct_uploads_controller_override.rb
399
400
  - app/overrides/activestorage/redirect_controller_override.rb
400
401
  - app/overrides/activestorage/redirect_representation_controller_override.rb
@@ -426,6 +427,8 @@ files:
426
427
  - lib/commands/rhino/module/new_command.rb
427
428
  - lib/commands/rhino/module/rails_command.rb
428
429
  - lib/commands/rhino/module/test_command.rb
430
+ - lib/generators/rhino/admin/admin_generator.rb
431
+ - lib/generators/rhino/admin/templates/resource.rb.tt
429
432
  - lib/generators/rhino/dev/setup/setup_generator.rb
430
433
  - lib/generators/rhino/dev/setup/templates/env.tt
431
434
  - lib/generators/rhino/dev/setup/templates/prepare-commit-msg