Module: AWS::Flow::Utilities::UpwardLookups Private

Included in:
Activities, Options, Workflows
Defined in:
lib/aws/decider/utilities.rb

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

Defined Under Namespace

Modules: InstanceMethods

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#precursorsObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



304
305
306
# File 'lib/aws/decider/utilities.rb', line 304

def precursors
  @precursors
end

Instance Method Details

#held_propertiesObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



307
308
309
310
311
312
313
# File 'lib/aws/decider/utilities.rb', line 307

def held_properties
  precursors = self.ancestors.dup
  precursors.delete(self)
  result = precursors.map{|precursor| precursor.held_properties if precursor.methods.map(&:to_sym).include? :held_properties}.flatten.compact
  result << @held_properties
  result.flatten
end

#properties(*args) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



334
335
336
# File 'lib/aws/decider/utilities.rb', line 334

def properties(*args)
  args.each { |arg| property(arg) }
end

#property(name, methods_to_prepare = [lambda(&:to_s)]) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
# File 'lib/aws/decider/utilities.rb', line 316

def property(name, methods_to_prepare = [lambda(&:to_s)])
  @held_properties ||= []
  @held_properties << name
  define_method(name) do
    return_value = instance_variable_get("@#{name}")
    # Make sure we correctly return false values
    return_value = (look_upwards(name) || nil) if return_value.nil?
    return nil if return_value.nil?
    return_value = "NONE" if return_value == Float::INFINITY
    methods_to_prepare.each {|method| return_value = method.call(return_value)}
    return_value
  end
  define_method("#{name}=") do |*args|
    instance_variable_set("@#{name}", args.first) unless args.first.nil?
  end
end