Class: Dataflow::Adapters::Settings

Inherits:
Object
  • Object
show all
Defined in:
lib/dataflow/adapters/settings.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data_node: nil, connection_uri: nil, db_name: nil, db_host: nil, db_port: nil, db_user: nil, db_password: nil, dataset_name: nil, indexes: nil, adapter_type: nil, schema: nil) ⇒ Settings

Returns a new instance of Settings.

[View source]

10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/dataflow/adapters/settings.rb', line 10

def initialize(data_node: nil, connection_uri: nil, db_name: nil,
               db_host: nil, db_port: nil, db_user: nil, db_password: nil,
               dataset_name: nil, indexes: nil, adapter_type: nil, schema: nil)
  @connection_uri = connection_uri

  # first try to set the options based on the data node settings
  if data_node.present?
    @db_name            = data_node.db_name
    @db_host            = data_node.db_host
    @db_port            = data_node.db_port
    @db_user            = data_node.db_user
    @db_password        = data_node.db_password
    @dataset_name       = data_node.name
    @read_dataset_name  = data_node.read_dataset_name
    @write_dataset_name = data_node.write_dataset_name
    @indexes            = data_node.indexes
    @schema             = data_node.schema
  end

  # override if needed
  @db_name            ||= db_name
  @db_host            ||= db_host
  @db_port            ||= db_port
  @db_user            ||= db_user
  @db_password        ||= db_password
  @dataset_name       ||= dataset_name
  @read_dataset_name  ||= dataset_name
  @write_dataset_name ||= dataset_name
  @indexes            ||= indexes
  @adapter_type       ||= adapter_type
  @schema             ||= schema
end

Instance Attribute Details

#adapter_typeObject

Returns the value of attribute adapter_type.


5
6
7
# File 'lib/dataflow/adapters/settings.rb', line 5

def adapter_type
  @adapter_type
end

#connection_uriObject

Returns the value of attribute connection_uri.


5
6
7
# File 'lib/dataflow/adapters/settings.rb', line 5

def connection_uri
  @connection_uri
end

#dataset_nameObject

Returns the value of attribute dataset_name.


5
6
7
# File 'lib/dataflow/adapters/settings.rb', line 5

def dataset_name
  @dataset_name
end

#db_hostObject

Returns the value of attribute db_host.


5
6
7
# File 'lib/dataflow/adapters/settings.rb', line 5

def db_host
  @db_host
end

#db_nameObject

Returns the value of attribute db_name.


5
6
7
# File 'lib/dataflow/adapters/settings.rb', line 5

def db_name
  @db_name
end

#db_passwordObject

Returns the value of attribute db_password.


5
6
7
# File 'lib/dataflow/adapters/settings.rb', line 5

def db_password
  @db_password
end

#db_portObject

Returns the value of attribute db_port.


5
6
7
# File 'lib/dataflow/adapters/settings.rb', line 5

def db_port
  @db_port
end

#db_userObject

Returns the value of attribute db_user.


5
6
7
# File 'lib/dataflow/adapters/settings.rb', line 5

def db_user
  @db_user
end

#indexesObject

Returns the value of attribute indexes.


5
6
7
# File 'lib/dataflow/adapters/settings.rb', line 5

def indexes
  @indexes
end

#read_dataset_nameObject

Returns the value of attribute read_dataset_name.


5
6
7
# File 'lib/dataflow/adapters/settings.rb', line 5

def read_dataset_name
  @read_dataset_name
end

#schemaObject

Returns the value of attribute schema.


5
6
7
# File 'lib/dataflow/adapters/settings.rb', line 5

def schema
  @schema
end

#write_dataset_nameObject

Returns the value of attribute write_dataset_name.


5
6
7
# File 'lib/dataflow/adapters/settings.rb', line 5

def write_dataset_name
  @write_dataset_name
end

Instance Method Details

#connection_uri_or_defaultObject

[View source]

64
65
66
67
68
# File 'lib/dataflow/adapters/settings.rb', line 64

def connection_uri_or_default
  return @connection_uri if @connection_uri.present?

  send("#{@adapter_type}_default_connection_uri")
end

#mongodb_default_connection_uriObject

[View source]

70
71
72
73
74
75
76
77
78
79
80
# File 'lib/dataflow/adapters/settings.rb', line 70

def mongodb_default_connection_uri
  set_mongodb_defaults_if_needed!

  # if user/password are empty, the user_password will be empty as well
  user_password = @db_user
  user_password += ":#{@db_password}" if @db_password.present?
  user_password += '@' if user_password.present?

  # [username:password@]host1[:port1]
  "#{user_password}#{@db_host}:#{@db_port}"
end

#mysql_default_connection_uriObject

[View source]

82
83
84
85
# File 'lib/dataflow/adapters/settings.rb', line 82

def mysql_default_connection_uri
  set_mysql_defaults_if_needed!
  sql_default_connection_uri('mysql2')
end

#postgresql_default_connection_uriObject

[View source]

87
88
89
90
# File 'lib/dataflow/adapters/settings.rb', line 87

def postgresql_default_connection_uri
  set_postgresql_defaults_if_needed!
  sql_default_connection_uri('postgresql')
end

#set_mongodb_defaults_if_needed!Object

[View source]

43
44
45
46
47
48
# File 'lib/dataflow/adapters/settings.rb', line 43

def set_mongodb_defaults_if_needed!
  @db_host ||= ENV['MOJACO_MONGO_ADDRESS'] || '127.0.0.1'
  @db_port ||= ENV['MOJACO_MONGO_PORT'] || '27017'
  @db_user ||= ENV['MOJACO_MONGO_USER']
  @db_password ||= ENV['MOJACO_MONGO_USER']
end

#set_mysql_defaults_if_needed!Object

[View source]

57
58
59
60
61
62
# File 'lib/dataflow/adapters/settings.rb', line 57

def set_mysql_defaults_if_needed!
  @db_host ||= ENV['MOJACO_MYSQL_ADDRESS'] || '127.0.0.1'
  @db_port ||= ENV['MOJACO_MYSQL_PORT'] || '3306'
  @db_user ||= ENV['MOJACO_MYSQL_USER']
  @db_password ||= ENV['MOJACO_MYSQL_PASSWORD']
end

#set_postgresql_defaults_if_needed!Object

[View source]

50
51
52
53
54
55
# File 'lib/dataflow/adapters/settings.rb', line 50

def set_postgresql_defaults_if_needed!
  @db_host ||= ENV['MOJACO_POSTGRESQL_ADDRESS'] || '127.0.0.1'
  @db_port ||= ENV['MOJACO_POSTGRESQL_PORT'] || '5432'
  @db_user ||= ENV['MOJACO_POSTGRESQL_USER']
  @db_password ||= ENV['MOJACO_POSTGRESQL_PASSWORD']
end

#sql_default_connection_uri(scheme) ⇒ Object

[View source]

92
93
94
95
96
97
# File 'lib/dataflow/adapters/settings.rb', line 92

def sql_default_connection_uri(scheme)
  user_password = @db_user
  user_password += ":#{@db_password}" if @db_password.present?

  "#{scheme}://#{user_password}@#{@db_host}:#{@db_port}"
end