Class: Birt::Core::Mysql
- Inherits:
-
Object
- Object
- Birt::Core::Mysql
- Defined in:
- lib/birt/core/mysql.rb
Class Method Summary collapse
- .choose_data_source(data_source = nil) ⇒ Object
- .client(data_source = nil) ⇒ Object
- .create_client(data_source) ⇒ Object
- .query(data_source, query_text) {|results| ... } ⇒ Object
- .rails_data_source ⇒ Object
Class Method Details
.choose_data_source(data_source = nil) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/birt/core/mysql.rb', line 36 def self.choose_data_source(data_source = nil) return rails_data_source if data_source.nil? config_path = Rails.root ? File.join(Rails.root, "config", "birt.yml") : './config/birt.yml' config = nil if (File.exist?(config_path)) config = YAML.load(ERB.new(File.new(config_path).read).result) config = config[Rails.env] if defined? Rails end if config && "rptdesign" == config["datasource"] data_source else rails_data_source end end |
.client(data_source = nil) ⇒ Object
3 4 5 |
# File 'lib/birt/core/mysql.rb', line 3 def self.client(data_source = nil) create_client(choose_data_source(data_source)) end |
.create_client(data_source) ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'lib/birt/core/mysql.rb', line 13 def self.create_client(data_source) Mysql2::Client.new( host: data_source.host, port: data_source.port, username: data_source.username, password: data_source.password, database: data_source.database ) end |
.query(data_source, query_text) {|results| ... } ⇒ Object
7 8 9 10 11 12 |
# File 'lib/birt/core/mysql.rb', line 7 def self.query(data_source, query_text) client = client(data_source) results = client.query(query_text) yield(results) if block_given? results end |
.rails_data_source ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/birt/core/mysql.rb', line 22 def self.rails_data_source config_path = Rails.root ? File.join(Rails.root, "config", "database.yml") : './config/database.yml' database_yml = File.open(config_path) dbconfig = YAML::load(database_yml) dbconfig = dbconfig[Rails.env] if defined? Rails data_source = Birt::Core::DataSource.new do |item| item.set_host dbconfig['host'] item.port = dbconfig['port'] ||= 3306 item.username = dbconfig['username'] item.password = dbconfig['password'] item.database = dbconfig['database'] end data_source end |