Module: EmSequelAsync::SequelExtensions::Dataset::InstanceMethods
- Defined in:
- lib/em-sequel-async/sequel_extensions.rb
Constant Summary collapse
- STOCK_COUNT_OPTS =
{ select: [ Sequel::LiteralString.new("COUNT(*)").freeze ], order: nil }.freeze
Instance Method Summary collapse
- #async_all ⇒ Object
- #async_count(&callback) ⇒ Object
- #async_delete(&block) ⇒ Object
- #async_each ⇒ Object
- #async_fetch_rows(sql, iter = :each) ⇒ Object
- #async_first(sql) ⇒ Object
- #async_insert(*args) ⇒ Object
- #async_insert_ignore(*args, &block) ⇒ Object
- #async_multi_insert(*args, &block) ⇒ Object
- #async_multi_insert_ignore(*args, &block) ⇒ Object
- #async_query_return_affected_rows(query) ⇒ Object
- #async_update(*args, &block) ⇒ Object
Instance Method Details
#async_all ⇒ Object
128 129 130 131 132 133 134 135 136 137 138 |
# File 'lib/em-sequel-async/sequel_extensions.rb', line 128 def async_all async_fetch_rows(sql, :all) do |rows| if (row_proc = @row_proc) yield(rows.map { |row| row_proc.call(row) }) else yield(rows) end end return end |
#async_count(&callback) ⇒ Object
140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 |
# File 'lib/em-sequel-async/sequel_extensions.rb', line 140 def async_count(&callback) if ((Sequel::Dataset::COUNT_FROM_SELF_OPTS)) from_self.async_count(&callback) else clone(STOCK_COUNT_OPTS).async_each do |row| callback.call( case (row) when Hash row.values.first.to_i else row.values.values.first.to_i end ) end end return end |
#async_delete(&block) ⇒ Object
78 79 80 |
# File 'lib/em-sequel-async/sequel_extensions.rb', line 78 def async_delete(&block) self.async_query_return_affected_rows(delete_sql, &block) end |
#async_each ⇒ Object
116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/em-sequel-async/sequel_extensions.rb', line 116 def async_each async_fetch_rows(select_sql, :each) do |row| if (row_proc = @row_proc) yield(row_proc.call(row)) else yield(row) end end return end |
#async_fetch_rows(sql, iter = :each) ⇒ Object
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/em-sequel-async/sequel_extensions.rb', line 90 def async_fetch_rows(sql, iter = :each) self.db.async.query(sql) do |result, time, client, err| case (result) when Mysql2::Result case (iter) when :each result.each do |row| yield(row) end else yield(result.to_a) end end end return end |
#async_first(sql) ⇒ Object
108 109 110 111 112 113 114 |
# File 'lib/em-sequel-async/sequel_extensions.rb', line 108 def async_first(sql) async_fetch_rows(sql, :each) do |result, time, client, err| yield(rows && rows[0]) return end end |
#async_insert(*args) ⇒ Object
54 55 56 57 58 59 60 |
# File 'lib/em-sequel-async/sequel_extensions.rb', line 54 def async_insert(*args) self.db.async.query(insert_sql(*args)) do |result, time, client, err| yield(err ? nil : client.last_id) if (block_given?) end return end |
#async_insert_ignore(*args, &block) ⇒ Object
70 71 72 |
# File 'lib/em-sequel-async/sequel_extensions.rb', line 70 def async_insert_ignore(*args, &block) self.async_query_return_affected_rows(insert_ignore.insert_sql(*args), &block) end |
#async_multi_insert(*args, &block) ⇒ Object
82 83 84 |
# File 'lib/em-sequel-async/sequel_extensions.rb', line 82 def async_multi_insert(*args, &block) self.async_query_return_affected_rows(multi_insert_sql(*args).first, &block) end |
#async_multi_insert_ignore(*args, &block) ⇒ Object
86 87 88 |
# File 'lib/em-sequel-async/sequel_extensions.rb', line 86 def async_multi_insert_ignore(*args, &block) self.async_query_return_affected_rows(insert_ignore.multi_insert_sql(*args).first, &block) end |
#async_query_return_affected_rows(query) ⇒ Object
62 63 64 65 66 67 68 |
# File 'lib/em-sequel-async/sequel_extensions.rb', line 62 def async_query_return_affected_rows(query) self.db.async.query(query) do |result, time, client, err| yield(err ? nil : client.affected_rows) if (block_given?) end return end |
#async_update(*args, &block) ⇒ Object
74 75 76 |
# File 'lib/em-sequel-async/sequel_extensions.rb', line 74 def async_update(*args, &block) self.async_query_return_affected_rows(update_sql(*args), &block) end |