lib/much-rails/config.rb in much-rails-0.4.2 vs lib/much-rails/config.rb in much-rails-0.4.3
- old
+ new
@@ -1,55 +1,7 @@
# frozen_string_literal: true
-require "much-rails/mixin"
+require "much-config"
-module MuchRails; end
-
-# MuchRails::Config is a mix-in to implement object DSL configuration.
-module MuchRails::Config
- include MuchRails::Mixin
-
- mixin_class_methods do
- def add_config(name = nil, method_name: nil)
- config_method_name, config_class_name, configure_method_name =
- much_rails_config_names(name, method_name)
-
- instance_eval(<<~RUBY, __FILE__, __LINE__ + 1)
- def #{config_method_name}
- @#{config_method_name} ||= self::#{config_class_name}.new
- end
-
- def #{configure_method_name}
- yield(#{config_method_name}) if block_given?
- end
- RUBY
- end
-
- def add_instance_config(name = nil, method_name: nil)
- config_method_name, config_class_name, configure_method_name =
- much_rails_config_names(name, method_name)
-
- instance_eval(<<~RUBY, __FILE__, __LINE__ + 1)
- define_method(:#{config_method_name}) do
- @#{config_method_name} ||= self.class::#{config_class_name}.new
- end
-
- define_method(:#{configure_method_name}) do |&block|
- block.call(#{config_method_name}) if block
- end
- RUBY
- end
-
- private
-
- def much_rails_config_names(name, method_name)
- name_prefix = name.nil? ? "" : "#{name.to_s.underscore}_"
- config_method_name = (method_name || "#{name_prefix}config").to_s
- config_class_name = "#{name_prefix.classify}Config"
-
- name_suffix = name.nil? ? "" : "_#{name.to_s.underscore}"
- configure_method_name = "configure#{name_suffix}"
-
- [config_method_name, config_class_name, configure_method_name]
- end
- end
+module MuchRails
+ Config = MuchConfig
end