Class: LintFu::ActiveRecord::ModelModelBuilder
- Inherits:
-
ModelElementBuilder
- Object
- SexpProcessor
- ModelElementBuilder
- LintFu::ActiveRecord::ModelModelBuilder
- Defined in:
- lib/lint_fu/active_record/model_model_builder.rb
Constant Summary collapse
- SIGNATURE_SEXP =
s(:colon2, s(:const, :ActiveRecord), :Base)
- SINGULAR_ASSOCS =
Set.new([:belongs_to, :has_one])
- PLURAL_ASSOCS =
Set.new([:has_many, :has_and_belongs_to_many])
- ASSOCS =
SINGULAR_ASSOCS + PLURAL_ASSOCS
Instance Attribute Summary
Attributes inherited from ModelElementBuilder
Instance Method Summary collapse
-
#process_call(sexp) ⇒ Object
s(:call, nil, :belongs_to, s(:arglist, s(:lit, :relation_name))).
-
#process_class(sexp) ⇒ Object
- sexp
-
[:class, <classname>, <superclass|nil>, <CLASS DEFS>].
Methods inherited from ModelElementBuilder
Constructor Details
This class inherits a constructor from LintFu::ModelElementBuilder
Instance Method Details
#process_call(sexp) ⇒ Object
s(:call, nil, :belongs_to, s(:arglist, s(:lit, :relation_name)))
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/lint_fu/active_record/model_model_builder.rb', line 30 def process_call(sexp) return sexp unless @current_model_element callee, method, arglist = sexp[1], sexp[2], sexp[3] arglist = nil unless arglist[0] == :arglist discover_associations(callee, method, arglist) discover_named_scopes(callee, method, arglist) discover_paranoia(callee, method, arglist) return sexp end |
#process_class(sexp) ⇒ Object
- sexp
- :class, <classname>, <superclass|nil>, <CLASS DEFS>
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/lint_fu/active_record/model_model_builder.rb', line 11 def process_class(sexp) return super(sexp) unless sexp[2] && sexp[2] == SIGNATURE_SEXP unless @current_model_element @current_model_element = ModelModel.new(sexp, self.namespace) did_element = true end ret = super(sexp) if did_element self.model_elements.push @current_model_element @current_model_element = nil end return ret end |