Module: ActsAsCalculator

Defined in:
lib/acts_as_calculator.rb,
lib/acts_as_calculator/tier.rb,
lib/acts_as_calculator/engine.rb,
lib/acts_as_calculator/errors.rb,
lib/acts_as_calculator/result.rb,
lib/acts_as_calculator/version.rb,
lib/acts_as_calculator/cast_date.rb,
lib/acts_as_calculator/find_tier.rb,
app/models/acts_as_calculator/run.rb,
lib/acts_as_calculator/calculable.rb,
lib/acts_as_calculator/aggregation.rb,
lib/acts_as_calculator/persist_run.rb,
lib/acts_as_calculator/result_drop.rb,
lib/acts_as_calculator/cast_decimal.rb,
app/models/acts_as_calculator/record.rb,
lib/acts_as_calculator/apportionment.rb,
lib/acts_as_calculator/build_lookups.rb,
lib/acts_as_calculator/configuration.rb,
lib/acts_as_calculator/render_liquid.rb,
lib/acts_as_calculator/variable_spec.rb,
app/models/acts_as_calculator/formula.rb,
lib/acts_as_calculator/cast_json_safe.rb,
lib/acts_as_calculator/import_formula.rb,
lib/acts_as_calculator/import_outcome.rb,
lib/acts_as_calculator/import_summary.rb,
lib/acts_as_calculator/liquid_filters.rb,
app/models/acts_as_calculator/template.rb,
app/models/acts_as_calculator/variable.rb,
lib/acts_as_calculator/import_template.rb,
lib/acts_as_calculator/render_template.rb,
lib/acts_as_calculator/apportion_amount.rb,
lib/acts_as_calculator/build_calculator.rb,
lib/acts_as_calculator/calculator_cache.rb,
lib/acts_as_calculator/evaluate_formula.rb,
lib/acts_as_calculator/promote_template.rb,
lib/acts_as_calculator/publish_template.rb,
lib/acts_as_calculator/read_import_file.rb,
lib/acts_as_calculator/resolve_template.rb,
lib/acts_as_calculator/aggregate_results.rb,
lib/acts_as_calculator/cast_liquid_value.rb,
lib/acts_as_calculator/find_owned_record.rb,
lib/acts_as_calculator/function_registry.rb,
lib/acts_as_calculator/resolve_variables.rb,
lib/acts_as_calculator/serialize_formula.rb,
lib/acts_as_calculator/import_definitions.rb,
lib/acts_as_calculator/serialize_template.rb,
app/models/acts_as_calculator/lookup_table.rb,
lib/acts_as_calculator/evaluate_expression.rb,
lib/acts_as_calculator/import_lookup_table.rb,
lib/acts_as_calculator/distribute_remainder.rb,
lib/acts_as_calculator/formula_version_drop.rb,
lib/acts_as_calculator/resolve_import_owner.rb,
lib/acts_as_calculator/divide_proportionally.rb,
app/models/acts_as_calculator/formula_version.rb,
lib/acts_as_calculator/publish_formula_version.rb,
lib/acts_as_calculator/resolve_formula_version.rb,
lib/acts_as_calculator/cast_variable_attributes.rb,
lib/acts_as_calculator/serialize_import_summary.rb,
app/models/acts_as_calculator/lookup_table_entry.rb,
lib/acts_as_calculator/serialize_formula_version.rb,
lib/acts_as_calculator/supersede_formula_versions.rb,
lib/acts_as_calculator/find_lookup_table_references.rb,
app/controllers/acts_as_calculator/imports_controller.rb,
app/controllers/acts_as_calculator/formulas_controller.rb,
app/controllers/acts_as_calculator/templates_controller.rb,
app/controllers/acts_as_calculator/application_controller.rb,
lib/generators/acts_as_calculator/import/import_generator.rb,
lib/generators/acts_as_calculator/install/install_generator.rb,
app/controllers/acts_as_calculator/formula_versions_controller.rb,
sig/acts_as_calculator.rbs

Defined Under Namespace

Modules: Aggregation, Apportionment, Calculable, Generators, LiquidFilters Classes: AggregateResults, AggregationError, ApplicationController, ApportionAmount, ApportionmentError, BuildCalculator, BuildLookups, CalculatorCache, CastDate, CastDecimal, CastJsonSafe, CastLiquidValue, CastVariableAttributes, Configuration, DistributeRemainder, DivideProportionally, Engine, Error, EvaluateExpression, EvaluateFormula, EvaluationError, FindLookupTableReferences, FindOwnedRecord, FindTier, Formula, FormulaNotFoundError, FormulaVersion, FormulaVersionDrop, FormulaVersionsController, FormulasController, FunctionRegistry, ImportDefinitions, ImportError, ImportFormula, ImportLookupTable, ImportOutcome, ImportSummary, ImportTemplate, ImportsController, LookupTable, LookupTableEntry, LookupTableInUseError, MissingLookupTableError, MissingVariableError, NoEffectiveVersionError, PartialSupersedeError, PersistRun, PromoteTemplate, PublishFormulaVersion, PublishTemplate, ReadImportFile, Record, RenderLiquid, RenderTemplate, ResolveFormulaVersion, ResolveImportOwner, ResolveTemplate, ResolveVariables, Result, ResultDrop, Run, SerializeFormula, SerializeFormulaVersion, SerializeImportSummary, SerializeTemplate, SupersedeFormulaVersions, Template, TemplateNotFoundError, TemplateRenderError, TemplatesController, Tier, TierNotFoundError, UnknownSourceTypeError, UnknownStrategyError, UnsafeAssignError, Variable, VariableResolutionError, VariableSpec

Constant Summary collapse

DEFAULT_SCOPE =

The scope every formula, lookup table and template falls into when a host doesn't namespace one. A non-null column beats a nullable one here because uniqueness is scoped on [key, scope, owner_type, owner_id] and NULLs never compare equal.

"default"
VERSION =

Returns:

  • (String)
"0.1.0"
IMPORT_STATUSES =

One line of an import report: what was touched, and what happened to it.

%i[created updated skipped failed].freeze

Class Method Summary collapse

Class Method Details

.configurationObject



19
20
21
# File 'lib/acts_as_calculator/configuration.rb', line 19

def self.configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



23
24
25
# File 'lib/acts_as_calculator/configuration.rb', line 23

def self.configure
  yield(configuration)
end

.reset_configuration!Object

Test-suite affordance: a host's own specs need to flip enable_api and put it back.



28
29
30
# File 'lib/acts_as_calculator/configuration.rb', line 28

def self.reset_configuration!
  @configuration = Configuration.new
end

.table_name_prefixObject

Defined here rather than in engine.rb because Engine.isolate_namespace only leaves this alone if the module already answers to it — otherwise it installs an on_load(:active_record) hook that redefines it to "acts_as_calculator_" long after the engine class body has run. The tables are named for what they hold.



41
42
43
# File 'lib/acts_as_calculator.rb', line 41

def self.table_name_prefix
  "calculator_"
end