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.



260
261
262
# File 'lib/aws/decider/utilities.rb', line 260

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.



263
264
265
266
267
268
269
# File 'lib/aws/decider/utilities.rb', line 263

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.



290
291
292
# File 'lib/aws/decider/utilities.rb', line 290

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.



272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
# File 'lib/aws/decider/utilities.rb', line 272

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