Sha256: c828a453f8fa25400945c6b0df5f1e096d77143660ea7fb7f845071d210e0763

Contents?: true

Size: 938 Bytes

Versions: 5

Compression:

Stored size: 938 Bytes

Contents

module Legion
  module Extensions
    module Builder
      module Base
        def find_files(name, path = extension_path)
          files = []
          return files unless Dir.exist? "#{path}/#{name}"

          Dir["#{path}/#{name}/*.rb"].each do |file|
            files.push(file)
          end
          files
        end

        def require_files(files)
          files.each { |file| require file }
        end

        def const_defined_two?(item, root = Kernel)
          root.const_defined?(item.to_s)
        end

        def define_constant_two(item, root: Kernel, type: Module)
          return true if const_defined?(item, root: root)

          root.const_set(item.to_s, type.new)
        end

        def define_get(item, root: Kernel, type: Module)
          define_constant_two(item, root: root, type: type) if const_defined_two?(item, root: root)
          root.const_get(item)
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
legionio-0.4.1 lib/legion/extensions/builders/base.rb
legionio-0.4.0 lib/legion/extensions/builders/base.rb
legionio-0.3.2 lib/legion/extensions/builders/base.rb
legionio-0.3.1 lib/legion/extensions/builders/base.rb
legionio-0.3.0 lib/legion/extensions/builders/base.rb