class ADSL::Extract::Rails::InvariantExtractor

Attributes

invariants[R]

Public Class Methods

new(ar_class_names) click to toggle source
# File lib/adsl/extract/rails/invariant_extractor.rb, line 17
def initialize(ar_class_names)
  @ar_class_names = ar_class_names
  @invariants = []
  @builder = nil
  @stack_level = 0
end

Public Instance Methods

extract(param) click to toggle source
# File lib/adsl/extract/rails/invariant_extractor.rb, line 35
def extract(param)
  if param.is_a? Array
    param.each do |path|
      load_in_context path
    end
  else
    ADSL::Extract::Rails::InvariantInstrumenter.new(@ar_class_names).instrument_and_execute_source self, param
  end
  @invariants
end
invariant(name = nil, builder) click to toggle source
# File lib/adsl/extract/rails/invariant_extractor.rb, line 24
def invariant(name = nil, builder)
  @invariants << Invariant.new(:description => name, :formula => builder.adsl_ast)
end
load_in_context(path) click to toggle source
# File lib/adsl/extract/rails/invariant_extractor.rb, line 28
def load_in_context(path)
  file = File.open path, 'r'
  ADSL::Extract::Rails::InvariantInstrumenter.new(@ar_class_names).instrument_and_execute_source self, file.read
ensure
  file.close
end