Module: LocalGem::Singleton
Instance Attribute Summary collapse
-
#config ⇒ Object
Holds the mapping of local gems and their paths to load.
-
#config_file ⇒ Object
Returns the value of attribute config_file.
Instance Method Summary collapse
-
#load_local_gem(library) ⇒ Object
Adds a given library’s path (specified in config) to the beginning of $LOAD_PATH.
-
#local_gem(*args) ⇒ Object
Loads the local gem if found or defaults to a normal gem call.
-
#local_require(lib) ⇒ Object
Loads the local gem if found and then does a normal require on it.
-
#read_config ⇒ Object
Reads config from @config_file and returns a hash.
-
#setup_config(config = nil, &block) ⇒ Object
Takes either a hash or a block and initializes config().
Instance Attribute Details
#config ⇒ Object
Holds the mapping of local gems and their paths to load.
24 25 26 |
# File 'lib/local_gem.rb', line 24 def config @config end |
#config_file ⇒ Object
Returns the value of attribute config_file.
21 22 23 |
# File 'lib/local_gem.rb', line 21 def config_file @config_file end |
Instance Method Details
#load_local_gem(library) ⇒ Object
Adds a given library’s path (specified in config) to the beginning of $LOAD_PATH.
53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/local_gem.rb', line 53 def load_local_gem(library) if path = config[:gems][library] path = [path] unless path.is_a?(Array) path.map {|e| File.(e) }.each do |f| $:.unshift(f) unless $:.include?(f) end true else false end end |
#local_gem(*args) ⇒ Object
Loads the local gem if found or defaults to a normal gem call.
42 43 44 |
# File 'lib/local_gem.rb', line 42 def local_gem(*args) load_local_gem(args[0]) || gem(*args) end |
#local_require(lib) ⇒ Object
Loads the local gem if found and then does a normal require on it.
47 48 49 50 |
# File 'lib/local_gem.rb', line 47 def local_require(lib) load_local_gem(lib) require(lib) end |
#read_config ⇒ Object
Reads config from @config_file and returns a hash. ~/.local_gem.yml.
31 32 33 34 |
# File 'lib/local_gem.rb', line 31 def read_config @config_file ||= ['local_gem.yml', File.join("~", ".local_gem.yml")].detect {|e| File.exists?(File.(e)) } @config_file ? YAML::load(File.new(File.(@config_file))) : {:gems=>{}} end |
#setup_config(config = nil, &block) ⇒ Object
Takes either a hash or a block and initializes config().
37 38 39 |
# File 'lib/local_gem.rb', line 37 def setup_config(config=nil, &block) @config = config || ConfigStruct.block_to_hash(block) end |