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