diff --git a/Gemfile b/Gemfile index 2731d10d6a..a9735b9bf8 100644 --- a/Gemfile +++ b/Gemfile @@ -193,3 +193,5 @@ gem "avo-record_link_field" gem "pagy", "> 8" gem "csv" + +gem "prop_initializer", github: "avo-hq/prop_initializer", branch: "main" diff --git a/Gemfile.lock b/Gemfile.lock index a058686b22..eb2d62676e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -5,6 +5,14 @@ GIT acts-as-taggable-on (10.0.0) activerecord (>= 6.1, < 8) +GIT + remote: https://github.com/avo-hq/prop_initializer.git + revision: ec6808bc18b00ee53123497e885305d4d63da9de + branch: main + specs: + prop_initializer (0.1.0) + zeitwerk (>= 2.6.18) + GIT remote: https://github.com/rails/rails.git revision: b88d9af34fbc1c84ce2769ba02584eab2c28ac6e @@ -115,7 +123,6 @@ PATH addressable docile inline_svg - literal (~> 0.2) meta-tags pagy (>= 7.0.0) turbo-rails (>= 2.0.0) @@ -391,7 +398,6 @@ GEM listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - literal (0.2.1) logger (1.6.1) loofah (2.22.0) crass (~> 1.0.2) @@ -729,6 +735,7 @@ DEPENDENCIES pg (>= 0.18, < 2.0) pluggy! prefixed_ids + prop_initializer! puma (~> 6.4) rails! rails-controller-testing diff --git a/app/components/avo/actions_component.rb b/app/components/avo/actions_component.rb index c2da208043..0829acb8b3 100644 --- a/app/components/avo/actions_component.rb +++ b/app/components/avo/actions_component.rb @@ -3,34 +3,32 @@ class Avo::ActionsComponent < Avo::BaseComponent include Avo::ApplicationHelper - ACTION_FILTER = _Set(_Class(Avo::BaseAction)) - - prop :as_row_control, _Boolean, default: false - prop :icon, _Nilable(String) - prop :size, Avo::ButtonComponent::SIZE, default: :md - prop :title, _Nilable(String) - prop :color, _Nilable(Symbol) do |value| + prop :as_row_control, default: false + prop :icon + prop :size, default: :md + prop :title + prop :color do |value| value || :primary end - prop :include, _Nilable(ACTION_FILTER), default: [].freeze do |include| + prop :include, default: [].freeze do |include| Array(include).to_set end - prop :custom_list, _Boolean, default: false - prop :label, _Nilable(String) do |label| + prop :custom_list, default: false + prop :label do |label| if @custom_list label else label || I18n.t("avo.actions") end end - prop :style, Avo::ButtonComponent::STYLE, default: :outline - prop :actions, _Array(_Any), default: [].freeze - prop :exclude, _Nilable(ACTION_FILTER), default: [].freeze do |exclude| + prop :style, default: :outline + prop :actions, default: [].freeze + prop :exclude, default: [].freeze do |exclude| Array(exclude).to_set end - prop :resource, _Nilable(Avo::BaseResource) - prop :view, _Nilable(Avo::ViewInquirer) - prop :host_component, _Nilable(_Any) + prop :resource + prop :view + prop :host_component delegate_missing_to :@host_component diff --git a/app/components/avo/alert_component.rb b/app/components/avo/alert_component.rb index 1b64513ff2..60a4dd72e6 100644 --- a/app/components/avo/alert_component.rb +++ b/app/components/avo/alert_component.rb @@ -3,8 +3,8 @@ class Avo::AlertComponent < Avo::BaseComponent include Avo::ApplicationHelper - prop :type, Symbol, :positional - prop :message, String, :positional + prop :type, kind: :positional + prop :message, kind: :positional def icon return "heroicons/solid/exclamation-circle" if is_error? diff --git a/app/components/avo/asset_manager/javascript_component.rb b/app/components/avo/asset_manager/javascript_component.rb index 55a52b35e7..3de1aa8ee9 100644 --- a/app/components/avo/asset_manager/javascript_component.rb +++ b/app/components/avo/asset_manager/javascript_component.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class Avo::AssetManager::JavascriptComponent < Avo::BaseComponent - prop :asset_manager, Avo::AssetManager + prop :asset_manager delegate :javascripts, to: :@asset_manager end diff --git a/app/components/avo/asset_manager/stylesheet_component.rb b/app/components/avo/asset_manager/stylesheet_component.rb index 0b5d3e1354..1345e4df0f 100644 --- a/app/components/avo/asset_manager/stylesheet_component.rb +++ b/app/components/avo/asset_manager/stylesheet_component.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class Avo::AssetManager::StylesheetComponent < Avo::BaseComponent - prop :asset_manager, Avo::AssetManager + prop :asset_manager delegate :stylesheets, to: :@asset_manager end diff --git a/app/components/avo/backtrace_alert_component.rb b/app/components/avo/backtrace_alert_component.rb index 4c9dfe9026..1bb2b218be 100644 --- a/app/components/avo/backtrace_alert_component.rb +++ b/app/components/avo/backtrace_alert_component.rb @@ -3,7 +3,7 @@ class Avo::BacktraceAlertComponent < Avo::BaseComponent include Avo::ApplicationHelper - prop :backtrace, _Nilable(Array) + prop :backtrace def render? @backtrace.present? diff --git a/app/components/avo/base_component.rb b/app/components/avo/base_component.rb index cefdfcd20b..aadcbbaf5c 100644 --- a/app/components/avo/base_component.rb +++ b/app/components/avo/base_component.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class Avo::BaseComponent < ViewComponent::Base - extend Literal::Properties + extend PropInitializer::Properties include Turbo::FramesHelper include Avo::Concerns::FindAssociationField diff --git a/app/components/avo/button_component.rb b/app/components/avo/button_component.rb index 0b22d398d0..09926c4da8 100644 --- a/app/components/avo/button_component.rb +++ b/app/components/avo/button_component.rb @@ -1,23 +1,20 @@ # frozen_string_literal: true class Avo::ButtonComponent < Avo::BaseComponent - SIZE = _Union(:xs, :sm, :md, :lg, :xl) - STYLE = _Union(:primary, :outline, :text, :icon) - - prop :path, _Nilable(String), :positional - prop :size, Symbol, default: :md - prop :style, Symbol, default: :outline - prop :color, Symbol, default: :gray - prop :icon, _Nilable(Symbol) do |value| + prop :path, kind: :positional + prop :size, default: :md + prop :style, default: :outline + prop :color, default: :gray + prop :icon do |value| value&.to_sym end - prop :icon_class, String, default: "" - prop :is_link, _Boolean, default: false - prop :rounded, _Boolean, default: true - prop :compact, _Boolean, default: false - prop :aria, Hash, default: {}.freeze - prop :args, Hash, :**, default: {}.freeze - prop :class, _Nilable(String) + prop :icon_class, default: "" + prop :is_link, default: false + prop :rounded, default: true + prop :compact, default: false + prop :aria, default: {}.freeze + prop :args, kind: :**, default: {}.freeze + prop :class def args if @args[:loading] diff --git a/app/components/avo/cover_photo_component.rb b/app/components/avo/cover_photo_component.rb index b264c67076..3e27c491c0 100644 --- a/app/components/avo/cover_photo_component.rb +++ b/app/components/avo/cover_photo_component.rb @@ -1,8 +1,8 @@ # frozen_string_literal: true class Avo::CoverPhotoComponent < Avo::BaseComponent - prop :cover_photo, _Nilable(Avo::CoverPhoto) - prop :size, _Nilable(Symbol) do |value| + prop :cover_photo + prop :size do |value| @cover_photo&.size end diff --git a/app/components/avo/divider_component.rb b/app/components/avo/divider_component.rb index 8d505854f5..6251089455 100644 --- a/app/components/avo/divider_component.rb +++ b/app/components/avo/divider_component.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true class Avo::DividerComponent < Avo::BaseComponent - prop :label, _Nilable(String), :positional - prop :args, Hash, :** + prop :label, kind: :positional + prop :args, kind: :** end diff --git a/app/components/avo/empty_state_component.rb b/app/components/avo/empty_state_component.rb index 2c76abb999..df7404f8cb 100644 --- a/app/components/avo/empty_state_component.rb +++ b/app/components/avo/empty_state_component.rb @@ -1,12 +1,12 @@ # frozen_string_literal: true class Avo::EmptyStateComponent < Avo::BaseComponent - prop :message, _Nilable(String) - prop :view_type, Symbol, default: :table do |value| + prop :message + prop :view_type, default: :table do |value| value&.to_sym end - prop :add_background, _Boolean, default: false - prop :by_association, _Boolean, default: false + prop :add_background, default: false + prop :by_association, default: false def text @message || locale_message diff --git a/app/components/avo/field_wrapper_component.rb b/app/components/avo/field_wrapper_component.rb index fae0bce1ae..48bfb1a99b 100644 --- a/app/components/avo/field_wrapper_component.rb +++ b/app/components/avo/field_wrapper_component.rb @@ -3,24 +3,24 @@ class Avo::FieldWrapperComponent < Avo::BaseComponent include Avo::Concerns::HasResourceStimulusControllers - prop :dash_if_blank, _Boolean, default: true - prop :data, Hash, default: {}.freeze - prop :compact, _Boolean, default: false - prop :help, _Nilable(String) - prop :field, _Nilable(Avo::Fields::BaseField) - prop :form, _Nilable(ActionView::Helpers::FormBuilder) - prop :full_width, _Boolean, default: false - prop :label, _Nilable(String) - prop :resource, _Nilable(Avo::BaseResource) - prop :short, _Boolean, default: false - prop :stacked, _Nilable(_Boolean) - prop :style, String, default: "" - prop :view, Avo::ViewInquirer, default: Avo::ViewInquirer.new(:show).freeze - prop :label_for, _Nilable(Symbol) do |value| + prop :dash_if_blank, default: true + prop :data, default: {}.freeze + prop :compact, default: false + prop :help + prop :field + prop :form + prop :full_width, default: false + prop :label + prop :resource + prop :short, default: false + prop :stacked + prop :style, default: "" + prop :view, default: Avo::ViewInquirer.new(:show).freeze + prop :label_for do |value| value&.to_sym end - prop :args, Hash, :**, default: {}.freeze - prop :classes, _Nilable(String) do |value| + prop :args, kind: :**, default: {}.freeze + prop :classes do |value| @args&.dig(:class) || "" end diff --git a/app/components/avo/fields/common/badge_viewer_component.rb b/app/components/avo/fields/common/badge_viewer_component.rb index 2a0d1d6dc4..de36807895 100644 --- a/app/components/avo/fields/common/badge_viewer_component.rb +++ b/app/components/avo/fields/common/badge_viewer_component.rb @@ -1,8 +1,8 @@ # frozen_string_literal: true class Avo::Fields::Common::BadgeViewerComponent < Avo::BaseComponent - prop :value, _Union(_String, _Symbol) - prop :options, Hash + prop :value + prop :options def after_initialize @backgrounds = { diff --git a/app/components/avo/fields/common/boolean_check_component.rb b/app/components/avo/fields/common/boolean_check_component.rb index 6bc34bd599..a6d69071ed 100644 --- a/app/components/avo/fields/common/boolean_check_component.rb +++ b/app/components/avo/fields/common/boolean_check_component.rb @@ -1,11 +1,11 @@ # frozen_string_literal: true class Avo::Fields::Common::BooleanCheckComponent < Avo::BaseComponent - prop :checked, _Boolean, default: false - prop :icon, _Nilable(String) do |value| + prop :checked, default: false + prop :icon do |value| @checked ? "heroicons/outline/check-circle" : "heroicons/outline/x-circle" end - prop :classes, _Nilable(String) do |value| + prop :classes do |value| "h-6 #{@checked ? "text-green-600" : "text-red-500"}" end end diff --git a/app/components/avo/fields/common/boolean_group_component.rb b/app/components/avo/fields/common/boolean_group_component.rb index 44a2ff7e4e..6b7887f967 100644 --- a/app/components/avo/fields/common/boolean_group_component.rb +++ b/app/components/avo/fields/common/boolean_group_component.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true class Avo::Fields::Common::BooleanGroupComponent < Avo::BaseComponent - prop :options, Hash, default: {}.freeze - prop :value, _Nilable(Hash) + prop :options, default: {}.freeze + prop :value end diff --git a/app/components/avo/fields/common/files/controls_component.rb b/app/components/avo/fields/common/files/controls_component.rb index f8d82df76b..1fb24d75c5 100644 --- a/app/components/avo/fields/common/files/controls_component.rb +++ b/app/components/avo/fields/common/files/controls_component.rb @@ -6,9 +6,9 @@ class Avo::Fields::Common::Files::ControlsComponent < Avo::BaseComponent delegate :id, to: :@field - prop :field, Avo::Fields::BaseField - prop :file, _Any - prop :resource, Avo::BaseResource + prop :field + prop :file + prop :resource def destroy_path Avo::Services::URIService.parse(@resource.record_path).append_paths("active_storage_attachments", id, @file.id).to_s diff --git a/app/components/avo/fields/common/files/list_viewer_component.rb b/app/components/avo/fields/common/files/list_viewer_component.rb index ffd7c1f1d3..fbf1ac1fee 100644 --- a/app/components/avo/fields/common/files/list_viewer_component.rb +++ b/app/components/avo/fields/common/files/list_viewer_component.rb @@ -3,8 +3,8 @@ class Avo::Fields::Common::Files::ListViewerComponent < Avo::BaseComponent include Turbo::FramesHelper - prop :field, Avo::Fields::BaseField - prop :resource, Avo::BaseResource + prop :field + prop :resource def classes base_classes = "py-4 rounded-2xl max-w-full" diff --git a/app/components/avo/fields/common/files/view_type/grid_item_component.rb b/app/components/avo/fields/common/files/view_type/grid_item_component.rb index 07ef3b4485..013596eaac 100644 --- a/app/components/avo/fields/common/files/view_type/grid_item_component.rb +++ b/app/components/avo/fields/common/files/view_type/grid_item_component.rb @@ -1,10 +1,10 @@ # frozen_string_literal: true class Avo::Fields::Common::Files::ViewType::GridItemComponent < Avo::BaseComponent - prop :field, Avo::Fields::BaseField - prop :resource, Avo::BaseResource - prop :file, _Nilable(_Any) - prop :extra_classes, _Nilable(String) + prop :field + prop :resource + prop :file + prop :extra_classes def id @field.id diff --git a/app/components/avo/fields/common/gravatar_viewer_component.rb b/app/components/avo/fields/common/gravatar_viewer_component.rb index 159a9b4eff..85bd53a202 100644 --- a/app/components/avo/fields/common/gravatar_viewer_component.rb +++ b/app/components/avo/fields/common/gravatar_viewer_component.rb @@ -1,11 +1,11 @@ # frozen_string_literal: true class Avo::Fields::Common::GravatarViewerComponent < Avo::BaseComponent - prop :md5, _Nilable(String) - prop :link, _Nilable(String) - prop :default, _Nilable(String) - prop :size, _Nilable(Integer) - prop :rounded, _Boolean, default: false - prop :link_to_record, _Boolean, default: false - prop :title, _Nilable(String) + prop :md5 + prop :link + prop :default + prop :size + prop :rounded, default: false + prop :link_to_record, default: false + prop :title end diff --git a/app/components/avo/fields/common/heading_component.rb b/app/components/avo/fields/common/heading_component.rb index 552af9be90..74d5270db2 100644 --- a/app/components/avo/fields/common/heading_component.rb +++ b/app/components/avo/fields/common/heading_component.rb @@ -3,7 +3,7 @@ class Avo::Fields::Common::HeadingComponent < Avo::BaseComponent include Avo::Concerns::HasResourceStimulusControllers - prop :field, Avo::Fields::BaseField + prop :field def after_initialize @view = @field.resource.view diff --git a/app/components/avo/fields/common/key_value_component.rb b/app/components/avo/fields/common/key_value_component.rb index a3e8a6f8a8..ffe32b6787 100644 --- a/app/components/avo/fields/common/key_value_component.rb +++ b/app/components/avo/fields/common/key_value_component.rb @@ -3,7 +3,7 @@ class Avo::Fields::Common::KeyValueComponent < Avo::BaseComponent include Avo::ApplicationHelper - prop :field, Avo::Fields::BaseField - prop :form, _Nilable(ActionView::Helpers::FormBuilder) - prop :view, Avo::ViewInquirer, default: Avo::ViewInquirer.new(:show).freeze + prop :field + prop :form + prop :view, default: Avo::ViewInquirer.new(:show).freeze end diff --git a/app/components/avo/fields/common/progress_bar_component.rb b/app/components/avo/fields/common/progress_bar_component.rb index 41b6496e6b..ee3516bcf9 100644 --- a/app/components/avo/fields/common/progress_bar_component.rb +++ b/app/components/avo/fields/common/progress_bar_component.rb @@ -1,11 +1,11 @@ # frozen_string_literal: true class Avo::Fields::Common::ProgressBarComponent < Avo::BaseComponent - prop :value, Integer - prop :display_value, _Boolean, default: false - prop :value_suffix, _Nilable(String) - prop :max, Integer, default: 100 - prop :view, Avo::ViewInquirer, reader: :public, default: Avo::ViewInquirer.new(:index).freeze + prop :value + prop :display_value, default: false + prop :value_suffix + prop :max, default: 100 + prop :view, reader: :public, default: Avo::ViewInquirer.new(:index).freeze delegate :show?, :index?, to: :view end diff --git a/app/components/avo/fields/common/status_viewer_component.rb b/app/components/avo/fields/common/status_viewer_component.rb index 08516677d2..5eb44530f0 100644 --- a/app/components/avo/fields/common/status_viewer_component.rb +++ b/app/components/avo/fields/common/status_viewer_component.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true class Avo::Fields::Common::StatusViewerComponent < Avo::BaseComponent - prop :status, String - prop :label, String + prop :status + prop :label end diff --git a/app/components/avo/fields/tags_field/tag_component.rb b/app/components/avo/fields/tags_field/tag_component.rb index b0abde8f9e..39156a2220 100644 --- a/app/components/avo/fields/tags_field/tag_component.rb +++ b/app/components/avo/fields/tags_field/tag_component.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true class Avo::Fields::TagsField::TagComponent < Avo::BaseComponent - prop :label, _Nilable(String) - prop :title, _Nilable(String) + prop :label + prop :title end diff --git a/app/components/avo/filters_component.rb b/app/components/avo/filters_component.rb index d5fc5accfa..63f70ce220 100644 --- a/app/components/avo/filters_component.rb +++ b/app/components/avo/filters_component.rb @@ -3,10 +3,10 @@ class Avo::FiltersComponent < Avo::BaseComponent include Avo::ApplicationHelper - prop :filters, _Array(Avo::Filters::BaseFilter), default: [].freeze - prop :resource, _Nilable(Avo::BaseResource) - prop :applied_filters, Hash, default: {}.freeze - prop :parent_record, _Nilable(_Any) + prop :filters, default: [].freeze + prop :resource + prop :applied_filters, default: {}.freeze + prop :parent_record def render? @filters.present? diff --git a/app/components/avo/flash_alerts_component.rb b/app/components/avo/flash_alerts_component.rb index 72c015c721..3a435e59a4 100644 --- a/app/components/avo/flash_alerts_component.rb +++ b/app/components/avo/flash_alerts_component.rb @@ -3,5 +3,5 @@ class Avo::FlashAlertsComponent < Avo::BaseComponent include Avo::ApplicationHelper - prop :flashes, ActionDispatch::Flash::FlashHash, default: [].freeze + prop :flashes, default: [].freeze end diff --git a/app/components/avo/index/field_wrapper_component.rb b/app/components/avo/index/field_wrapper_component.rb index 14ef3de84d..b4927f44ad 100644 --- a/app/components/avo/index/field_wrapper_component.rb +++ b/app/components/avo/index/field_wrapper_component.rb @@ -1,13 +1,13 @@ # frozen_string_literal: true class Avo::Index::FieldWrapperComponent < Avo::BaseComponent - prop :field, _Nilable(Avo::Fields::BaseField) - prop :resource, _Nilable(Avo::BaseResource) - prop :dash_if_blank, _Boolean, default: true - prop :center_content, _Boolean, default: false - prop :flush, _Boolean, default: false - prop :args, Hash, :**, default: {}.freeze - prop :classes, _Nilable(String) do |value| + prop :field + prop :resource + prop :dash_if_blank, default: true + prop :center_content, default: false + prop :flush, default: false + prop :args, kind: :**, default: {}.freeze + prop :classes do |value| @args&.dig(:class) || "" end diff --git a/app/components/avo/index/grid_item_component.rb b/app/components/avo/index/grid_item_component.rb index a5ce6e086a..06d392196d 100644 --- a/app/components/avo/index/grid_item_component.rb +++ b/app/components/avo/index/grid_item_component.rb @@ -4,11 +4,11 @@ class Avo::Index::GridItemComponent < Avo::BaseComponent include Avo::ResourcesHelper include Avo::Fields::Concerns::HasHTMLAttributes - prop :resource, _Nilable(Avo::BaseResource) - prop :reflection, _Nilable(ActiveRecord::Reflection::AbstractReflection) - prop :parent_record, _Nilable(_Any) - prop :parent_resource, _Nilable(Avo::BaseResource) - prop :actions, _Nilable(_Array(Avo::BaseAction)) + prop :resource + prop :reflection + prop :parent_record + prop :parent_resource + prop :actions def after_initialize @card = Avo::ExecutionContext.new(target: @resource.grid_view[:card], resource: @resource, record: @resource.record).handle diff --git a/app/components/avo/index/resource_controls_component.rb b/app/components/avo/index/resource_controls_component.rb index e903cb118f..b8ef73720c 100644 --- a/app/components/avo/index/resource_controls_component.rb +++ b/app/components/avo/index/resource_controls_component.rb @@ -4,12 +4,12 @@ class Avo::Index::ResourceControlsComponent < Avo::ResourceComponent include Avo::ApplicationHelper include Avo::Concerns::ChecksShowAuthorization - prop :resource, _Nilable(Avo::BaseResource) - prop :reflection, _Nilable(ActiveRecord::Reflection::AbstractReflection) - prop :parent_record, _Nilable(_Any) - prop :parent_resource, _Nilable(Avo::BaseResource) - prop :view_type, Symbol, default: :table - prop :actions, _Nilable(_Array(Avo::BaseAction)) + prop :resource + prop :reflection + prop :parent_record + prop :parent_resource + prop :view_type, default: :table + prop :actions def can_detach? is_has_many_association? ? super : false diff --git a/app/components/avo/index/resource_grid_component.rb b/app/components/avo/index/resource_grid_component.rb index 8955c77498..32728e0260 100644 --- a/app/components/avo/index/resource_grid_component.rb +++ b/app/components/avo/index/resource_grid_component.rb @@ -1,10 +1,10 @@ # frozen_string_literal: true class Avo::Index::ResourceGridComponent < Avo::BaseComponent - prop :resources, _Array(_Nilable(Avo::BaseResource)) - prop :resource, _Nilable(Avo::BaseResource) - prop :reflection, _Nilable(ActiveRecord::Reflection::AbstractReflection) - prop :parent_record, _Nilable(_Any) - prop :parent_resource, _Nilable(Avo::BaseResource) - prop :actions, _Nilable(_Array(Avo::BaseAction)), reader: :public + prop :resources + prop :resource + prop :reflection + prop :parent_record + prop :parent_resource + prop :actions, reader: :public end diff --git a/app/components/avo/index/resource_table_component.rb b/app/components/avo/index/resource_table_component.rb index a434a69c3a..68f0afcd67 100644 --- a/app/components/avo/index/resource_table_component.rb +++ b/app/components/avo/index/resource_table_component.rb @@ -8,14 +8,14 @@ def before_render @header_fields, @table_row_components = cache_table_rows end - prop :resources, _Nilable(_Array(Avo::BaseResource)) - prop :resource, _Nilable(Avo::BaseResource) - prop :reflection, _Nilable(ActiveRecord::Reflection::AbstractReflection) - prop :parent_record, _Nilable(_Any) - prop :parent_resource, _Nilable(Avo::BaseResource) - prop :pagy, _Nilable(Pagy) - prop :query, _Nilable(_Any) - prop :actions, _Nilable(_Array(Avo::BaseAction)) + prop :resources + prop :resource + prop :reflection + prop :parent_record + prop :parent_resource + prop :pagy + prop :query + prop :actions def encrypted_query # TODO: move this to the resource where we can apply the adapter pattern diff --git a/app/components/avo/index/table_row_component.rb b/app/components/avo/index/table_row_component.rb index 298ddd9af5..82cac0896e 100644 --- a/app/components/avo/index/table_row_component.rb +++ b/app/components/avo/index/table_row_component.rb @@ -6,13 +6,13 @@ class Avo::Index::TableRowComponent < Avo::BaseComponent attr_writer :header_fields - prop :resource, _Nilable(Avo::BaseResource), reader: :public - prop :reflection, _Nilable(ActiveRecord::Reflection::AbstractReflection) - prop :parent_record, _Nilable(_Any) - prop :parent_resource, _Nilable(Avo::BaseResource) - prop :actions, _Nilable(_Array(Avo::BaseAction)) - prop :fields, _Nilable(_Array(Avo::Fields::BaseField)) - prop :header_fields, _Nilable(_Array(String)) + prop :resource, reader: :public + prop :reflection + prop :parent_record + prop :parent_resource + prop :actions + prop :fields + prop :header_fields def resource_controls_component Avo::Index::ResourceControlsComponent.new( diff --git a/app/components/avo/items/panel_component.rb b/app/components/avo/items/panel_component.rb index aa6b0f8166..5e0dc8ce78 100644 --- a/app/components/avo/items/panel_component.rb +++ b/app/components/avo/items/panel_component.rb @@ -3,17 +3,17 @@ class Avo::Items::PanelComponent < Avo::ResourceComponent include Avo::ApplicationHelper - prop :form, _Nilable(ActionView::Helpers::FormBuilder) - prop :item, _Nilable(Avo::Resources::Items::Panel) - prop :is_main_panel, _Nilable(_Boolean) - prop :resource, Avo::BaseResource - prop :view, Avo::ViewInquirer - prop :actions, _Nilable(_Array(Avo::BaseAction)), reader: :public - prop :index, _Nilable(Integer), reader: :public - prop :parent_component, _Nilable(ViewComponent::Base) - prop :parent_record, _Nilable(_Any) - prop :parent_resource, _Nilable(Avo::BaseResource) - prop :reflection, _Nilable(ActiveRecord::Reflection::AbstractReflection) + prop :form + prop :item + prop :is_main_panel + prop :resource + prop :view + prop :actions, reader: :public + prop :index, reader: :public + prop :parent_component + prop :parent_record + prop :parent_resource + prop :reflection delegate :controls, :title, diff --git a/app/components/avo/items/visible_items_component.rb b/app/components/avo/items/visible_items_component.rb index d6d782e927..ccc1deb997 100644 --- a/app/components/avo/items/visible_items_component.rb +++ b/app/components/avo/items/visible_items_component.rb @@ -1,9 +1,9 @@ # frozen_string_literal: true class Avo::Items::VisibleItemsComponent < Avo::BaseComponent - prop :resource, _Nilable(Avo::BaseResource) - prop :item, _Nilable(Avo::Concerns::IsResourceItem) - prop :view, _Nilable(Avo::ViewInquirer) - prop :form, _Nilable(ActionView::Helpers::FormBuilder) - prop :field_component_extra_args, _Nilable(Hash), default: {}.freeze + prop :resource + prop :item + prop :view + prop :form + prop :field_component_extra_args, default: {}.freeze end diff --git a/app/components/avo/loading_component.rb b/app/components/avo/loading_component.rb index 6398fa62d6..bf0440f57e 100644 --- a/app/components/avo/loading_component.rb +++ b/app/components/avo/loading_component.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true class Avo::LoadingComponent < Avo::BaseComponent - prop :title, _Nilable(String) + prop :title end diff --git a/app/components/avo/modal_component.rb b/app/components/avo/modal_component.rb index 8a55a587df..eb40f2470f 100644 --- a/app/components/avo/modal_component.rb +++ b/app/components/avo/modal_component.rb @@ -4,9 +4,9 @@ class Avo::ModalComponent < Avo::BaseComponent renders_one :heading renders_one :controls - prop :width, Symbol, default: :md - prop :body_class, _Nilable(String) - prop :overflow, _Nilable(Symbol), default: :auto + prop :width, default: :md + prop :body_class + prop :overflow, default: :auto def width_classes case @width.to_sym diff --git a/app/components/avo/paginator_component.rb b/app/components/avo/paginator_component.rb index ccde48c7d4..318197b7fa 100644 --- a/app/components/avo/paginator_component.rb +++ b/app/components/avo/paginator_component.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true class Avo::PaginatorComponent < Avo::BaseComponent - prop :resource, _Nilable(Avo::BaseResource) - prop :parent_record, _Nilable(_Any) - prop :pagy, _Nilable(Pagy) - prop :turbo_frame, _Nilable(_Union(String, Symbol)) do |frame| + prop :resource + prop :parent_record + prop :pagy + prop :turbo_frame do |frame| frame.present? ? CGI.escapeHTML(frame) : :_top end - prop :index_params, _Nilable(Hash) - prop :discreet_pagination, _Nilable(_Boolean) + prop :index_params + prop :discreet_pagination def change_items_per_page_url(option) if @parent_record.present? diff --git a/app/components/avo/panel_component.rb b/app/components/avo/panel_component.rb index e8e24f54cb..ca5a7631fe 100644 --- a/app/components/avo/panel_component.rb +++ b/app/components/avo/panel_component.rb @@ -15,16 +15,16 @@ class Avo::PanelComponent < Avo::BaseComponent renders_one :footer_tools renders_one :footer - prop :description, _Nilable(String) - prop :body_classes, _Nilable(String) - prop :data, Hash, default: {}.freeze - prop :display_breadcrumbs, _Boolean, default: false - prop :index, _Nilable(Integer) - prop :classes, _Nilable(String) - prop :profile_photo, _Nilable(Avo::ProfilePhoto) - prop :cover_photo, _Nilable(Avo::CoverPhoto) - prop :args, Hash, :**, default: {}.freeze - prop :name, _Nilable(_Union(_String, _Integer)) do |value| + prop :description + prop :body_classes + prop :data, default: {}.freeze + prop :display_breadcrumbs, default: false + prop :index + prop :classes + prop :profile_photo + prop :cover_photo + prop :args, kind: :**, default: {}.freeze + prop :name do |value| value || @args&.dig(:title) end diff --git a/app/components/avo/panel_name_component.rb b/app/components/avo/panel_name_component.rb index 73172fcabd..f9a4c04dc8 100644 --- a/app/components/avo/panel_name_component.rb +++ b/app/components/avo/panel_name_component.rb @@ -3,10 +3,10 @@ class Avo::PanelNameComponent < Avo::BaseComponent renders_one :body - prop :name, _Nilable(_Union(_String, _Integer)) - prop :url, _Nilable(String) - prop :target, Symbol, default: :self do |value| + prop :name + prop :url + prop :target, default: :self do |value| value&.to_sym end - prop :classes, String, default: "" + prop :classes, default: "" end diff --git a/app/components/avo/profile_item_component.rb b/app/components/avo/profile_item_component.rb index af23326b70..16567d40bc 100644 --- a/app/components/avo/profile_item_component.rb +++ b/app/components/avo/profile_item_component.rb @@ -1,19 +1,19 @@ # frozen_string_literal: true class Avo::ProfileItemComponent < Avo::BaseComponent - prop :label, _Nilable(String), reader: :public - prop :icon, _Nilable(String), reader: :public - prop :path, _Nilable(String), reader: :public - prop :active, Symbol, default: :inclusive, reader: :public do |value| + prop :label, reader: :public + prop :icon, reader: :public + prop :path, reader: :public + prop :active, default: :inclusive, reader: :public do |value| value&.to_sym end - prop :target, _Nilable(Symbol), reader: :public do |value| + prop :target, reader: :public do |value| value&.to_sym end - prop :title, _Nilable(String), reader: :public - prop :method, _Nilable(_Union(_String, _Symbol)), reader: :public - prop :params, _Nilable(Hash), default: {}.freeze, reader: :public - prop :classes, String, default: "", reader: :public + prop :title, reader: :public + prop :method, reader: :public + prop :params, default: {}.freeze, reader: :public + prop :classes, default: "", reader: :public def title @title || @label diff --git a/app/components/avo/profile_photo_component.rb b/app/components/avo/profile_photo_component.rb index c35a6da3c3..8323e93978 100644 --- a/app/components/avo/profile_photo_component.rb +++ b/app/components/avo/profile_photo_component.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class Avo::ProfilePhotoComponent < Avo::BaseComponent - prop :profile_photo, _Nilable(Avo::ProfilePhoto) + prop :profile_photo def render? @profile_photo.present? && @profile_photo.visible_in_current_view? diff --git a/app/components/avo/referrer_params_component.rb b/app/components/avo/referrer_params_component.rb index 4c05e14a80..40b5a1d6f0 100644 --- a/app/components/avo/referrer_params_component.rb +++ b/app/components/avo/referrer_params_component.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true class Avo::ReferrerParamsComponent < Avo::BaseComponent - prop :back_path, _Nilable(String) + prop :back_path end diff --git a/app/components/avo/resource_sidebar_component.rb b/app/components/avo/resource_sidebar_component.rb index 303a13b657..9ddf3590ac 100644 --- a/app/components/avo/resource_sidebar_component.rb +++ b/app/components/avo/resource_sidebar_component.rb @@ -1,12 +1,12 @@ # frozen_string_literal: true class Avo::ResourceSidebarComponent < Avo::BaseComponent - prop :resource, _Nilable(Avo::BaseResource) - prop :sidebar, _Nilable(Avo::Resources::Items::Sidebar) - prop :index, _Nilable(Integer) - prop :params, _Nilable(ActionController::Parameters) - prop :form, _Nilable(ActionView::Helpers::FormBuilder) - prop :view, _Nilable(Avo::ViewInquirer), reader: :public + prop :resource + prop :sidebar + prop :index + prop :params + prop :form + prop :view, reader: :public def render? Avo.license.has_with_trial(:resource_sidebar) diff --git a/app/components/avo/row_component.rb b/app/components/avo/row_component.rb index 76d4673add..a6c249d338 100644 --- a/app/components/avo/row_component.rb +++ b/app/components/avo/row_component.rb @@ -3,6 +3,6 @@ class Avo::RowComponent < Avo::BaseComponent renders_one :body - prop :classes, _Nilable(String) - prop :data, Hash, default: {}.freeze + prop :classes + prop :data, default: {}.freeze end diff --git a/app/components/avo/row_selector_component.rb b/app/components/avo/row_selector_component.rb index d565d472fb..734e309bd2 100644 --- a/app/components/avo/row_selector_component.rb +++ b/app/components/avo/row_selector_component.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true class Avo::RowSelectorComponent < Avo::BaseComponent - prop :floating, _Boolean, default: false - prop :size, Symbol, default: :md + prop :floating, default: false + prop :size, default: :md end diff --git a/app/components/avo/sidebar/base_item_component.rb b/app/components/avo/sidebar/base_item_component.rb index 93e5004d4b..f21c88f7bb 100644 --- a/app/components/avo/sidebar/base_item_component.rb +++ b/app/components/avo/sidebar/base_item_component.rb @@ -3,9 +3,8 @@ class Avo::Sidebar::BaseItemComponent < Avo::BaseComponent delegate :collapsable, :collapsed, to: :@item - # Object = Avo::Menu::BaseItem || ViewComponent::Base - prop :item, _Nilable(Object), reader: :public - prop :locals, _Nilable(Hash), default: {}.freeze + prop :item, reader: :public + prop :locals, default: {}.freeze def after_initialize @items = @item.items.select(&:visible?) diff --git a/app/components/avo/sidebar/heading_component.rb b/app/components/avo/sidebar/heading_component.rb index d6488db7fa..02dee1e3cf 100644 --- a/app/components/avo/sidebar/heading_component.rb +++ b/app/components/avo/sidebar/heading_component.rb @@ -1,9 +1,9 @@ # frozen_string_literal: true class Avo::Sidebar::HeadingComponent < Avo::BaseComponent - prop :label, _Nilable(String) - prop :icon, _Nilable(String) - prop :collapsable, _Boolean, default: false - prop :collapsed, _Boolean, default: false - prop :key, _Nilable(String) + prop :label + prop :icon + prop :collapsable, default: false + prop :collapsed, default: false + prop :key end diff --git a/app/components/avo/sidebar/link_component.rb b/app/components/avo/sidebar/link_component.rb index ba155a2d2c..663a6d8850 100644 --- a/app/components/avo/sidebar/link_component.rb +++ b/app/components/avo/sidebar/link_component.rb @@ -1,17 +1,17 @@ # frozen_string_literal: true class Avo::Sidebar::LinkComponent < Avo::BaseComponent - prop :label, _Nilable(String) - prop :path, _Nilable(String) - prop :active, Symbol, default: :inclusive do |value| + prop :label + prop :path + prop :active, default: :inclusive do |value| value&.to_sym end - prop :target, _Nilable(Symbol) do |value| + prop :target do |value| value&.to_sym end - prop :data, Hash, default: {}.freeze - prop :icon, _Nilable(String) - prop :args, Hash, :**, default: {}.freeze + prop :data, default: {}.freeze + prop :icon + prop :args, kind: :**, default: {}.freeze def is_external? # If the path contains the scheme, check if it includes the root path or not diff --git a/app/components/avo/sidebar_component.rb b/app/components/avo/sidebar_component.rb index 30f6942a90..39310097a8 100644 --- a/app/components/avo/sidebar_component.rb +++ b/app/components/avo/sidebar_component.rb @@ -1,8 +1,8 @@ # frozen_string_literal: true class Avo::SidebarComponent < Avo::BaseComponent - prop :sidebar_open, _Boolean, default: false - prop :for_mobile, _Boolean, default: false + prop :sidebar_open, default: false + prop :for_mobile, default: false def dashboards return [] unless Avo.plugin_manager.installed?(:avo_dashboards) diff --git a/app/components/avo/sidebar_profile_component.rb b/app/components/avo/sidebar_profile_component.rb index 8c2aa1f38b..258287f834 100644 --- a/app/components/avo/sidebar_profile_component.rb +++ b/app/components/avo/sidebar_profile_component.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class Avo::SidebarProfileComponent < Avo::BaseComponent - prop :user, _Nilable(_Any) + prop :user def avatar if @user.respond_to?(:avatar) && @user.avatar.present? diff --git a/app/components/avo/tab_group_component.rb b/app/components/avo/tab_group_component.rb index 7d31405757..730d6e4ea6 100644 --- a/app/components/avo/tab_group_component.rb +++ b/app/components/avo/tab_group_component.rb @@ -3,12 +3,12 @@ class Avo::TabGroupComponent < Avo::BaseComponent delegate :group_param, to: :@group - prop :resource, Avo::BaseResource, reader: :public - prop :group, Avo::Resources::Items::TabGroup, reader: :public - prop :index, Integer, reader: :public - prop :form, _Nilable(ActionView::Helpers::FormBuilder), reader: :public - prop :params, ActionController::Parameters, reader: :public - prop :view, Avo::ViewInquirer, reader: :public + prop :resource, reader: :public + prop :group, reader: :public + prop :index, reader: :public + prop :form, reader: :public + prop :params, reader: :public + prop :view, reader: :public def after_initialize group.index = index diff --git a/app/components/avo/tab_switcher_component.rb b/app/components/avo/tab_switcher_component.rb index 16c13b80aa..0a891f8849 100644 --- a/app/components/avo/tab_switcher_component.rb +++ b/app/components/avo/tab_switcher_component.rb @@ -7,11 +7,11 @@ class Avo::TabSwitcherComponent < Avo::BaseComponent delegate :white_panel_classes, to: :helpers delegate :group_param, to: :@group - prop :resource, Avo::BaseResource - prop :group, Avo::Resources::Items::TabGroup - prop :current_tab, Avo::Resources::Items::Tab - prop :active_tab_name, String, reader: :public - prop :view, Avo::ViewInquirer + prop :resource + prop :group + prop :current_tab + prop :active_tab_name, reader: :public + prop :view #TOD: helper to record: def tab_path(tab) diff --git a/app/components/avo/turbo_frame_wrapper_component.rb b/app/components/avo/turbo_frame_wrapper_component.rb index c070c37778..d21e0197f1 100644 --- a/app/components/avo/turbo_frame_wrapper_component.rb +++ b/app/components/avo/turbo_frame_wrapper_component.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true class Avo::TurboFrameWrapperComponent < Avo::BaseComponent - prop :name, _Nilable(String), :positional + prop :name, kind: :positional end diff --git a/app/components/avo/views/resource_edit_component.rb b/app/components/avo/views/resource_edit_component.rb index 5f5163e74b..36cafac81d 100644 --- a/app/components/avo/views/resource_edit_component.rb +++ b/app/components/avo/views/resource_edit_component.rb @@ -3,11 +3,11 @@ class Avo::Views::ResourceEditComponent < Avo::ResourceComponent include Avo::ApplicationHelper - prop :resource, _Nilable(Avo::BaseResource) - prop :record, _Nilable(_Any) - prop :actions, _Array(Avo::BaseAction), default: [].freeze - prop :view, Avo::ViewInquirer, default: Avo::ViewInquirer.new(:edit).freeze - prop :display_breadcrumbs, _Boolean, default: true, reader: :public + prop :resource + prop :record + prop :actions, default: [].freeze + prop :view, default: Avo::ViewInquirer.new(:edit).freeze + prop :display_breadcrumbs, default: true, reader: :public def after_initialize @display_breadcrumbs = @reflection.blank? && display_breadcrumbs diff --git a/app/components/avo/views/resource_index_component.rb b/app/components/avo/views/resource_index_component.rb index c70805a664..92122977e6 100644 --- a/app/components/avo/views/resource_index_component.rb +++ b/app/components/avo/views/resource_index_component.rb @@ -4,25 +4,20 @@ class Avo::Views::ResourceIndexComponent < Avo::ResourceComponent include Avo::ResourcesHelper include Avo::ApplicationHelper - prop :resource, _Nilable(Avo::BaseResource) - prop :resources, _Nilable(_Array(Avo::BaseResource)) - # This is sometimes an array of records or an ActiveRecord::Relation - prop :records, Enumerable, default: [].freeze - prop :pagy, _Nilable(Pagy) - prop :index_params, Hash, default: {}.freeze - prop :filters, _Array(Avo::Filters::BaseFilter), default: [].freeze - prop :actions, _Array(Avo::BaseAction), default: [].freeze - prop :reflection, _Nilable(ActiveRecord::Reflection::AbstractReflection) - prop :turbo_frame, _Nilable(String), default: "" - prop :parent_record, _Nilable(_Any) - prop :parent_resource, _Nilable(Avo::BaseResource) - prop :applied_filters, Hash, default: {}.freeze - prop :query, _Nilable(_Any), reader: :public - # This should be - # prop :scopes, _Nilable(_Array(Avo::Advanced::Scopes::BaseScope)), reader: :public - # However, Avo::Advanced::Scopes::BaseScope raises an error because - # that constant is only available in the advanced repo - prop :scopes, _Nilable(Object), reader: :public + prop :resource + prop :resources + prop :records, default: [].freeze + prop :pagy + prop :index_params, default: {}.freeze + prop :filters, default: [].freeze + prop :actions, default: [].freeze + prop :reflection + prop :turbo_frame, default: "" + prop :parent_record + prop :parent_resource + prop :applied_filters, default: {}.freeze + prop :query, reader: :public + prop :scopes, reader: :public def title if @reflection.present? diff --git a/app/components/avo/views/resource_show_component.rb b/app/components/avo/views/resource_show_component.rb index 08560278cd..33f255cc91 100644 --- a/app/components/avo/views/resource_show_component.rb +++ b/app/components/avo/views/resource_show_component.rb @@ -5,12 +5,12 @@ class Avo::Views::ResourceShowComponent < Avo::ResourceComponent attr_reader :display_breadcrumbs - prop :resource, _Nilable(Avo::BaseResource) - prop :reflection, _Nilable(ActiveRecord::Reflection::AbstractReflection) - prop :parent_resource, _Nilable(Avo::BaseResource) - prop :parent_record, _Nilable(_Any) - prop :resource_panel, _Nilable(_Array(Avo::BaseAction)), reader: :public - prop :actions, _Array(Avo::BaseAction), default: [].freeze, reader: :public + prop :resource + prop :reflection + prop :parent_resource + prop :parent_record + prop :resource_panel, reader: :public + prop :actions, default: [].freeze, reader: :public def after_initialize @view = Avo::ViewInquirer.new("show") diff --git a/avo.gemspec b/avo.gemspec index 20365b79b3..188c449fec 100644 --- a/avo.gemspec +++ b/avo.gemspec @@ -45,7 +45,6 @@ Gem::Specification.new do |spec| spec.add_dependency "turbo_power", ">= 0.6.0" spec.add_dependency "addressable" spec.add_dependency "meta-tags" - spec.add_dependency "literal", "~> 0.2" spec.add_dependency "docile" spec.add_dependency "inline_svg" end diff --git a/gemfiles/rails_6.1_ruby_3.1.4.gemfile b/gemfiles/rails_6.1_ruby_3.1.4.gemfile index 570b31baea..43ceee92ff 100644 --- a/gemfiles/rails_6.1_ruby_3.1.4.gemfile +++ b/gemfiles/rails_6.1_ruby_3.1.4.gemfile @@ -45,6 +45,7 @@ gem "avo-money_field" gem "avo-record_link_field" gem "pagy", "> 8" gem "csv" +gem "prop_initializer", branch: "main", git: "https://github.com/avo-hq/prop_initializer.git" gem "psych", "< 4" group :development do diff --git a/gemfiles/rails_6.1_ruby_3.1.4.gemfile.lock b/gemfiles/rails_6.1_ruby_3.1.4.gemfile.lock index 4e6a63dcdb..cbc6cfc36f 100644 --- a/gemfiles/rails_6.1_ruby_3.1.4.gemfile.lock +++ b/gemfiles/rails_6.1_ruby_3.1.4.gemfile.lock @@ -5,6 +5,14 @@ GIT acts-as-taggable-on (10.0.0) activerecord (>= 6.1, < 8) +GIT + remote: https://github.com/avo-hq/prop_initializer.git + revision: ec6808bc18b00ee53123497e885305d4d63da9de + branch: main + specs: + prop_initializer (0.1.0) + zeitwerk (>= 2.6.18) + PATH remote: ../pluggy specs: @@ -21,7 +29,6 @@ PATH addressable docile inline_svg - literal (~> 0.2) meta-tags pagy (>= 7.0.0) turbo-rails (>= 2.0.0) @@ -349,7 +356,6 @@ GEM listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - literal (0.2.1) logger (1.6.1) loofah (2.22.0) crass (~> 1.0.2) @@ -695,6 +701,7 @@ DEPENDENCIES pg (>= 0.18, < 2.0) pluggy! prefixed_ids + prop_initializer! psych (< 4) puma (~> 6.4) rails (~> 6.1) diff --git a/gemfiles/rails_6.1_ruby_3.3.0.gemfile b/gemfiles/rails_6.1_ruby_3.3.0.gemfile index 570b31baea..43ceee92ff 100644 --- a/gemfiles/rails_6.1_ruby_3.3.0.gemfile +++ b/gemfiles/rails_6.1_ruby_3.3.0.gemfile @@ -45,6 +45,7 @@ gem "avo-money_field" gem "avo-record_link_field" gem "pagy", "> 8" gem "csv" +gem "prop_initializer", branch: "main", git: "https://github.com/avo-hq/prop_initializer.git" gem "psych", "< 4" group :development do diff --git a/gemfiles/rails_6.1_ruby_3.3.0.gemfile.lock b/gemfiles/rails_6.1_ruby_3.3.0.gemfile.lock index 76f868fc9b..3d4672160e 100644 --- a/gemfiles/rails_6.1_ruby_3.3.0.gemfile.lock +++ b/gemfiles/rails_6.1_ruby_3.3.0.gemfile.lock @@ -5,6 +5,14 @@ GIT acts-as-taggable-on (10.0.0) activerecord (>= 6.1, < 8) +GIT + remote: https://github.com/avo-hq/prop_initializer.git + revision: ec6808bc18b00ee53123497e885305d4d63da9de + branch: main + specs: + prop_initializer (0.1.0) + zeitwerk (>= 2.6.18) + PATH remote: ../pluggy specs: @@ -21,7 +29,6 @@ PATH addressable docile inline_svg - literal (~> 0.2) meta-tags pagy (>= 7.0.0) turbo-rails (>= 2.0.0) @@ -323,7 +330,6 @@ GEM listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - literal (0.2.1) logger (1.6.1) loofah (2.22.0) crass (~> 1.0.2) @@ -668,6 +674,7 @@ DEPENDENCIES pg (>= 0.18, < 2.0) pluggy! prefixed_ids + prop_initializer! psych (< 4) puma (~> 6.4) rails (~> 6.1) diff --git a/gemfiles/rails_7.1_ruby_3.1.4.gemfile b/gemfiles/rails_7.1_ruby_3.1.4.gemfile index 759f8a33ef..067d643879 100644 --- a/gemfiles/rails_7.1_ruby_3.1.4.gemfile +++ b/gemfiles/rails_7.1_ruby_3.1.4.gemfile @@ -45,6 +45,7 @@ gem "avo-money_field" gem "avo-record_link_field" gem "pagy", "> 8" gem "csv" +gem "prop_initializer", branch: "main", git: "https://github.com/avo-hq/prop_initializer.git" gem "psych", "< 4" group :development do diff --git a/gemfiles/rails_7.1_ruby_3.1.4.gemfile.lock b/gemfiles/rails_7.1_ruby_3.1.4.gemfile.lock index f0e9b1a7a1..8d90bb3fe9 100644 --- a/gemfiles/rails_7.1_ruby_3.1.4.gemfile.lock +++ b/gemfiles/rails_7.1_ruby_3.1.4.gemfile.lock @@ -5,6 +5,14 @@ GIT acts-as-taggable-on (10.0.0) activerecord (>= 6.1, < 8) +GIT + remote: https://github.com/avo-hq/prop_initializer.git + revision: ec6808bc18b00ee53123497e885305d4d63da9de + branch: main + specs: + prop_initializer (0.1.0) + zeitwerk (>= 2.6.18) + PATH remote: ../pluggy specs: @@ -21,7 +29,6 @@ PATH addressable docile inline_svg - literal (~> 0.2) meta-tags pagy (>= 7.0.0) turbo-rails (>= 2.0.0) @@ -362,7 +369,6 @@ GEM listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - literal (0.2.1) logger (1.6.1) loofah (2.22.0) crass (~> 1.0.2) @@ -716,6 +722,7 @@ DEPENDENCIES pg (>= 0.18, < 2.0) pluggy! prefixed_ids + prop_initializer! psych (< 4) puma (~> 6.4) rails (~> 7.1) diff --git a/gemfiles/rails_7.1_ruby_3.3.0.gemfile b/gemfiles/rails_7.1_ruby_3.3.0.gemfile index 759f8a33ef..067d643879 100644 --- a/gemfiles/rails_7.1_ruby_3.3.0.gemfile +++ b/gemfiles/rails_7.1_ruby_3.3.0.gemfile @@ -45,6 +45,7 @@ gem "avo-money_field" gem "avo-record_link_field" gem "pagy", "> 8" gem "csv" +gem "prop_initializer", branch: "main", git: "https://github.com/avo-hq/prop_initializer.git" gem "psych", "< 4" group :development do diff --git a/gemfiles/rails_7.1_ruby_3.3.0.gemfile.lock b/gemfiles/rails_7.1_ruby_3.3.0.gemfile.lock index 36b407e432..c46ff80bce 100644 --- a/gemfiles/rails_7.1_ruby_3.3.0.gemfile.lock +++ b/gemfiles/rails_7.1_ruby_3.3.0.gemfile.lock @@ -5,6 +5,14 @@ GIT acts-as-taggable-on (10.0.0) activerecord (>= 6.1, < 8) +GIT + remote: https://github.com/avo-hq/prop_initializer.git + revision: ec6808bc18b00ee53123497e885305d4d63da9de + branch: main + specs: + prop_initializer (0.1.0) + zeitwerk (>= 2.6.18) + PATH remote: ../pluggy specs: @@ -21,7 +29,6 @@ PATH addressable docile inline_svg - literal (~> 0.2) meta-tags pagy (>= 7.0.0) turbo-rails (>= 2.0.0) @@ -336,7 +343,6 @@ GEM listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - literal (0.2.1) logger (1.6.1) loofah (2.22.0) crass (~> 1.0.2) @@ -689,6 +695,7 @@ DEPENDENCIES pg (>= 0.18, < 2.0) pluggy! prefixed_ids + prop_initializer! psych (< 4) puma (~> 6.4) rails (~> 7.1) diff --git a/gemfiles/rails_7.2.0.beta2_ruby_3.1.4.gemfile b/gemfiles/rails_7.2.0.beta2_ruby_3.1.4.gemfile index 68b5b0698a..e549b25d74 100644 --- a/gemfiles/rails_7.2.0.beta2_ruby_3.1.4.gemfile +++ b/gemfiles/rails_7.2.0.beta2_ruby_3.1.4.gemfile @@ -45,6 +45,7 @@ gem "avo-money_field" gem "avo-record_link_field" gem "pagy", "> 8" gem "csv" +gem "prop_initializer", branch: "main", git: "https://github.com/avo-hq/prop_initializer.git" gem "psych", "< 4" group :development do diff --git a/gemfiles/rails_7.2.0.beta2_ruby_3.1.4.gemfile.lock b/gemfiles/rails_7.2.0.beta2_ruby_3.1.4.gemfile.lock index 7a68e3525f..7b3ca9cc9d 100644 --- a/gemfiles/rails_7.2.0.beta2_ruby_3.1.4.gemfile.lock +++ b/gemfiles/rails_7.2.0.beta2_ruby_3.1.4.gemfile.lock @@ -5,6 +5,14 @@ GIT acts-as-taggable-on (10.0.0) activerecord (>= 6.1, < 8) +GIT + remote: https://github.com/avo-hq/prop_initializer.git + revision: ec6808bc18b00ee53123497e885305d4d63da9de + branch: main + specs: + prop_initializer (0.1.0) + zeitwerk (>= 2.6.18) + PATH remote: ../pluggy specs: @@ -21,7 +29,6 @@ PATH addressable docile inline_svg - literal (~> 0.2) meta-tags pagy (>= 7.0.0) turbo-rails (>= 2.0.0) @@ -336,7 +343,6 @@ GEM listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - literal (0.2.1) logger (1.6.1) loofah (2.22.0) crass (~> 1.0.2) @@ -689,6 +695,7 @@ DEPENDENCIES pg (>= 0.18, < 2.0) pluggy! prefixed_ids + prop_initializer! psych (< 4) puma (~> 6.4) rails (~> 7.2.0.beta2) diff --git a/gemfiles/rails_7.2.0.beta2_ruby_3.3.0.gemfile b/gemfiles/rails_7.2.0.beta2_ruby_3.3.0.gemfile index 68b5b0698a..e549b25d74 100644 --- a/gemfiles/rails_7.2.0.beta2_ruby_3.3.0.gemfile +++ b/gemfiles/rails_7.2.0.beta2_ruby_3.3.0.gemfile @@ -45,6 +45,7 @@ gem "avo-money_field" gem "avo-record_link_field" gem "pagy", "> 8" gem "csv" +gem "prop_initializer", branch: "main", git: "https://github.com/avo-hq/prop_initializer.git" gem "psych", "< 4" group :development do diff --git a/gemfiles/rails_7.2.0.beta2_ruby_3.3.0.gemfile.lock b/gemfiles/rails_7.2.0.beta2_ruby_3.3.0.gemfile.lock index 7a68e3525f..7b3ca9cc9d 100644 --- a/gemfiles/rails_7.2.0.beta2_ruby_3.3.0.gemfile.lock +++ b/gemfiles/rails_7.2.0.beta2_ruby_3.3.0.gemfile.lock @@ -5,6 +5,14 @@ GIT acts-as-taggable-on (10.0.0) activerecord (>= 6.1, < 8) +GIT + remote: https://github.com/avo-hq/prop_initializer.git + revision: ec6808bc18b00ee53123497e885305d4d63da9de + branch: main + specs: + prop_initializer (0.1.0) + zeitwerk (>= 2.6.18) + PATH remote: ../pluggy specs: @@ -21,7 +29,6 @@ PATH addressable docile inline_svg - literal (~> 0.2) meta-tags pagy (>= 7.0.0) turbo-rails (>= 2.0.0) @@ -336,7 +343,6 @@ GEM listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - literal (0.2.1) logger (1.6.1) loofah (2.22.0) crass (~> 1.0.2) @@ -689,6 +695,7 @@ DEPENDENCIES pg (>= 0.18, < 2.0) pluggy! prefixed_ids + prop_initializer! psych (< 4) puma (~> 6.4) rails (~> 7.2.0.beta2) diff --git a/gemfiles/rails_8.0_ruby_3.1.4.gemfile b/gemfiles/rails_8.0_ruby_3.1.4.gemfile index 5366e6ffaf..5ce3a78c7e 100644 --- a/gemfiles/rails_8.0_ruby_3.1.4.gemfile +++ b/gemfiles/rails_8.0_ruby_3.1.4.gemfile @@ -45,6 +45,7 @@ gem "avo-money_field" gem "avo-record_link_field" gem "pagy", "> 8" gem "csv" +gem "prop_initializer", branch: "main", git: "https://github.com/avo-hq/prop_initializer.git" gem "psych", "< 4" group :development do diff --git a/gemfiles/rails_8.0_ruby_3.1.4.gemfile.lock b/gemfiles/rails_8.0_ruby_3.1.4.gemfile.lock index d66e88005d..4043ebf00b 100644 --- a/gemfiles/rails_8.0_ruby_3.1.4.gemfile.lock +++ b/gemfiles/rails_8.0_ruby_3.1.4.gemfile.lock @@ -5,6 +5,14 @@ GIT acts-as-taggable-on (10.0.0) activerecord (>= 6.1, < 8) +GIT + remote: https://github.com/avo-hq/prop_initializer.git + revision: ec6808bc18b00ee53123497e885305d4d63da9de + branch: main + specs: + prop_initializer (0.1.0) + zeitwerk (>= 2.6.18) + GIT remote: https://github.com/rails/rails.git revision: b88d9af34fbc1c84ce2769ba02584eab2c28ac6e @@ -120,7 +128,6 @@ PATH addressable docile inline_svg - literal (~> 0.2) meta-tags pagy (>= 7.0.0) turbo-rails (>= 2.0.0) @@ -365,7 +372,6 @@ GEM listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - literal (0.2.1) logger (1.6.1) loofah (2.22.0) crass (~> 1.0.2) @@ -697,6 +703,7 @@ DEPENDENCIES pg (>= 0.18, < 2.0) pluggy! prefixed_ids + prop_initializer! psych (< 4) puma (~> 6.4) rails! diff --git a/gemfiles/rails_8.0_ruby_3.3.0.gemfile b/gemfiles/rails_8.0_ruby_3.3.0.gemfile index 5366e6ffaf..5ce3a78c7e 100644 --- a/gemfiles/rails_8.0_ruby_3.3.0.gemfile +++ b/gemfiles/rails_8.0_ruby_3.3.0.gemfile @@ -45,6 +45,7 @@ gem "avo-money_field" gem "avo-record_link_field" gem "pagy", "> 8" gem "csv" +gem "prop_initializer", branch: "main", git: "https://github.com/avo-hq/prop_initializer.git" gem "psych", "< 4" group :development do diff --git a/gemfiles/rails_8.0_ruby_3.3.0.gemfile.lock b/gemfiles/rails_8.0_ruby_3.3.0.gemfile.lock index d66e88005d..4043ebf00b 100644 --- a/gemfiles/rails_8.0_ruby_3.3.0.gemfile.lock +++ b/gemfiles/rails_8.0_ruby_3.3.0.gemfile.lock @@ -5,6 +5,14 @@ GIT acts-as-taggable-on (10.0.0) activerecord (>= 6.1, < 8) +GIT + remote: https://github.com/avo-hq/prop_initializer.git + revision: ec6808bc18b00ee53123497e885305d4d63da9de + branch: main + specs: + prop_initializer (0.1.0) + zeitwerk (>= 2.6.18) + GIT remote: https://github.com/rails/rails.git revision: b88d9af34fbc1c84ce2769ba02584eab2c28ac6e @@ -120,7 +128,6 @@ PATH addressable docile inline_svg - literal (~> 0.2) meta-tags pagy (>= 7.0.0) turbo-rails (>= 2.0.0) @@ -365,7 +372,6 @@ GEM listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - literal (0.2.1) logger (1.6.1) loofah (2.22.0) crass (~> 1.0.2) @@ -697,6 +703,7 @@ DEPENDENCIES pg (>= 0.18, < 2.0) pluggy! prefixed_ids + prop_initializer! psych (< 4) puma (~> 6.4) rails!