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.



255
256
257
# File 'lib/aws/decider/utilities.rb', line 255

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.



258
259
260
261
262
263
264
# File 'lib/aws/decider/utilities.rb', line 258

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.



285
286
287
# File 'lib/aws/decider/utilities.rb', line 285

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.



267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
# File 'lib/aws/decider/utilities.rb', line 267

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