Class: Leftovers::ConfigLoader

Inherits:
Object
  • Object
show all
Includes:
Autoloader
Defined in:
lib/leftovers/config_loader.rb,
lib/leftovers/config_loader/node.rb,
lib/leftovers/config_loader/schema.rb,
lib/leftovers/config_loader/attribute.rb,
lib/leftovers/config_loader/suggester.rb,
lib/leftovers/config_loader/bool_schema.rb,
lib/leftovers/config_loader/true_schema.rb,
lib/leftovers/config_loader/array_schema.rb,
lib/leftovers/config_loader/object_schema.rb,
lib/leftovers/config_loader/regexp_schema.rb,
lib/leftovers/config_loader/string_schema.rb,
lib/leftovers/config_loader/dynamic_schema.rb,
lib/leftovers/config_loader/privacy_schema.rb,
lib/leftovers/config_loader/require_schema.rb,
lib/leftovers/config_loader/document_schema.rb,
lib/leftovers/config_loader/has_value_schema.rb,
lib/leftovers/config_loader/transform_schema.rb,
lib/leftovers/config_loader/precompile_schema.rb,
lib/leftovers/config_loader/value_type_schema.rb,
lib/leftovers/config_loader/precompiler_schema.rb,
lib/leftovers/config_loader/string_enum_schema.rb,
lib/leftovers/config_loader/has_argument_schema.rb,
lib/leftovers/config_loader/has_receiver_schema.rb,
lib/leftovers/config_loader/rule_pattern_schema.rb,
lib/leftovers/config_loader/scalar_value_schema.rb,
lib/leftovers/config_loader/value_matcher_schema.rb,
lib/leftovers/config_loader/keep_test_only_schema.rb,
lib/leftovers/config_loader/string_pattern_schema.rb,
lib/leftovers/config_loader/value_or_array_schema.rb,
lib/leftovers/config_loader/scalar_argument_schema.rb,
lib/leftovers/config_loader/value_or_object_schema.rb,
lib/leftovers/config_loader/value_processor_schema.rb,
lib/leftovers/config_loader/keyword_argument_schema.rb,
lib/leftovers/config_loader/argument_position_schema.rb,
lib/leftovers/config_loader/privacy_processor_schema.rb,
lib/leftovers/config_loader/inherit_schema_attributes.rb,
lib/leftovers/config_loader/built_in_precompiler_schema.rb,
lib/leftovers/config_loader/argumentless_transform_schema.rb,
lib/leftovers/config_loader/string_value_processor_schema.rb,
lib/leftovers/config_loader/value_matcher_condition_schema.rb

Defined Under Namespace

Classes: ArgumentPositionSchema, ArgumentlessTransformSchema, ArraySchema, Attribute, BoolSchema, BuiltInPrecompilerSchema, DocumentSchema, DynamicSchema, HasArgumentSchema, HasReceiverSchema, HasValueSchema, InheritSchemaAttributes, KeepTestOnlySchema, KeywordArgumentSchema, Node, ObjectSchema, PrecompileSchema, PrecompilerSchema, PrivacyProcessorSchema, PrivacySchema, RegexpSchema, RequireSchema, RulePatternSchema, ScalarArgumentSchema, ScalarValueSchema, Schema, StringEnumSchema, StringPatternSchema, StringSchema, StringValueProcessorSchema, Suggester, TransformSchema, TrueSchema, ValueMatcherConditionSchema, ValueMatcherSchema, ValueOrArraySchema, ValueOrObjectSchema, ValueProcessorSchema, ValueTypeSchema

Constant Summary

Constants included from Autoloader

Autoloader::ALL_CAPS_NAMES

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Autoloader

class_from_path, dir_path_from_class, glob_children, included, root

Constructor Details

#initialize(name, path: nil, content: nil) ⇒ ConfigLoader

Returns a new instance of ConfigLoader.



15
16
17
18
19
# File 'lib/leftovers/config_loader.rb', line 15

def initialize(name, path: nil, content: nil)
  @name = name
  @path = path
  @content = content
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



13
14
15
# File 'lib/leftovers/config_loader.rb', line 13

def name
  @name
end

Class Method Details

.load(name, path: nil, content: nil) ⇒ Object



9
10
11
# File 'lib/leftovers/config_loader.rb', line 9

def self.load(name, path: nil, content: nil)
  new(name, path: path, content: content).load
end

Instance Method Details

#loadObject



21
22
23
24
25
26
27
28
29
# File 'lib/leftovers/config_loader.rb', line 21

def load
  document = Node.new(parse, file)
  DocumentSchema.validate(document)

  all_errors = document.all_errors
  return DocumentSchema.to_ruby(document) if all_errors.empty?

  ::Leftovers.error(all_errors.join("\n"))
end