Class: SmqlToAR::QueryBuilder::Aliases

Inherits:
Hash
  • Object
show all
Defined in:
lib/smql_to_ar/query_builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(prefix, *a, &e) ⇒ Aliases

Returns a new instance of Aliases.



37
38
39
40
# File 'lib/smql_to_ar/query_builder.rb', line 37

def initialize prefix, *a, &e
	@counter, @prefix = 0, prefix || 'smql'
	super *a, &e
end

Instance Attribute Details

#counterObject

Returns the value of attribute counter.



35
36
37
# File 'lib/smql_to_ar/query_builder.rb', line 35

def counter
  @counter
end

#prefixObject

Returns the value of attribute prefix.



35
36
37
# File 'lib/smql_to_ar/query_builder.rb', line 35

def prefix
  @prefix
end

Instance Method Details

#[](k) ⇒ Object



55
56
57
58
59
60
# File 'lib/smql_to_ar/query_builder.rb', line 55

def [] k
	n = name k
	v = super n
	v = self[k] = format( "#{prefix},#{n}")  unless v
	v
end

#[]=(k, v) ⇒ Object



62
63
64
# File 'lib/smql_to_ar/query_builder.rb', line 62

def []= k, v
	super name( k), v
end

#format(name) ⇒ Object



42
43
44
45
46
47
48
49
# File 'lib/smql_to_ar/query_builder.rb', line 42

def format name
	pre, suf = name.split( ',', 2)
	return name  unless suf
	pre += ",#{@counter += 1},"
	l = 60-pre.length
	n = suf[(suf.length<=l ? 0 : -l)..-1]
	n == suf ? pre+n : "#{pre},,,#{n}"
end

#name(n) ⇒ Object



51
52
53
# File 'lib/smql_to_ar/query_builder.rb', line 51

def name n
	n.collect( &:to_alias).join ','
end