Class: ActiveMocker::ActiveRecord::Schema

Inherits:
Object
  • Object
show all
Defined in:
lib/active_mocker/active_record/schema.rb

Class Method Summary collapse

Class Method Details

.add_to_cache(table) ⇒ Object



20
21
22
23
# File 'lib/active_mocker/active_record/schema.rb', line 20

def self.add_to_cache(table)
  @tables_cache ||= []
  @tables_cache << table unless table.nil?
end

.clear_cacheObject



32
33
34
# File 'lib/active_mocker/active_record/schema.rb', line 32

def self.clear_cache
  @tables_cache = []
end

.define(options, &block) ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'lib/active_mocker/active_record/schema.rb', line 6

def self.define(options, &block)
  version = options[:version]
  search_result = search_cache(@table_search)
  search_result unless search_result.nil?
  schema = parse
  schema.instance_eval(&block)
  add_to_cache schema.tables.first
  schema.tables.first
end

.parseObject



16
17
18
# File 'lib/active_mocker/active_record/schema.rb', line 16

def self.parse
  SchemaParser.new(@table_search)
end

.search(table_name) ⇒ Object



36
37
38
39
# File 'lib/active_mocker/active_record/schema.rb', line 36

def self.search(table_name)
  @table_search = table_name
  search_cache(table_name)
end

.search_cache(table_name) ⇒ Object



25
26
27
28
29
30
# File 'lib/active_mocker/active_record/schema.rb', line 25

def self.search_cache(table_name)
  @tables_cache ||= []
  @tables_cache.find do |h|
    h.name == table_name
  end
end