Module: CafeCar

Extended by:
ProcHelpers
Includes:
Resolver
Defined in:
lib/cafe_car.rb,
lib/cafe_car/ui.rb,
lib/cafe_car/engine.rb,
lib/cafe_car/fields.rb,
lib/cafe_car/filter.rb,
lib/cafe_car/context.rb,
lib/cafe_car/current.rb,
lib/cafe_car/helpers.rb,
lib/cafe_car/routing.rb,
lib/cafe_car/version.rb,
lib/cafe_car/resolver.rb,
lib/cafe_car/component.rb,
app/ui/cafe_car/ui/card.rb,
app/ui/cafe_car/ui/grid.rb,
app/ui/cafe_car/ui/page.rb,
lib/cafe_car/controller.rb,
lib/cafe_car/field_info.rb,
lib/cafe_car/informable.rb,
lib/cafe_car/model_info.rb,
lib/cafe_car/name_patch.rb,
lib/cafe_car/navigation.rb,
app/ui/cafe_car/ui/field.rb,
app/ui/cafe_car/ui/button.rb,
app/ui/cafe_car/ui/layout.rb,
lib/cafe_car/form_builder.rb,
lib/cafe_car/href_builder.rb,
lib/cafe_car/link_builder.rb,
lib/cafe_car/proc_helpers.rb,
lib/cafe_car/chart_builder.rb,
lib/cafe_car/field_builder.rb,
lib/cafe_car/input_builder.rb,
lib/cafe_car/pluralization.rb,
lib/cafe_car/query_builder.rb,
lib/cafe_car/table_builder.rb,
app/models/cafe_car/session.rb,
lib/cafe_car/filter_builder.rb,
lib/cafe_car/option_helpers.rb,
lib/cafe_car/inputs/base_input.rb,
lib/cafe_car/inputs/date_input.rb,
lib/cafe_car/inputs/file_input.rb,
lib/cafe_car/turbo_tag_builder.rb,
lib/cafe_car/inputs/nested_input.rb,
lib/cafe_car/inputs/number_input.rb,
lib/cafe_car/inputs/select_input.rb,
lib/cafe_car/inputs/string_input.rb,
app/presenters/cafe_car/presenter.rb,
lib/cafe_car/inputs/boolean_input.rb,
lib/cafe_car/application_responder.rb,
lib/cafe_car/inputs/datetime_input.rb,
lib/cafe_car/inputs/password_input.rb,
lib/cafe_car/inputs/rich_text_input.rb,
lib/cafe_car/inputs/text_area_input.rb,
app/policies/cafe_car/session_policy.rb,
lib/cafe_car/inputs/association_input.rb,
app/presenters/cafe_car/code_presenter.rb,
app/presenters/cafe_car/date_presenter.rb,
app/presenters/cafe_car/hash_presenter.rb,
app/presenters/cafe_car/range_presenter.rb,
app/presenters/cafe_car/record_presenter.rb,
app/presenters/cafe_car/string_presenter.rb,
app/presenters/cafe_car/symbol_presenter.rb,
app/presenters/cafe_car/currency_presenter.rb,
app/presenters/cafe_car/date_time_presenter.rb,
app/presenters/cafe_car/nil_class_presenter.rb,
app/controllers/cafe_car/examples_controller.rb,
app/controllers/cafe_car/sessions_controller.rb,
app/presenters/cafe_car/enumerable_presenter.rb,
app/presenters/cafe_car/true_class_presenter.rb,
app/presenters/cafe_car/false_class_presenter.rb,
app/controllers/cafe_car/dashboards_controller.rb,
app/presenters/cafe_car/basic_object_presenter.rb,
app/controllers/cafe_car/application_controller.rb,
app/controllers/concerns/cafe_car/authentication.rb,
app/presenters/cafe_car/active_record/base_presenter.rb,
app/presenters/cafe_car/action_text/rich_text_presenter.rb,
app/presenters/cafe_car/active_record/relation_presenter.rb,
app/presenters/cafe_car/active_storage/attachment_presenter.rb,
app/presenters/cafe_car/active_storage/attached/one_presenter.rb,
app/presenters/cafe_car/date_and_time/compatibility_presenter.rb

Defined Under Namespace

Modules: ActionText, ActiveRecord, ActiveStorage, Authentication, Caching, Controller, DateAndTime, Filter, Generators, Helpers, Informable, Inputs, Model, NamePatch, OptionHelpers, Pluralization, Policy, ProcHelpers, Queryable, Resolver, Routing, Table, TurboTagBuilder, UI, Visitors Classes: AgentsGenerator, ApplicationController, ApplicationPolicy, ApplicationResponder, Attributes, AuthenticationFailed, BasicObjectPresenter, ChartBuilder, CodePresenter, Component, Context, ControllerGenerator, CurrencyPresenter, Current, DashboardsController, DatePresenter, DateTimePresenter, Engine, EnumerablePresenter, ExamplesController, FalseClassPresenter, FieldBuilder, FieldInfo, Fields, FilterBuilder, FormBuilder, HashPresenter, HrefBuilder, InputBuilder, InstallGenerator, LinkBuilder, MissingAttributeError, ModelInfo, Navigation, NilClassPresenter, NotesGenerator, ParamParser, PolicyGenerator, Presenter, QueryBuilder, RangePresenter, RecordPresenter, ResourceGenerator, Session, SessionPolicy, SessionsController, SessionsGenerator, StringPresenter, SymbolPresenter, TableBuilder, TrueClassPresenter

Constant Summary collapse

THEMES =

Bundled themes selectable via CafeCar.theme. Each lives at app/assets/stylesheets/cafe_car/themes/<name>.css as a set of CSS custom properties layered over themes/defaults.css, with its own dark-mode block.

%i[warm cool cool2].freeze
VERSION =
"0.3.1"

Class Method Summary collapse

Methods included from ProcHelpers

call_procs!, clone_or_call!

Methods included from Resolver

#const, #const!

Class Method Details

.sessions_available?Boolean

Whether the opt-in sessions/login infrastructure is available. True only when the sessions table exists, so a CRUD-only host (no sessions migration) degrades to 403 Forbidden instead of redirecting to a nonexistent login.

Returns:

  • (Boolean)


67
68
69
70
71
# File 'lib/cafe_car.rb', line 67

def self.sessions_available?
  CafeCar[:Session].table_exists?
rescue StandardError
  false
end

.theme=(name) ⇒ Object



51
52
53
54
55
56
57
58
# File 'lib/cafe_car.rb', line 51

def self.theme=(name)
  name = name&.to_sym
  unless THEMES.include?(name)
    raise ArgumentError,
      "unknown CafeCar theme #{name.inspect} (valid: #{THEMES.map(&:inspect).join(", ")})"
  end
  @@theme = name
end

.use_relative_model_naming?Boolean

Returns:

  • (Boolean)


18
# File 'lib/cafe_car.rb', line 18

def self.use_relative_model_naming? = true

.user_classObject

The host's user model, resolved lazily so the constant need not exist at boot. Used by CafeCar::Session for authentication.



62
# File 'lib/cafe_car.rb', line 62

def self.user_class = user_class_name.to_s.constantize