Module: Chewy::Type::Witchcraft::ClassMethods

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

Instance Method Summary collapse

Instance Method Details

#cauldronObject



37
38
39
# File 'lib/chewy/type/witchcraft.rb', line 37

def cauldron
  @cauldron ||= Cauldron.new(self)
end

#check_requirements!Object



23
24
25
26
27
28
29
30
31
# File 'lib/chewy/type/witchcraft.rb', line 23

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)
  messages << "Parser gem is required for the Witchcraft™, please add `gem 'parser'` to your Gemfile" unless '::Parser'.safe_constantize
  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



18
19
20
21
# File 'lib/chewy/type/witchcraft.rb', line 18

def witchcraft!
  self._witchcraft = true
  check_requirements!
end

#witchcraft?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/chewy/type/witchcraft.rb', line 33

def witchcraft?
  !!_witchcraft
end