module SwissDB
SwissDB
Cursor
Helps move around a result set Convenience methods over the standard cursor Used by Swiss DataStore
main connection point creates and upgrades our database for us and provides low level SQL features
Swiss Model An ActiveRecord like Model for RubyMotion Android
Attributes
context[RW]
resources[RW]
store[RW]
version[RW]
Public Class Methods
create_tables_from_schema(db)
click to toggle source
# File lib/swiss_db/swiss_db.rb, line 24 def create_tables_from_schema(db) message = 'Error reading schema SQL' read_from_raw_resource('schema', message) do |reader| execute_sql_script(db, reader) end end
db_name()
click to toggle source
# File lib/swiss_db/swiss_db.rb, line 6 def db_name 'swissdb' end
get_version_from_raw()
click to toggle source
# File lib/swiss_db/swiss_db.rb, line 17 def get_version_from_raw message = 'Error reading schema version' read_from_raw_resource('version', message) do |reader| @version = reader.readLine.to_i end end
read_from_raw_resource(resource_name, error_message, &block)
click to toggle source
# File lib/swiss_db/swiss_db.rb, line 31 def read_from_raw_resource(resource_name, error_message, &block) resource_id = find_resource(resource_name, 'raw') stream = resources.openRawResource(resource_id) is_reader = Java::IO::InputStreamReader.new(stream) reader = Java::IO::BufferedReader.new(is_reader) begin block.call(reader) rescue raise error_message ensure [stream, is_reader, reader].each(&:close) end end
setup(context)
click to toggle source
# File lib/swiss_db/swiss_db.rb, line 10 def setup(context) @context = context @resources = context.getResources get_version_from_raw @store = DataStore.new(context, db_name, nil, version) end
Private Class Methods
execute_sql_script(db, reader)
click to toggle source
# File lib/swiss_db/swiss_db.rb, line 52 def execute_sql_script(db, reader) # is there a better way? sql = '' line = '' while line = reader.readLine sql << line if line[-1] == ';' db.execSQL(sql) sql = '' end end end
find_resource(name, type)
click to toggle source
# File lib/swiss_db/swiss_db.rb, line 47 def find_resource(name, type) package_name = PMApplication.current_application.package_name resources.getIdentifier(name, type, package_name) end