Sutto-perennial 0.2.3.3 → 0.2.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -68,6 +68,19 @@ class Module
68
68
  end
69
69
  end
70
70
 
71
+ def add_extension(name, &blk)
72
+ item = name.to_s.camelize.to_sym
73
+ return unless const_defined?(item)
74
+ target = const_get(item)
75
+ if target.is_a?(Class)
76
+ target.class_eval(&blk)
77
+ elsif target.is_a?(Module)
78
+ target.module_eval(&blk)
79
+ else
80
+ raise "Unable to extend #{target.inspect}"
81
+ end
82
+ end
83
+
71
84
  def attempt_require(*files)
72
85
  files.each do |file|
73
86
  begin
@@ -77,4 +90,19 @@ class Module
77
90
  end
78
91
  end
79
92
 
93
+ end
94
+
95
+ class Class
96
+
97
+ def is(*mixins)
98
+ ns = Perennial::Manifest.namespace
99
+ return if ns.blank?
100
+ mixins.each do |mixin|
101
+ real_name = mixin.to_s.camelize
102
+ if ns.const_defined?(real_name)
103
+ include ns.const_get(real_name)
104
+ end
105
+ end
106
+ end
107
+
80
108
  end
data/lib/perennial.rb CHANGED
@@ -9,7 +9,7 @@ require 'perennial/exceptions'
9
9
 
10
10
  module Perennial
11
11
 
12
- VERSION = "0.2.3.3"
12
+ VERSION = "0.2.3.4"
13
13
 
14
14
  has_library :dispatchable, :hookable, :loader, :logger,
15
15
  :loggable, :manifest, :settings, :argument_parser,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Sutto-perennial
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3.3
4
+ version: 0.2.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darcy Laycock
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-09-07 00:00:00 -07:00
12
+ date: 2009-09-08 00:00:00 -07:00
13
13
  default_executable: perennial
14
14
  dependencies: []
15
15