Class: JunglePath::Gen::SchemaTree::MatchColumns

Inherits:
Object
  • Object
show all
Defined in:
lib/jungle_path/gen/schema_tree/match_columns.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(columns) ⇒ MatchColumns

Returns a new instance of MatchColumns.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/jungle_path/gen/schema_tree/match_columns.rb', line 6

def initialize columns
  @is_nil = false
  @hash = {}
  @regexes = []
  if columns
    if columns.class == Symbol
      @hash[columns] = true
    elsif columns.class == String
      @hash[columns.to_sym] = true
    elsif columns.class == Regexp
      @regexes << columns
    elsif columns.class == Array and columns.length > 0
      columns.each do |col|
        if col.class == Symbol
          @hash[col] = true
        elsif columns.class == String
          @hash[col.to_sym] = true
        elsif col.class == Regexp
          @regexes << col
        else
          throw "Invalid type for col array item: #{col.class}, value: #{col}."
        end
      end
    elsif columns.class == Array
      @is_nil = true
    else
      throw "Invalid type for columns parameter: #{columns.class}, value: #{columns}."
    end
  else
    @is_nil = true
  end
end

Instance Attribute Details

#is_nilObject (readonly)

Returns the value of attribute is_nil.



5
6
7
# File 'lib/jungle_path/gen/schema_tree/match_columns.rb', line 5

def is_nil
  @is_nil
end

Instance Method Details

#matched?(column_name) ⇒ Boolean

Returns:

  • (Boolean)


39
40
41
42
43
44
45
46
# File 'lib/jungle_path/gen/schema_tree/match_columns.rb', line 39

def matched? column_name
  return true if @is_nil
  return true if @hash[column_name.to_sym]
  @regexes.each do |regx|
    return true if regx =~ column_name.to_s
  end
  false
end

#to_sObject



48
49
50
# File 'lib/jungle_path/gen/schema_tree/match_columns.rb', line 48

def to_s
  "is_nil: #{@is_nil}, hash: #{@hash}, regexes: #{@regexes}."
end