Module: Microframe::ORM::QueryUtils
- Included in:
- Base
- Defined in:
- lib/microframe/orm/query_utils.rb
Instance Method Summary collapse
- #add_query(key, value) ⇒ Object
- #build_query(queryhash) ⇒ Object
- #execute(query) ⇒ Object
- #parse_result_to_objects(result) ⇒ Object
- #process_from(queryhash) ⇒ Object
- #process_generic(name, queryhash) ⇒ Object
- #process_limit(queryhash) ⇒ Object
- #process_order(queryhash) ⇒ Object
- #process_query(queryset) ⇒ Object
- #process_select(queryhash) ⇒ Object
- #process_where(queryhash) ⇒ Object
- #query_processes ⇒ Object
Instance Method Details
#add_query(key, value) ⇒ Object
4 5 6 7 |
# File 'lib/microframe/orm/query_utils.rb', line 4 def add_query(key, value) update_queryset(key, value) self end |
#build_query(queryhash) ⇒ Object
51 52 53 54 55 |
# File 'lib/microframe/orm/query_utils.rb', line 51 def build_query(queryhash) query = [] query_processes.each { |process| query << send(process, queryhash)} query.join(" ").strip end |
#execute(query) ⇒ Object
15 16 17 |
# File 'lib/microframe/orm/query_utils.rb', line 15 def execute(query) Microframe::ORM::Connection.execute(query) end |
#parse_result_to_objects(result) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/microframe/orm/query_utils.rb', line 57 def parse_result_to_objects(result) hash_objects = [] result.each do |hash| obj = self.new hash.each do |key, val| if key.is_a? String obj.instance_variable_set("@#{key}", val) end end hash_objects << obj end result.size == 1 ? hash_objects.first : hash_objects end |
#process_from(queryhash) ⇒ Object
24 25 26 27 |
# File 'lib/microframe/orm/query_utils.rb', line 24 def process_from(queryhash) queryhash["FROM"] ||= self.to_s.downcase "FROM #{queryhash["FROM"]}s" end |
#process_generic(name, queryhash) ⇒ Object
34 35 36 37 |
# File 'lib/microframe/orm/query_utils.rb', line 34 def process_generic(name, queryhash) return "" unless queryhash[name] "#{name} #{queryhash[name]}" end |
#process_limit(queryhash) ⇒ Object
43 44 45 |
# File 'lib/microframe/orm/query_utils.rb', line 43 def process_limit(queryhash) process_generic("LIMIT", queryhash) end |
#process_order(queryhash) ⇒ Object
39 40 41 |
# File 'lib/microframe/orm/query_utils.rb', line 39 def process_order(queryhash) process_generic("ORDER BY", queryhash) end |
#process_query(queryset) ⇒ Object
9 10 11 12 13 |
# File 'lib/microframe/orm/query_utils.rb', line 9 def process_query(queryset) return unless queryset query = build_query(queryset) execute(query) end |
#process_select(queryhash) ⇒ Object
19 20 21 22 |
# File 'lib/microframe/orm/query_utils.rb', line 19 def process_select(queryhash) queryhash["SELECT"] ||= ["*"] "SELECT #{queryhash["SELECT"].join(", ")}" end |
#process_where(queryhash) ⇒ Object
29 30 31 32 |
# File 'lib/microframe/orm/query_utils.rb', line 29 def process_where(queryhash) return "" unless queryhash["WHERE"] "WHERE #{queryhash["WHERE"].join(" AND ")}" end |
#query_processes ⇒ Object
47 48 49 |
# File 'lib/microframe/orm/query_utils.rb', line 47 def query_processes [:process_select, :process_from, :process_where, :process_order, :process_limit] end |