Class: Mode::Connector::DataSources::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/mode/connector/data_sources/base.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

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

#connectionObject (readonly)

Returns the value of attribute connection.



16
17
18
# File 'lib/mode/connector/data_sources/base.rb', line 16

def connection
  @connection
end

#nameObject (readonly)

Returns the value of attribute name.



13
14
15
# File 'lib/mode/connector/data_sources/base.rb', line 13

def name
  @name
end

#propsObject (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

#adapterObject



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(options = {})
  name = options[:database_name] || database_name
  Mode::Connector::Databases::RDBMS.new(self, name)
end

#database_nameObject



43
44
45
# File 'lib/mode/connector/data_sources/base.rb', line 43

def database_name
  props['database']
end

#has_information_schema?Boolean

Returns:

  • (Boolean)


100
101
102
# File 'lib/mode/connector/data_sources/base.rb', line 100

def has_information_schema?
  !hive?
end

#hive?Boolean

Returns:

  • (Boolean)


96
97
98
# File 'lib/mode/connector/data_sources/base.rb', line 96

def hive?
 ['hive', 'jdbc:hive2', 'jdbc:hive'].include?(adapter)
end

#hostObject



35
36
37
# File 'lib/mode/connector/data_sources/base.rb', line 35

def host
  props['host']
end

#jdbc?Boolean

Returns:

  • (Boolean)


68
69
70
# File 'lib/mode/connector/data_sources/base.rb', line 68

def jdbc?
  adapter.start_with?('jdbc')
end

#mysql?Boolean

Returns:

  • (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

Returns:

  • (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

#passwordObject



31
32
33
# File 'lib/mode/connector/data_sources/base.rb', line 31

def password
  props['password']
end

#portObject



39
40
41
# File 'lib/mode/connector/data_sources/base.rb', line 39

def port
  props['port']
end

#postgres?Boolean

Returns:

  • (Boolean)


80
81
82
# File 'lib/mode/connector/data_sources/base.rb', line 80

def postgres?
  ['postgres', 'jdbc:postgresql'].include?(adapter)
end

#redshift?Boolean

Returns:

  • (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

Returns:

  • (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

#sslObject Also known as: ssl?



47
48
49
# File 'lib/mode/connector/data_sources/base.rb', line 47

def ssl
  props['ssl']
end

#usernameObject



27
28
29
# File 'lib/mode/connector/data_sources/base.rb', line 27

def username
  props['username']
end

#vertica?Boolean

Returns:

  • (Boolean)


72
73
74
# File 'lib/mode/connector/data_sources/base.rb', line 72

def vertica?
  ['vertica', 'jdbc:vertica'].include?(adapter)
end