class RgGen::Core::InputBase::FeatureFactory
Attributes
value_converter[R]
Public Class Methods
convert_value(&block)
click to toggle source
# File lib/rggen/core/input_base/feature_factory.rb, line 8 def convert_value(&block) @value_converter = block end
default_value(&block)
click to toggle source
# File lib/rggen/core/input_base/feature_factory.rb, line 14 def default_value(&block) @default_value = block if block_given? @default_value end
Public Instance Methods
active_feature_factory?()
click to toggle source
# File lib/rggen/core/input_base/feature_factory.rb, line 28 def active_feature_factory? !passive_feature_factory? end
create(component, *args)
click to toggle source
# File lib/rggen/core/input_base/feature_factory.rb, line 20 def create(component, *args) input_value = preprocess(args.last) create_feature(component, *args[0..-2], input_value) do |feature| build_feature(feature, input_value) feature.verify(:feature) end end
passive_feature_factory?()
click to toggle source
# File lib/rggen/core/input_base/feature_factory.rb, line 32 def passive_feature_factory? @target_features.nil? && @target_feature.passive_feature? end
Private Instance Methods
build?(feature, input_value)
click to toggle source
# File lib/rggen/core/input_base/feature_factory.rb, line 68 def build?(feature, input_value) active_feature_factory? && input_value.available? && !ignore_empty_value?(feature, input_value) end
build_feature(feature, input_value)
click to toggle source
# File lib/rggen/core/input_base/feature_factory.rb, line 64 def build_feature(feature, input_value) build?(feature, input_value) && feature.build(input_value) end
convert(value, position)
click to toggle source
# File lib/rggen/core/input_base/feature_factory.rb, line 59 def convert(value, position) block = self.class.value_converter block && instance_exec(value, position, &block) end
convert_value(input_value)
click to toggle source
# File lib/rggen/core/input_base/feature_factory.rb, line 44 def convert_value(input_value) new_value = if input_value.empty_value? evaluate_defalt_value(input_value.position) else convert(input_value.value, input_value.position) end new_value && InputValue.new(new_value, input_value.position) end
evaluate_defalt_value(position)
click to toggle source
# File lib/rggen/core/input_base/feature_factory.rb, line 54 def evaluate_defalt_value(position) block = self.class.default_value block && instance_exec(position, &block) end
ignore_empty_value?(feature, input_value)
click to toggle source
# File lib/rggen/core/input_base/feature_factory.rb, line 74 def ignore_empty_value?(feature, input_value) feature.ignore_empty_value? && input_value.empty_value? end
preprocess(input_value)
click to toggle source
# File lib/rggen/core/input_base/feature_factory.rb, line 38 def preprocess(input_value) converted_value = active_feature_factory? && convert_value(input_value) converted_value || input_value end