Class: Sqreen::Actions::Base
- Inherits:
-
Object
- Object
- Sqreen::Actions::Base
- Defined in:
- lib/sqreen/actions/base.rb
Overview
Base class for actions subclasses must also implement some methods in their singleton classes (actions_matching, index and clear)
Direct Known Subclasses
Class Attribute Summary collapse
-
.type_name ⇒ Object
readonly
Returns the value of attribute type_name.
Instance Attribute Summary collapse
-
#expiry ⇒ Object
readonly
Returns the value of attribute expiry.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#send_response ⇒ Object
readonly
Returns the value of attribute send_response.
Class Method Summary collapse
- .get_type_class(name) ⇒ Object
- .inherited(subclass) ⇒ Object
- .known_subclasses ⇒ Object
- .known_types ⇒ Object
- .new_index ⇒ Object
Instance Method Summary collapse
-
#initialize(id, opts) ⇒ Base
constructor
A new instance of Base.
-
#run(*args) ⇒ Object
See Sqreen::CB for return values.
Constructor Details
#initialize(id, opts) ⇒ Base
Returns a new instance of Base.
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/sqreen/actions/base.rb', line 20 def initialize(id, opts) @id = id duration = opts[:duration] @expiry = Time.new + duration unless duration.nil? @send_response = if opts[:send_response].nil? true else opts[:send_response] ? true : false end end |
Class Attribute Details
.type_name ⇒ Object
Returns the value of attribute type_name.
67 68 69 |
# File 'lib/sqreen/actions/base.rb', line 67 def type_name @type_name end |
Instance Attribute Details
#expiry ⇒ Object (readonly)
Returns the value of attribute expiry.
18 19 20 |
# File 'lib/sqreen/actions/base.rb', line 18 def expiry @expiry end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
18 19 20 |
# File 'lib/sqreen/actions/base.rb', line 18 def id @id end |
#send_response ⇒ Object (readonly)
Returns the value of attribute send_response.
18 19 20 |
# File 'lib/sqreen/actions/base.rb', line 18 def send_response @send_response end |
Class Method Details
.get_type_class(name) ⇒ Object
69 70 71 |
# File 'lib/sqreen/actions/base.rb', line 69 def get_type_class(name) subclasses[name] end |
.inherited(subclass) ⇒ Object
85 86 87 88 89 |
# File 'lib/sqreen/actions/base.rb', line 85 def inherited(subclass) class << subclass public :new end end |
.known_subclasses ⇒ Object
73 74 75 |
# File 'lib/sqreen/actions/base.rb', line 73 def known_subclasses subclasses.values end |
.known_types ⇒ Object
77 78 79 |
# File 'lib/sqreen/actions/base.rb', line 77 def known_types subclasses.keys end |
.new_index ⇒ Object
81 82 83 |
# File 'lib/sqreen/actions/base.rb', line 81 def new_index raise 'implement in singletons of subclasses' end |
Instance Method Details
#run(*args) ⇒ Object
See Sqreen::CB for return values
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/sqreen/actions/base.rb', line 32 def run(*args) return if expiry && Time.new > expiry ret = do_run(*args) unless ret.nil? || !@send_response Sqreen.internal_track(event_name, 'properties' => { 'output' => event_properties(*args), 'action_id' => id, }) end ret end |