class Daru::IO::Base
Base
IO
Class that contains generic helper methods, to be used by other {Importers::Base} and {Exporters::Base} via inheritence
Public Instance Methods
optional_gem(dependency, version=nil, requires: nil, callback: self.class.name)
click to toggle source
Specifies and requires a gem, if the gem is present in the application environment. Else, raises `LoadError` with meaningful message of which dependency to install for which Daru-IO module.
@param dependency [String] A dependency to specify with `gem` command @param version [String] A version range to specify with `gem` command @param requires [String] The gem name to be required, in case it's
different from the dependency name. For example, activerecord dependency has to be required as `require 'active_record'`
@param callback [Class] The Daru-IO module which is being used currently.
Useful for throwing meaningful `LoadError` message.
@example Requires with dependency
optional_gem 'avro' #=> true
@example Requires with version and requires
optional_gem 'activerecord', '~> 4.0', requires: 'active_record' #=> true
@example Raises error with meaningful message
df = Daru::DataFrame.from_json('path/to/file.json') #=> LoadError: Please install the jsonpath gem, or add it to the # Gemfile to use the Daru::IO::Importers::JSON module.
# File lib/daru/io/base.rb, line 33 def optional_gem(dependency, version=nil, requires: nil, callback: self.class.name) gem dependency, version require requires || dependency rescue LoadError version = version.nil? ? '' : " #{version} version" raise LoadError, "Please install the #{dependency} gem#{version}, "\ "or add it to the Gemfile to use the #{callback} module." end