Module: WonderOracleDatabase
- Defined in:
- lib/wonder_oracle_database.rb,
lib/wonder_oracle_database/version.rb
Constant Summary collapse
- VERSION =
'1.4.0'.freeze
Class Method Summary collapse
- .environment ⇒ Object
- .invalid_variable_error ⇒ Object
- .load ⇒ Object
- .obfuscate_variable ⇒ Object
- .parse_obfuscated_variable ⇒ Object
- .parsed_env ⇒ Object
- .present? ⇒ Boolean
- .shared? ⇒ Boolean
- .test? ⇒ Boolean
- .variable_candidates ⇒ Object
Class Method Details
.environment ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/wonder_oracle_database.rb', line 31 def environment result = nil variable_candidates.each do |e| next if result result = ENV[e] end result end |
.invalid_variable_error ⇒ Object
78 79 80 81 82 83 84 |
# File 'lib/wonder_oracle_database.rb', line 78 def invalid_variable_error = "Configuração de banco de dados inválida: deve ser no " + "formato usuario/senha@[ip/]banco ou obfuscada, valor " + "da variável: `#{environment}`." false end |
.load ⇒ Object
27 28 29 |
# File 'lib/wonder_oracle_database.rb', line 27 def load parsed_env if present? end |
.obfuscate_variable ⇒ Object
69 70 71 72 73 74 75 76 |
# File 'lib/wonder_oracle_database.rb', line 69 def obfuscate_variable .split('') # cria um array de caracteres .collect { |c| (c.chr.ord + 1).chr } # converte a cadeia de caracteres para seus valores obfuscados .join # junta o array em uma string .reverse # inverte a string .unpack('H*') # converte pra array de hexadecimais .join # junta o array em uma string end |
.parse_obfuscated_variable ⇒ Object
61 62 63 64 65 66 67 |
# File 'lib/wonder_oracle_database.rb', line 61 def environment =~ /^(\w+)\/(\w+)@(.+)$/ ? environment : [environment].pack('H*') # converte de hex para decimal .reverse # inverte a string .split('') # cria um array de caracteres .collect { |c| (c.chr.ord - 1).chr } # converte a cadeia de caracteres obfuscados pra seus valores verdadeiros .join # junta o array em uma string end |
.parsed_env ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/wonder_oracle_database.rb', line 43 def parsed_env match = .match(/^(\w+)\/(\w+)@([\d+\.\:]+)\/?(.+)?$/) return invalid_variable_error unless match usuario, senha, host, banco = match.captures { username: usuario, password: senha, database: banco, host: host, adapter: 'oracle_enhanced', shared: true, encoding: 'unicode' } end |
.present? ⇒ Boolean
15 16 17 |
# File 'lib/wonder_oracle_database.rb', line 15 def present? !environment.nil? end |
.shared? ⇒ Boolean
23 24 25 |
# File 'lib/wonder_oracle_database.rb', line 23 def shared? !test? && present? && !load.nil? && load[:shared] end |
.test? ⇒ Boolean
19 20 21 |
# File 'lib/wonder_oracle_database.rb', line 19 def test? ENV['RAILS_ENV'].to_s.upcase.eql?('TEST') end |
.variable_candidates ⇒ Object
5 6 7 8 9 10 11 12 13 |
# File 'lib/wonder_oracle_database.rb', line 5 def variable_candidates %w[ PROBUS_NEXT_DATABASE_URL PROBUS_DATABASE_URL WONDER_DATABASE_URL W_DATABASE_URL W_HOST_DB_SERVER ] end |