Class: Karst::Access::PopulationPreview
- Inherits:
-
Object
- Object
- Karst::Access::PopulationPreview
- Defined in:
- lib/karst/access/population_preview.rb
Overview
The explicit, bounded "does this discovered candidate actually work" step -- deliberately separate from Karst::Access::PopulationDiscovery, which never executes anything. Only ever resolves a model/method pair that a given Karst::Access::PopulationDiscovery::Result itself already discovered; a submitted name that is not on that list is rejected without calling anything, so this can never become a general "call any class method by name" endpoint. Every resolution is bounded to PREVIEW_LIMIT rows via Karst::Access::CandidatePopulation.resolve -- never a COUNT, never full materialization.
Constant Summary collapse
Class Method Summary collapse
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(model_name:, method_name:, discovery_result:) ⇒ PopulationPreview
constructor
A new instance of PopulationPreview.
Constructor Details
#initialize(model_name:, method_name:, discovery_result:) ⇒ PopulationPreview
Returns a new instance of PopulationPreview.
26 27 28 29 30 |
# File 'lib/karst/access/population_preview.rb', line 26 def initialize(model_name:, method_name:, discovery_result:) @model_name = model_name.to_s @method_name = method_name.to_s @discovery_result = discovery_result end |
Class Method Details
.call(model_name:, method_name:, discovery_result:) ⇒ Object
22 23 24 |
# File 'lib/karst/access/population_preview.rb', line 22 def self.call(model_name:, method_name:, discovery_result:) new(model_name: model_name, method_name: method_name, discovery_result: discovery_result).call end |
Instance Method Details
#call ⇒ Object
32 33 34 35 36 37 38 39 |
# File 'lib/karst/access/population_preview.rb', line 32 def call return unresolved("this is not a discovered candidate") unless known_candidate? klass = model_class return unresolved("the model could not be resolved") unless klass resolve(klass) end |