Class: SearchCopGrammar::Attributes::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/search_cop_grammar/attributes.rb

Direct Known Subclasses

String, WithoutMatches

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(klass, table_alias, column_name, options = {}) ⇒ Base

Returns a new instance of Base.



116
117
118
119
120
121
122
# File 'lib/search_cop_grammar/attributes.rb', line 116

def initialize(klass, table_alias, column_name, options = {})
  @attribute = klass.arel_table.alias(table_alias)[column_name]
  @klass = klass
  @table_alias = table_alias
  @column_name = column_name
  @options = (options || {})
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, &block) ⇒ Object



148
149
150
# File 'lib/search_cop_grammar/attributes.rb', line 148

def method_missing(name, *args, &block)
  @attribute.send(name, *args, &block)
end

Instance Attribute Details

#attributeObject (readonly)

Returns the value of attribute attribute.



114
115
116
# File 'lib/search_cop_grammar/attributes.rb', line 114

def attribute
  @attribute
end

#column_nameObject (readonly)

Returns the value of attribute column_name.



114
115
116
# File 'lib/search_cop_grammar/attributes.rb', line 114

def column_name
  @column_name
end

#optionsObject (readonly)

Returns the value of attribute options.



114
115
116
# File 'lib/search_cop_grammar/attributes.rb', line 114

def options
  @options
end

#table_aliasObject (readonly)

Returns the value of attribute table_alias.



114
115
116
# File 'lib/search_cop_grammar/attributes.rb', line 114

def table_alias
  @table_alias
end

Instance Method Details

#compatible?(value) ⇒ Boolean

Returns:



128
129
130
131
132
133
134
# File 'lib/search_cop_grammar/attributes.rb', line 128

def compatible?(value)
  map value

  true
rescue SearchCop::IncompatibleDatatype
  false
end

#fulltext?Boolean

Returns:



136
137
138
# File 'lib/search_cop_grammar/attributes.rb', line 136

def fulltext?
  false
end

#map(value) ⇒ Object



124
125
126
# File 'lib/search_cop_grammar/attributes.rb', line 124

def map(value)
  value
end

#respond_to?(*args) ⇒ Boolean

Returns:



152
153
154
# File 'lib/search_cop_grammar/attributes.rb', line 152

def respond_to?(*args)
  super(*args) || @attribute.respond_to?(*args)
end