class Scopedog::RecordClass
@attr_reader yard_obj
[YARD::CodeObjects::ClassObject] @attr_reader ar_class
[Class<ActiveRecord::Base>]
Attributes
ar_class[R]
yard_obj[R]
Public Class Methods
all(docs: YARD::Registry.all, root_const: Object)
click to toggle source
@param docs [Array<YARD::CodeObjects::Base>] @return [Array<RecordClass>]
# File lib/scopedog/record_class.rb, line 11 def self.all(docs: YARD::Registry.all, root_const: Object) docs .select { |d| d.type == :class && d.has_tag?(:record) } .each { |d| require_relative d.file if d.file != '(stdin)' } .map { |d| [d, root_const.const_get(d.path)] } .select { |(_, c)| c.ancestors.include?(ActiveRecord::Base) && !c.abstract_class? } .map { |d, c| RecordClass.new(d, c, root_const: root_const) } end
new(yard_obj, ar_class, root_const: Object)
click to toggle source
Public Instance Methods
default_sql()
click to toggle source
@return [String]
# File lib/scopedog/record_class.rb, line 51 def default_sql ar_class.all.to_sql end
docstring()
click to toggle source
@return [String]
# File lib/scopedog/record_class.rb, line 34 def docstring yard_obj.docstring end
name()
click to toggle source
@return [String]
# File lib/scopedog/record_class.rb, line 29 def name ar_class.name.gsub(/^#{@root_const.name}::/, '') end
scopes()
click to toggle source
@return [Array<YARD::CodeObjects::MethodObject>]
# File lib/scopedog/record_class.rb, line 44 def scopes @scopes ||= yard_obj.meths .select { |m| m.has_tag?(:scoping) } .map { |m| Scope.new(self, m) } end
table_name()
click to toggle source
@return [String]
# File lib/scopedog/record_class.rb, line 39 def table_name ar_class.table_name end
unscoped_sql()
click to toggle source
@return [String]
# File lib/scopedog/record_class.rb, line 56 def unscoped_sql ar_class.all.unscoped.to_sql end