Class: LintFu::Rails::ModelApplicationBuilder
- Inherits:
-
ModelElementBuilder
- Object
- SexpProcessor
- ModelElementBuilder
- LintFu::Rails::ModelApplicationBuilder
- Defined in:
- lib/lint_fu/rails/model_application_builder.rb
Instance Attribute Summary
Attributes inherited from ModelElementBuilder
Instance Method Summary collapse
-
#initialize(fs_root) ⇒ ModelApplicationBuilder
constructor
A new instance of ModelApplicationBuilder.
Methods inherited from ModelElementBuilder
#process_class, #process_module
Constructor Details
#initialize(fs_root) ⇒ ModelApplicationBuilder
Returns a new instance of ModelApplicationBuilder.
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/lint_fu/rails/model_application_builder.rb', line 4 def initialize(fs_root) super() application = ModelApplication.new(fs_root) models_dir = File.join(fs_root, 'app', 'models') builder = ActiveRecord::ModelModelBuilder.new #TODO ensure the Rails app is using ActiveRecord Dir.glob(File.join(models_dir, '**', '*.rb')).each do |f| sexp = Parser.parse_ruby(f) builder.process(sexp) end builder.model_elements.each { |elem| application.add_submodel(elem) } controllers_dir = File.join(fs_root, 'app', 'controllers') builder = ActionPack::ModelControllerBuilder.new Dir.glob(File.join(controllers_dir, '**', '*.rb')).each do |f| contents = File.read(f) sexp = RubyParser.new.parse(contents) sexp.file = f builder.process(sexp) end builder.model_elements.each { |elem| application.add_submodel(elem) } self.model_elements << application end |