class ActiveMocker::ParentClass
Attributes
active_record_base_klass[R]
error[R]
klasses_to_be_mocked[R]
mock_append_name[R]
parsed_source[R]
Public Class Methods
new(parsed_source:, klasses_to_be_mocked:, mock_append_name:, active_record_base_klass: ::ActiveRecord::Base)
click to toggle source
# File lib/active_mocker/parent_class.rb, line 4 def initialize(parsed_source:, klasses_to_be_mocked:, mock_append_name:, active_record_base_klass: ::ActiveRecord::Base) @parsed_source = parsed_source @klasses_to_be_mocked = klasses_to_be_mocked @active_record_base_klass = active_record_base_klass @mock_append_name = mock_append_name end
Public Instance Methods
call()
click to toggle source
# File lib/active_mocker/parent_class.rb, line 13 def call if parent_class? deal_with_parent else create_error("#{class_name} is missing a parent class.") end self end
parent_mock_name()
click to toggle source
# File lib/active_mocker/parent_class.rb, line 22 def parent_mock_name if @parent_mock_name "#{@parent_mock_name}#{mock_append_name}" else "ActiveMocker::Base" end end
Private Instance Methods
class_name()
click to toggle source
# File lib/active_mocker/parent_class.rb, line 58 def class_name parsed_source.class_name end
create_error(message)
click to toggle source
# File lib/active_mocker/parent_class.rb, line 45 def create_error(message) @error = OpenStruct.new(class_name: class_name, message: message) end
deal_with_parent()
click to toggle source
# File lib/active_mocker/parent_class.rb, line 37 def deal_with_parent if parent_class <= active_record_base_klass @parent_mock_name = parent_class_name if included_mocked_class? else create_error("#{class_name} does not inherit from ActiveRecord::Base") end end
included_mocked_class?()
click to toggle source
# File lib/active_mocker/parent_class.rb, line 66 def included_mocked_class? sanitize_consts(klasses_to_be_mocked).include?(sanitize_consts(parent_class_name).first) end
parent_class()
click to toggle source
# File lib/active_mocker/parent_class.rb, line 62 def parent_class parent_class_name.constantize end
parent_class?()
click to toggle source
# File lib/active_mocker/parent_class.rb, line 50 def parent_class? parsed_source.parent_class? end
parent_class_name()
click to toggle source
# File lib/active_mocker/parent_class.rb, line 54 def parent_class_name parsed_source.parent_class_name end
sanitize_consts(consts)
click to toggle source
# File lib/active_mocker/parent_class.rb, line 70 def sanitize_consts(consts) [*consts].map do |const| const.split("::").reject(&:empty?).join("::") end end