rhino_project_core 0.22.0.beta.10 → 0.22.0.beta.12

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: a91ab2fc03ad00c3298755b072e64a61bf32714504692d1a6bd7f6829dc60291
4
- data.tar.gz: f247172407df52de391d591956e4b371d746b2bb4152017d6881bb3ed7fad006
3
+ metadata.gz: d9ac199c14ecb97724abbfca269b74d2a723ae905f4effb3027957126608cf49
4
+ data.tar.gz: 9c99a87ff7f6f59344cbed071fac5705c44980e694452981adc03f7b81724d32
5
5
  SHA512:
6
- metadata.gz: df90d1b58e8e81fc166e73113a880caf72b1638dc847014d85aef0cffa424bd05b2626244eedeca35ba612fd392f32c62179b5c2967bdb7253d6193f6b237618
7
- data.tar.gz: 0adb453776f752853d4238c3830f56eb578df27e9c39c7aacef1c4c32c5b5dc86056b3083b40baca05ca7792e10fabff855d2b2d890ac11aff6086202d5498f0
6
+ metadata.gz: ea1e868268d7086b45bcf100915382b45d5926287d8d08b7245b25a1d0ce149d31527d07b2ff2dfe4c1dea608f99bfb52dd08c305c92de02eee792e7c7048693
7
+ data.tar.gz: 320c7cbab3c8b3de38774d22a8538e4386a6de38747136590fa357beb8cc6e0ea1726fed408626f66d347d1e46758336c556592cfbaf78c0784ccb7250d97af3
@@ -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,2 @@
1
+ Rhino::Resource::Admin.register <%= class_name %> do
2
+ 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?
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Rhino
4
+ module Resource
5
+ module Admin
6
+ module_function
7
+
8
+ def register(resource, options = {}, &block)
9
+ ActiveAdmin.register resource, options do
10
+ resource.ransackable_filters.each do |attr|
11
+ filter attr.to_sym
12
+ end
13
+
14
+ permit_params do
15
+ permitted = []
16
+
17
+ permitted = resource.creatable_properties.map(&:to_sym) if params[:action] == "create"
18
+ permitted = resource.updatable_properties.map(&:to_sym) if params[:action] == "update"
19
+
20
+ # Allow owner and other references to be assigned or changed by admin
21
+ # All possible relations
22
+ references = resource.describe[:properties].select { |_p, d| d[:type] == :reference }.keys
23
+
24
+ # Restrict to the valid create/update properties
25
+ references.select! { |r| permitted.include?(r.to_sym) }
26
+ permitted += references.map { |r| m.reflections[r].foreign_key }
27
+
28
+ permitted.uniq
29
+ end
30
+
31
+ instance_eval(&block) if block
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
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.10"
13
+ PRE = "beta.12"
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.10
4
+ version: 0.22.0.beta.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - JP Rosevear
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-18 00:00:00.000000000 Z
11
+ date: 2025-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -426,6 +426,8 @@ 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
429
431
  - lib/generators/rhino/dev/setup/setup_generator.rb
430
432
  - lib/generators/rhino/dev/setup/templates/env.tt
431
433
  - lib/generators/rhino/dev/setup/templates/prepare-commit-msg
@@ -475,6 +477,7 @@ files:
475
477
  - lib/rhino/resource/active_record_extension/super_admin.rb
476
478
  - lib/rhino/resource/active_record_tree.rb
477
479
  - lib/rhino/resource/active_storage_extension.rb
480
+ - lib/rhino/resource/admin.rb
478
481
  - lib/rhino/resource/describe.rb
479
482
  - lib/rhino/resource/owner.rb
480
483
  - lib/rhino/resource/params.rb