Module: ActiveFields

Extended by:
ActiveSupport::Autoload
Defined in:
lib/active_fields.rb,
lib/active_fields/config.rb,
lib/active_fields/engine.rb,
lib/active_fields/version.rb,
lib/active_fields/registry.rb,
lib/active_fields/constants.rb,
app/models/active_fields/field.rb,
app/models/active_fields/value.rb,
app/models/active_fields/field/base.rb,
app/models/active_fields/field/date.rb,
app/models/active_fields/field/enum.rb,
app/models/active_fields/field/text.rb,
lib/active_fields/has_active_fields.rb,
lib/active_fields/casters/base_caster.rb,
lib/active_fields/casters/date_caster.rb,
lib/active_fields/casters/enum_caster.rb,
lib/active_fields/casters/text_caster.rb,
lib/active_fields/finders/base_finder.rb,
lib/active_fields/finders/date_finder.rb,
lib/active_fields/finders/enum_finder.rb,
lib/active_fields/finders/text_finder.rb,
app/models/active_fields/field/boolean.rb,
app/models/active_fields/field/decimal.rb,
app/models/active_fields/field/integer.rb,
lib/active_fields/finders/array_finder.rb,
app/models/active_fields/field/date_time.rb,
lib/active_fields/casters/boolean_caster.rb,
lib/active_fields/casters/decimal_caster.rb,
lib/active_fields/casters/integer_caster.rb,
lib/active_fields/finders/boolean_finder.rb,
lib/active_fields/finders/decimal_finder.rb,
lib/active_fields/finders/integer_finder.rb,
app/models/active_fields/field/date_array.rb,
app/models/active_fields/field/enum_array.rb,
app/models/active_fields/field/text_array.rb,
lib/active_fields/finders/singular_finder.rb,
lib/active_fields/casters/date_time_caster.rb,
lib/active_fields/finders/date_time_finder.rb,
app/models/active_fields/application_record.rb,
lib/active_fields/casters/date_array_caster.rb,
lib/active_fields/casters/enum_array_caster.rb,
lib/active_fields/casters/text_array_caster.rb,
lib/active_fields/finders/date_array_finder.rb,
lib/active_fields/finders/enum_array_finder.rb,
lib/active_fields/finders/text_array_finder.rb,
lib/active_fields/validators/base_validator.rb,
lib/active_fields/validators/date_validator.rb,
lib/active_fields/validators/enum_validator.rb,
lib/active_fields/validators/text_validator.rb,
app/models/active_fields/field/decimal_array.rb,
app/models/active_fields/field/integer_array.rb,
app/models/active_fields/field/date_time_array.rb,
lib/active_fields/casters/decimal_array_caster.rb,
lib/active_fields/casters/integer_array_caster.rb,
lib/active_fields/finders/decimal_array_finder.rb,
lib/active_fields/finders/integer_array_finder.rb,
lib/active_fields/validators/boolean_validator.rb,
lib/active_fields/validators/decimal_validator.rb,
lib/active_fields/validators/integer_validator.rb,
app/models/concerns/active_fields/field_concern.rb,
app/models/concerns/active_fields/value_concern.rb,
lib/active_fields/casters/date_time_array_caster.rb,
lib/active_fields/finders/date_time_array_finder.rb,
lib/active_fields/validators/date_time_validator.rb,
lib/active_fields/validators/date_array_validator.rb,
lib/active_fields/validators/enum_array_validator.rb,
lib/active_fields/validators/text_array_validator.rb,
lib/active_fields/validators/decimal_array_validator.rb,
lib/active_fields/validators/integer_array_validator.rb,
app/models/concerns/active_fields/field_array_concern.rb,
app/models/concerns/active_fields/customizable_concern.rb,
lib/active_fields/validators/date_time_array_validator.rb,
lib/generators/active_fields/install/install_generator.rb,
lib/generators/active_fields/scaffold/scaffold_generator.rb

Defined Under Namespace

Modules: Casters, CustomizableConcern, Field, FieldArrayConcern, FieldConcern, Finders, Generators, HasActiveFields, Validators, ValueConcern Classes: ApplicationRecord, Config, Engine, Registry, Value

Constant Summary collapse

VERSION =
"2.0.1"
MAX_DATETIME_PRECISION =

Ruby supports up to 9 fractional seconds, but PostgreSQL, like most databases, supports only 6. Since we use PostgreSQL, we standardize on 6.

6
MAX_DECIMAL_PRECISION =

Ruby’s BigDecimal class allows extremely high precision, but PostgreSQL supports a maximum of 16383 digits after the decimal point. Since we use PostgreSQL, we limit decimal precision to 16383.

2**14 - 1
OPS =
{
  eq: :"=",
  not_eq: :"!=",
  gt: :">",
  gteq: :">=",
  lt: :"<",
  lteq: :"<=",

  start_with: :"^",
  end_with: :"$",
  contain: :"~",
  not_start_with: :"!^",
  not_end_with: :"!$",
  not_contain: :"!~",
  istart_with: :"^*",
  iend_with: :"$*",
  icontain: :"~*",
  not_istart_with: :"!^*",
  not_iend_with: :"!$*",
  not_icontain: :"!~*",

  include: :"|=",
  not_include: :"!|=",
  any_gt: :"|>",
  any_gteq: :"|>=",
  any_lt: :"|<",
  any_lteq: :"|<=",
  all_gt: :"&>",
  all_gteq: :"&>=",
  all_lt: :"&<",
  all_lteq: :"&<=",

  size_eq: :"#=",
  size_not_eq: :"#!=",
  size_gt: :"#>",
  size_gteq: :"#>=",
  size_lt: :"#<",
  size_lteq: :"#<=",

  any_start_with: :"|^",
  all_start_with: :"&^",
}.freeze

Class Method Summary collapse

Class Method Details

.config {|Config.instance| ... } ⇒ Object Also known as: configure

Yields:



92
93
94
95
# File 'lib/active_fields.rb', line 92

def config
  yield Config.instance if block_given?
  Config.instance
end

.eager_load!Object



11
12
13
14
15
16
# File 'lib/active_fields.rb', line 11

def eager_load!
  super
  Casters.eager_load!
  Validators.eager_load!
  Finders.eager_load!
end

.registryObject



99
# File 'lib/active_fields.rb', line 99

def registry = Registry.instance