class TFClient::Models::Local::Database
Attributes
connection[R]
path[R]
Public Class Methods
new(path:)
click to toggle source
# File lib/textflight-client/models/local.rb, line 19 def initialize(path:) @connection = Sequel.connect("sqlite://#{path}") if !@connection.table_exists?(:systems) @connection.create_table(:systems) do primary_key :id column :x, Integer column :y, Integer column :claimed_by, String column :brightness, Integer column :asteroid_ore, String column :asteroid_density, Integer column :links, String column :planets, String end end end
Public Instance Methods
create_system(id:, nav:)
click to toggle source
# File lib/textflight-client/models/local.rb, line 42 def create_system(id:, nav:) TFClient.info("creating a new system with id: #{id}") links = nav.links.items.map do |link| [link[:index], link[:direction], link[:drag], link[:faction]] end planets = nav.planets.items.map do |planet| [planet[:index], planet[:type], planet[:name], planet[:faction]] end table = @connection[:systems] table.insert( { id: id, x: nav.coordinates.x, y: nav.coordinates.y, claimed_by: nav.claimed_by ? nav.claimed_by.faction : "", brightness: nav.brightness.value, asteroid_ore: nav.asteroids.ore, asteroid_density: nav.asteroids.density, links: JSON.generate(links), planets: JSON.generate(planets) } ) end
system_for_id(id:)
click to toggle source
# File lib/textflight-client/models/local.rb, line 37 def system_for_id(id:) table = @connection[:systems] table.where(id: id) end