Module: Conifer::ClassMethods
- Defined in:
- lib/conifer.rb
Overview
rubocop:disable Metrics/ParameterLists
Instance Method Summary collapse
Instance Method Details
#conifer(name, prefix: nil, dir: nil, format: :yml, method: ::File.basename(name.to_s, ".#{format}"), singleton: false, allowed_classes: []) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/conifer.rb', line 13 def conifer(name, prefix: nil, dir: nil, format: :yml, method: ::File.basename(name.to_s, ".#{format}"), singleton: false, allowed_classes: []) dir ||= ::File.(::File.dirname(caller_locations.first.path)) body = proc do return instance_variable_get("@conifer_#{method}") if instance_variable_defined?("@conifer_#{method}") instance_variable_set "@conifer_#{method}", Conifer::File.new(name, prefix: prefix, dir: dir, allowed_classes: allowed_classes) .tap(&:validate!) end singleton ? define_singleton_method(method, &body) : define_method(method, &body) end |