Module: Humanized::PredefinedPackages
- Defined in:
- lib/more/humanized/predefined_packages.rb
Instance Method Summary collapse
Instance Method Details
#define(name, &block) ⇒ Object
25 26 27 28 29 30 31 32 33 |
# File 'lib/more/humanized/predefined_packages.rb', line 25 def define(name, &block) raise ArgumentError, "define requires a block" unless block_given? @sync.synchronize(Sync::EX){ if predefined_packages.key? name raise ArgumentError, "Package already defined: '#{name}'" end predefined_packages[name] = block } end |
#predefined_packages ⇒ Object
21 22 23 |
# File 'lib/more/humanized/predefined_packages.rb', line 21 def predefined_packages @predefined_packages ||= {} end |
#use(*names) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/more/humanized/predefined_packages.rb', line 35 def use(*names) unloadeable = [] names.each do |name| if predefined_packages.key? name package(name) do self.instance_eval( &predefined_packages[name] ) end else unloadeable << name end end if unloadable.any? raise ArgumentError, "Trying to load undefined packages: '#{unloadable.join ', '}'" end return self end |