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.



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

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

Instance Attribute Details

#databaseObject (readonly)

Returns the value of attribute database.



18
19
20
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 18

def database
  @database
end

#objectObject (readonly)

Returns the value of attribute object.



18
19
20
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 18

def object
  @object
end

#raw_nameObject (readonly)

Returns the value of attribute raw_name.



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

def raw_name
  @raw_name
end

#schemaObject (readonly)

Returns the value of attribute schema.



18
19
20
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 18

def schema
  @schema
end

#serverObject (readonly)

Returns the value of attribute server.



18
19
20
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 18

def server
  @server
end

Instance Method Details

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



62
63
64
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 62

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

#database_quotedObject



34
35
36
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 34

def database_quoted
  database ? quote(database) : database
end

#fully_qualified?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 46

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

#fully_qualified_database_quotedObject



42
43
44
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 42

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

#hashObject



67
68
69
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 67

def hash
  parts.hash
end

#object_quotedObject



26
27
28
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 26

def object_quoted
  quote object
end

#quotedObject



54
55
56
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 54

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

#quoted_rawObject



58
59
60
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 58

def quoted_raw
  quote @raw_name
end

#schema_quotedObject



30
31
32
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 30

def schema_quoted
  schema ? quote(schema) : schema
end

#server_quotedObject



38
39
40
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 38

def server_quoted
  server ? quote(server) : server
end

#to_sObject



50
51
52
# File 'lib/active_record/connection_adapters/sqlserver/utils.rb', line 50

def to_s
  quoted
end