Class: Mode::Connector::DataSources::Base
- Inherits:
-
Object
- Object
- Mode::Connector::DataSources::Base
- Defined in:
- lib/mode/connector/data_sources/base.rb
Instance Attribute Summary collapse
-
#connection ⇒ Object
readonly
Returns the value of attribute connection.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#props ⇒ Object
readonly
Returns the value of attribute props.
Class Method Summary collapse
Instance Method Summary collapse
- #adapter ⇒ Object
- #database(options = {}) ⇒ Object
- #database_name ⇒ Object
- #has_information_schema? ⇒ Boolean
- #hive? ⇒ Boolean
- #host ⇒ Object
-
#initialize(name, props = {}) ⇒ Base
constructor
A new instance of Base.
- #jdbc? ⇒ Boolean
- #mysql? ⇒ Boolean
- #oracle? ⇒ Boolean
- #password ⇒ Object
- #port ⇒ Object
- #postgres? ⇒ Boolean
- #redshift? ⇒ Boolean
- #select(query, &block) ⇒ Object
- #sqlserver? ⇒ Boolean
- #ssl ⇒ Object (also: #ssl?)
- #username ⇒ Object
- #vertica? ⇒ Boolean
Constructor Details
#initialize(name, props = {}) ⇒ Base
Returns a new instance of Base.
18 19 20 21 |
# File 'lib/mode/connector/data_sources/base.rb', line 18 def initialize(name, props = {}) @name = name @props = props end |
Instance Attribute Details
#connection ⇒ Object (readonly)
Returns the value of attribute connection.
16 17 18 |
# File 'lib/mode/connector/data_sources/base.rb', line 16 def connection @connection end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
13 14 15 |
# File 'lib/mode/connector/data_sources/base.rb', line 13 def name @name end |
#props ⇒ Object (readonly)
Returns the value of attribute props.
14 15 16 |
# File 'lib/mode/connector/data_sources/base.rb', line 14 def props @props end |
Class Method Details
.build(name, props) ⇒ Object
105 106 107 108 |
# File 'lib/mode/connector/data_sources/base.rb', line 105 def build(name, props) # inspect properties to build the correct klass Mode::Connector::DataSources::Base.new(name, props) end |
Instance Method Details
#adapter ⇒ Object
23 24 25 |
# File 'lib/mode/connector/data_sources/base.rb', line 23 def adapter props['adapter'] end |
#database(options = {}) ⇒ Object
57 58 59 60 |
# File 'lib/mode/connector/data_sources/base.rb', line 57 def database( = {}) name = [:database_name] || database_name Mode::Connector::Databases::RDBMS.new(self, name) end |
#database_name ⇒ Object
43 44 45 |
# File 'lib/mode/connector/data_sources/base.rb', line 43 def database_name props['database'] end |
#has_information_schema? ⇒ Boolean
100 101 102 |
# File 'lib/mode/connector/data_sources/base.rb', line 100 def has_information_schema? !hive? end |
#hive? ⇒ Boolean
96 97 98 |
# File 'lib/mode/connector/data_sources/base.rb', line 96 def hive? ['hive', 'jdbc:hive2', 'jdbc:hive'].include?(adapter) end |
#host ⇒ Object
35 36 37 |
# File 'lib/mode/connector/data_sources/base.rb', line 35 def host props['host'] end |
#jdbc? ⇒ Boolean
68 69 70 |
# File 'lib/mode/connector/data_sources/base.rb', line 68 def jdbc? adapter.start_with?('jdbc') end |
#mysql? ⇒ Boolean
84 85 86 |
# File 'lib/mode/connector/data_sources/base.rb', line 84 def mysql? ['mysql', 'mysql2', 'jdbc:mysql'].include?(adapter) end |
#oracle? ⇒ Boolean
88 89 90 |
# File 'lib/mode/connector/data_sources/base.rb', line 88 def oracle? ['oracle', 'jdbc:oracle:thin', 'jdbc:oracle:oci8'].include?(adapter) end |
#password ⇒ Object
31 32 33 |
# File 'lib/mode/connector/data_sources/base.rb', line 31 def password props['password'] end |
#port ⇒ Object
39 40 41 |
# File 'lib/mode/connector/data_sources/base.rb', line 39 def port props['port'] end |
#postgres? ⇒ Boolean
80 81 82 |
# File 'lib/mode/connector/data_sources/base.rb', line 80 def postgres? ['postgres', 'jdbc:postgresql'].include?(adapter) end |
#redshift? ⇒ Boolean
76 77 78 |
# File 'lib/mode/connector/data_sources/base.rb', line 76 def redshift? ['redshift', 'jdbc:redshift'].include?(adapter) end |
#select(query, &block) ⇒ Object
52 53 54 55 |
# File 'lib/mode/connector/data_sources/base.rb', line 52 def select(query, &block) log_connection_query(query) connection.dataset.fetch_rows(query, &block) end |
#sqlserver? ⇒ Boolean
92 93 94 |
# File 'lib/mode/connector/data_sources/base.rb', line 92 def sqlserver? ['tiny_tds', 'jdbc:sqlserver', 'jdbc:jtds:sqlserver'].include?(adapter) end |
#ssl ⇒ Object Also known as: ssl?
47 48 49 |
# File 'lib/mode/connector/data_sources/base.rb', line 47 def ssl props['ssl'] end |
#username ⇒ Object
27 28 29 |
# File 'lib/mode/connector/data_sources/base.rb', line 27 def username props['username'] end |
#vertica? ⇒ Boolean
72 73 74 |
# File 'lib/mode/connector/data_sources/base.rb', line 72 def vertica? ['vertica', 'jdbc:vertica'].include?(adapter) end |