Class: ActiveRecord::ConnectionAdapters::SQLServer::Utils::Name

Inherits:
Object
  • Object
show all
Defined in:
lib/active_record/connection_adapters/sqlserver/utils.rb

Overview

Value object to return identifiers from SQL Server names bit.ly/1CZ3EiL Inspiried from Rails PostgreSQL::Name adapter object in their own Utils.

Constant Summary collapse

SEPARATOR =
"."
UNQUOTED_SCANNER =
/\]?\./
QUOTED_SCANNER =
/\A\[.*?\]\./
QUOTED_CHECKER =
/\A\[/

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ Name

Returns a new instance of Name.



23
24
25
26
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 23

def initialize(name)
  @raw_name = name.to_s
  parse_raw_name
end

Instance Attribute Details

#databaseObject (readonly)

Returns the value of attribute database.



20
21
22
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 20

def database
  @database
end

#objectObject (readonly)

Returns the value of attribute object.



20
21
22
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 20

def object
  @object
end

#raw_nameObject (readonly)

Returns the value of attribute raw_name.



21
22
23
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 21

def raw_name
  @raw_name
end

#schemaObject (readonly)

Returns the value of attribute schema.



20
21
22
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 20

def schema
  @schema
end

#serverObject (readonly)

Returns the value of attribute server.



20
21
22
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 20

def server
  @server
end

Instance Method Details

#==(o) ⇒ Object Also known as: eql?



64
65
66
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 64

def ==(o)
  o.class == self.class && o.parts == parts
end

#database_quotedObject



36
37
38
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 36

def database_quoted
  database ? quote(database) : database
end

#fully_qualified?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 48

def fully_qualified?
  parts.compact.size == 4
end

#fully_qualified_database_quotedObject



44
45
46
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 44

def fully_qualified_database_quoted
  [server_quoted, database_quoted].compact.join(SEPARATOR)
end

#hashObject



69
70
71
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 69

def hash
  parts.hash
end

#object_quotedObject



28
29
30
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 28

def object_quoted
  quote object
end

#quotedObject



56
57
58
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 56

def quoted
  parts.map{ |p| quote(p) if p }.join SEPARATOR
end

#quoted_rawObject



60
61
62
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 60

def quoted_raw
  quote @raw_name
end

#schema_quotedObject



32
33
34
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 32

def schema_quoted
  schema ? quote(schema) : schema
end

#server_quotedObject



40
41
42
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 40

def server_quoted
  server ? quote(server) : server
end

#to_sObject



52
53
54
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 52

def to_s
  quoted
end