Class: EacRubyUtils::RequireSub::Base
- Includes:
- Listable
- Defined in:
- lib/eac_ruby_utils/require_sub/base.rb
Constant Summary collapse
- INCLUDE_MODULES_MAP =
{ nil => nil, false => nil, true => :include, extend: :extend, include: :include, prepend: :prepend }.freeze
Instance Attribute Summary collapse
-
#file ⇒ Object
readonly
Returns the value of attribute file.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Instance Method Summary collapse
- #active_support_require? ⇒ Boolean
- #apply ⇒ Object
- #base ⇒ Object
- #base? ⇒ Boolean
- #include_modules ⇒ Object
- #include_or_prepend_method ⇒ Object
-
#initialize(file, options = {}) ⇒ Base
constructor
A new instance of Base.
- #recursive? ⇒ Boolean
- #require_mode ⇒ Symbol
- #require_sub_files ⇒ Object
- #require_sub_files_recursively ⇒ Object
- #sub_files ⇒ Object
Constructor Details
#initialize(file, options = {}) ⇒ Base
Returns a new instance of Base.
26 27 28 29 30 31 32 |
# File 'lib/eac_ruby_utils/require_sub/base.rb', line 26 def initialize(file, = {}) @file = file = self.class.lists.option.hash_keys_validate!() return unless [OPTION_REQUIRE_MODE] self.class.lists.require_mode.value_validate!([OPTION_REQUIRE_MODE]) end |
Instance Attribute Details
#file ⇒ Object (readonly)
Returns the value of attribute file.
24 25 26 |
# File 'lib/eac_ruby_utils/require_sub/base.rb', line 24 def file @file end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
24 25 26 |
# File 'lib/eac_ruby_utils/require_sub/base.rb', line 24 def end |
Instance Method Details
#active_support_require? ⇒ Boolean
35 36 37 |
# File 'lib/eac_ruby_utils/require_sub/base.rb', line 35 def active_support_require? [OPTION_REQUIRE_DEPENDENCY] ? true : false end |
#apply ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/eac_ruby_utils/require_sub/base.rb', line 39 def apply raise('Options :base and :recursive cannot be simultaneously present/true') if base? && recursive? if recursive? require_sub_files_recursively else require_sub_files include_modules end end |
#base ⇒ Object
51 52 53 |
# File 'lib/eac_ruby_utils/require_sub/base.rb', line 51 def base [OPTION_BASE] || raise('Option :base not setted') end |
#base? ⇒ Boolean
55 56 57 |
# File 'lib/eac_ruby_utils/require_sub/base.rb', line 55 def base? [OPTION_BASE] ? true : false end |
#include_modules ⇒ Object
59 60 61 |
# File 'lib/eac_ruby_utils/require_sub/base.rb', line 59 def include_modules sub_files.each(&:include_module) end |
#include_or_prepend_method ⇒ Object
63 64 65 66 67 68 69 |
# File 'lib/eac_ruby_utils/require_sub/base.rb', line 63 def include_or_prepend_method return INCLUDE_MODULES_MAP.fetch([OPTION_INCLUDE_MODULES]) if INCLUDE_MODULES_MAP.key?([OPTION_INCLUDE_MODULES]) raise ::ArgumentError, "Invalid value for 'options[OPTION_INCLUDE_MODULES]': " \ "\"#{options[OPTION_INCLUDE_MODULES]}\"" end |
#recursive? ⇒ Boolean
72 73 74 |
# File 'lib/eac_ruby_utils/require_sub/base.rb', line 72 def recursive? .fetch(OPTION_RECURSIVE, false) ? true : false end |
#require_mode ⇒ Symbol
77 78 79 80 81 82 83 |
# File 'lib/eac_ruby_utils/require_sub/base.rb', line 77 def require_mode return [OPTION_REQUIRE_MODE] if [OPTION_REQUIRE_MODE] return REQUIRE_MODE_ACTIVE_SUPPORT if active_support_require? return REQUIRE_MODE_AUTOLOAD if base? REQUIRE_MODE_KERNEL end |
#require_sub_files ⇒ Object
85 86 87 |
# File 'lib/eac_ruby_utils/require_sub/base.rb', line 85 def require_sub_files sub_files.each(&:require_file) end |
#require_sub_files_recursively ⇒ Object
89 90 91 |
# File 'lib/eac_ruby_utils/require_sub/base.rb', line 89 def require_sub_files_recursively sub_files.each(&:require_file) end |
#sub_files ⇒ Object
93 94 95 96 |
# File 'lib/eac_ruby_utils/require_sub/base.rb', line 93 def sub_files @sub_files ||= Dir["#{File.dirname(file)}/#{::File.basename(file, '.*')}/*.rb"].sort .map { |path| ::EacRubyUtils::RequireSub::SubFile.new(self, path) } end |