Class: Titanium::SQLiteAdapter
Instance Attribute Summary collapse
-
#db_file ⇒ Object
readonly
Returns the value of attribute db_file.
Instance Method Summary collapse
- #connect ⇒ Object
- #count_by_name(name) ⇒ Object
- #delete(resource_key) ⇒ Object
- #delete_all_by_name(name) ⇒ Object
- #disconnect ⇒ Object
- #erase_db ⇒ Object
- #find_by_name_and_conditions(name, key = nil, conditions = nil, sort_field = nil, sort_order = nil, limit = nil, offset = nil) ⇒ Object
-
#initialize ⇒ SQLiteAdapter
constructor
A new instance of SQLiteAdapter.
- #insert(name, metadata) ⇒ Object
- #startup ⇒ Object
- #update(resource_key, metadata) ⇒ Object
Constructor Details
#initialize ⇒ SQLiteAdapter
Returns a new instance of SQLiteAdapter.
32 33 34 |
# File 'lib/sqlite_adapter.rb', line 32 def initialize @db_file = "data/#{environment}.db" end |
Instance Attribute Details
#db_file ⇒ Object (readonly)
Returns the value of attribute db_file.
30 31 32 |
# File 'lib/sqlite_adapter.rb', line 30 def db_file @db_file end |
Instance Method Details
#connect ⇒ Object
40 41 42 43 |
# File 'lib/sqlite_adapter.rb', line 40 def connect @db = Database.new(@db_file) @db.results_as_hash = true end |
#count_by_name(name) ⇒ Object
101 102 103 |
# File 'lib/sqlite_adapter.rb', line 101 def count_by_name(name) return @db.get_first_value(sql_count_of_resources_by_type_name, :name => name).to_i end |
#delete(resource_key) ⇒ Object
91 92 93 94 95 96 97 98 99 |
# File 'lib/sqlite_adapter.rb', line 91 def delete(resource_key) @db.transaction do resources_remaining = @db.get_first_value(sql_count_of_resources_by_resource_key, :resource_key => resource_key) @db.execute(sql_delete_attributes_by_resource_key, :resource_key => resource_key) @db.execute(sql_delete_type_by_resource_key, :resource_key => resource_key) if resources_remaining.to_i == 1 @db.execute(sql_delete_resource_by_resource_key, :resource_key => resource_key) end return true end |
#delete_all_by_name(name) ⇒ Object
105 106 107 108 109 110 |
# File 'lib/sqlite_adapter.rb', line 105 def delete_all_by_name(name) @db.transaction do @db.execute_batch(sql_delete_resources_by_type_name, :name => name) end return true end |
#disconnect ⇒ Object
45 46 47 48 49 |
# File 'lib/sqlite_adapter.rb', line 45 def disconnect if @db @db.close unless @db.closed? end end |
#erase_db ⇒ Object
36 37 38 |
# File 'lib/sqlite_adapter.rb', line 36 def erase_db File.delete(File.(@db_file)) end |
#find_by_name_and_conditions(name, key = nil, conditions = nil, sort_field = nil, sort_order = nil, limit = nil, offset = nil) ⇒ Object
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/sqlite_adapter.rb', line 112 def find_by_name_and_conditions(name, key=nil, conditions=nil, sort_field=nil, sort_order=nil, limit=nil, offset=nil) results = {} query_id = generate_query_id @db.transaction do index = 0 @db.execute(sql_drop_sorter_table(query_id)) @db.execute(sql_create_sorter_table(query_id, name, key, conditions, sort_field, sort_order, limit, offset)) @db.execute(sql_query_sorter_table(query_id)) do |row| build_results_hash(results, index, row) index = index + 1 end @db.execute(sql_drop_sorter_table(query_id)) end return build_results_array(results) end |
#insert(name, metadata) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/sqlite_adapter.rb', line 59 def insert(name, ) resource_key = nil @db.transaction do type_id = @db.get_first_value(sql_find_type_id_from_type_name, :name => name) if type_id.nil? @db.execute(sql_insert_type, :name => name) type_id = @db.last_insert_row_id end @db.execute(sql_insert_resource, :type_id => type_id) resource_key = @db.last_insert_row_id now = Time.now.iso8601 ['created_at'] = now ['updated_at'] = now .each do |key,value| @db.execute(sql_insert_attribute, :resource_key => resource_key, :key => key, :value => value) end end return resource_key.to_s end |
#startup ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/sqlite_adapter.rb', line 51 def startup @db.transaction do @db.execute(sql_create_types_table) @db.execute(sql_create_resources_table) @db.execute(sql_create_attributes_table) end end |
#update(resource_key, metadata) ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/sqlite_adapter.rb', line 79 def update(resource_key, ) @db.transaction do @db.execute(sql_delete_attributes_by_resource_key, :resource_key => resource_key) ['created_at'] ||= Time.now.iso8601 ['updated_at'] = Time.now.iso8601 .each do |key,value| @db.execute(sql_insert_attribute, :resource_key => resource_key, :key => key, :value => value) end end return resource_key end |