Module: Chewy::Index::Witchcraft::ClassMethods

Defined in:
lib/chewy/index/witchcraft.rb

Instance Method Summary collapse

Instance Method Details

#cauldron(**options) ⇒ Object



46
47
48
# File 'lib/chewy/index/witchcraft.rb', line 46

def cauldron(**options)
  (@cauldron ||= {})[options] ||= Cauldron.new(self, **options)
end

#check_requirements!Object



28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/chewy/index/witchcraft.rb', line 28

def check_requirements!
  messages = []
  messages << "MethodSource gem is required for the Witchcraft, please add `gem 'method_source'` to your Gemfile" unless Proc.method_defined?(:source)
  if RUBY_VERSION >= '3.3'
    messages << "Prism gem is required for the Witchcraft, please add `gem 'prism'` to your Gemfile" unless '::Prism'.safe_constantize
  else
    messages << "Parser gem is required for the Witchcraft, please add `gem 'parser'` to your Gemfile" unless '::Parser'.safe_constantize
  end
  messages << "Unparser gem is required for the Witchcraft, please add `gem 'unparser'` to your Gemfile" unless '::Unparser'.safe_constantize
  messages = messages.join("\n")

  raise messages if messages.present?
end

#witchcraft!Object



23
24
25
26
# File 'lib/chewy/index/witchcraft.rb', line 23

def witchcraft!
  self._witchcraft = true
  check_requirements!
end

#witchcraft?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/chewy/index/witchcraft.rb', line 42

def witchcraft?
  !!_witchcraft
end