Class: Aikido::Zen::IDOR::SQLQueryResult
- Inherits:
-
Object
- Object
- Aikido::Zen::IDOR::SQLQueryResult
- Defined in:
- lib/aikido/zen/idor/analysis_result.rb
Instance Attribute Summary collapse
- #filter_columns ⇒ Array<Aikido::Zen::IDOR::FilterColumn>
- #insert_columns ⇒ Array<Array<Aikido::Zen::IDOR::InsertColumn>>?
- #kind ⇒ :select, ...
- #tables ⇒ Array<Aikido::Zen::IDOR::Table>
Class Method Summary collapse
Instance Method Summary collapse
- #==(other) ⇒ Object (also: #eql?)
-
#initialize(kind:, tables:, filter_columns:, insert_columns: nil) ⇒ SQLQueryResult
constructor
A new instance of SQLQueryResult.
Constructor Details
#initialize(kind:, tables:, filter_columns:, insert_columns: nil) ⇒ SQLQueryResult
Returns a new instance of SQLQueryResult.
142 143 144 145 146 147 148 149 |
# File 'lib/aikido/zen/idor/analysis_result.rb', line 142 def initialize(kind:, tables:, filter_columns:, insert_columns: nil) raise ArgumentError, "kind must be one of :select, :insert, :update, or :delete" unless [:select, :insert, :update, :delete].include?(kind) @kind = kind @tables = tables @filter_columns = filter_columns @insert_columns = insert_columns end |
Instance Attribute Details
#filter_columns ⇒ Array<Aikido::Zen::IDOR::FilterColumn>
158 159 160 |
# File 'lib/aikido/zen/idor/analysis_result.rb', line 158 def filter_columns @filter_columns end |
#insert_columns ⇒ Array<Array<Aikido::Zen::IDOR::InsertColumn>>?
161 162 163 |
# File 'lib/aikido/zen/idor/analysis_result.rb', line 161 def insert_columns @insert_columns end |
#kind ⇒ :select, ...
152 153 154 |
# File 'lib/aikido/zen/idor/analysis_result.rb', line 152 def kind @kind end |
#tables ⇒ Array<Aikido::Zen::IDOR::Table>
155 156 157 |
# File 'lib/aikido/zen/idor/analysis_result.rb', line 155 def tables @tables end |
Class Method Details
.from_json(data) ⇒ Object
127 128 129 130 131 132 133 134 135 136 |
# File 'lib/aikido/zen/idor/analysis_result.rb', line 127 def self.from_json(data) new( kind: data["kind"].to_sym, tables: data["tables"].map { |value| Table.from_json(value) }, filter_columns: data["filters"].map { |value| FilterColumn.from_json(value) }, insert_columns: data["insert_columns"]&.map do |values| values.map { |value| InsertColumn.from_json(value) } end ) end |
Instance Method Details
#==(other) ⇒ Object Also known as: eql?
163 164 165 166 167 168 169 |
# File 'lib/aikido/zen/idor/analysis_result.rb', line 163 def ==(other) other.is_a?(self.class) && other.kind == kind && other.tables == tables && other.filter_columns == filter_columns && other.insert_columns == insert_columns end |