Class: RubyModKit::Config
- Inherits:
-
Object
- Object
- RubyModKit::Config
- Defined in:
- lib/ruby_mod_kit/config.rb
Overview
config class
Constant Summary collapse
- DEFAULT_FEATURES =
: Array
%w[instance_variable_parameter overload type type/rbs_inline].freeze
Instance Attribute Summary collapse
- #features ⇒ Object readonly
Class Method Summary collapse
Instance Method Summary collapse
- #initialize(features: DEFAULT_FEATURES) ⇒ void constructor
Constructor Details
#initialize(features: DEFAULT_FEATURES) ⇒ void
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/ruby_mod_kit/config.rb', line 20 def initialize(features: DEFAULT_FEATURES) @features = features.sort.map do |feature_name| raise ArgumentError, "invalid feature: #{feature_name}" if feature_name.include?(".") require "ruby_mod_kit/feature/#{feature_name}" const_name = feature_name .gsub(/[A-Za-z0-9]+/) { (::Regexp.last_match(0) || "").capitalize } .gsub("_", "").gsub("/", "::") Feature.const_get(const_name).new end end |
Instance Attribute Details
#features ⇒ Object (readonly)
12 13 14 |
# File 'lib/ruby_mod_kit/config.rb', line 12 def features @features end |
Class Method Details
.load(path, if_none: nil) ⇒ Config?
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/ruby_mod_kit/config.rb', line 39 def load(path, if_none: nil) return load(File.join(path, ".ruby_mod_kit.yml"), if_none: if_none) if File.directory?(path) unless File.exist?(path) case if_none when nil return nil when :raise raise LoadError, "Can't load #{path}" else raise ArgumentError, "unexpected if_none: #{if_none.inspect}" end end = YAML.safe_load(File.read(path), symbolize_names: true) new(**) if .is_a?(Hash) end |