Class: AWS::SimpleWorkflow::HistoryEvent::Attributes
- Inherits:
-
Object
- Object
- AWS::SimpleWorkflow::HistoryEvent::Attributes
- Defined in:
- lib/aws/simple_workflow/history_event.rb
Overview
A collection off attributes that provides method and hash style access to a collection of attributes.
If you are exploring a history event, you can call #keys to get a complete list of attribute names present. You can also reference the service API documentation that lists all history event types along with their returned attributes.
Indifferent Access
Here are a few examples showing the different ways to access an attribute:
event = workflow_executions.events.first
# equivalent
event.attributes.task_list
event.attributes[:task_list]
event.attributes['task_list']
event.attributes['taskList']
As shown in the example above keys and method names can be snake_cased or camelCased (strings or symbols).
Special Attributes
The following list of attributes are treated specially. Generally this means they return
-
timeout attributes (e.g. taskStartToCloseTimeout) are returned as integers (number of seconds) or the special symbol :none, implying there is no timeout.
-
childPolicy is cast to a symbol
-
activityType is returned as a ActivityType object.
-
workflowType is returned as a WorkflowType object.
-
workflowExecution is returned as a WorkflowExecution object.
-
taskList is returned as a string, not a hash.
Instance Method Summary collapse
-
#[](key) ⇒ Object
Returns the attribute with the given name (key).
-
#initialize(workflow_execution, data) ⇒ Attributes
constructor
A new instance of Attributes.
- #inspect ⇒ Object
-
#key?(key) ⇒ Boolean
(also: #member?, #include?, #has_key?)
Returns true if the attribute with the given name is set.
-
#keys ⇒ Array<Symbol>
Returns a list of valid keys for this set of attributes.
- #method_missing(method) ⇒ Object
-
#to_h ⇒ Hash
Returns all of the attributes in a hash with snaked_cased and symbolized keys.
Constructor Details
#initialize(workflow_execution, data) ⇒ Attributes
Returns a new instance of Attributes.
170 171 172 173 |
# File 'lib/aws/simple_workflow/history_event.rb', line 170 def initialize workflow_execution, data @workflow_execution = workflow_execution @data = data end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method) ⇒ Object
203 204 205 |
# File 'lib/aws/simple_workflow/history_event.rb', line 203 def method_missing method self[method] end |
Instance Method Details
#[](key) ⇒ Object
Returns the attribute with the given name (key).
177 178 179 180 181 182 183 184 185 |
# File 'lib/aws/simple_workflow/history_event.rb', line 177 def [] key key = _camel_case(key) if @data.key?(key) _cast(key, @data[key]) else msg = "no such attribute `#{key}`, valid keys are #{_key_string}" raise ArgumentError, msg end end |
#inspect ⇒ Object
221 222 223 |
# File 'lib/aws/simple_workflow/history_event.rb', line 221 def inspect "<Attributes #{to_h.inspect}>" end |
#key?(key) ⇒ Boolean Also known as: member?, include?, has_key?
Returns true if the attribute with the given name is set.
195 196 197 |
# File 'lib/aws/simple_workflow/history_event.rb', line 195 def key? key @data.key?(_camel_case(key)) end |
#keys ⇒ Array<Symbol>
Returns a list of valid keys for this set of attributes.
189 190 191 |
# File 'lib/aws/simple_workflow/history_event.rb', line 189 def keys @data.keys.collect{|key| _snake_case(key) } end |
#to_h ⇒ Hash
Returns all of the attributes in a hash with snaked_cased and symbolized keys.
209 210 211 212 213 214 215 216 217 218 |
# File 'lib/aws/simple_workflow/history_event.rb', line 209 def to_h @data.inject({}) do |h,(key,value)| value = _cast(key,value) if value.is_a?(Array) value = value.map{|v| v.is_a?(Attributes) ? v.to_h : v } end h[_snake_case(key)] = value.is_a?(Attributes) ? value.to_h : value h end end |