awesome_engine 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -57,4 +57,5 @@ Not available yet.
57
57
  ## TODO
58
58
 
59
59
  * How it works
60
+ * I cant define a concern called `ActiveRecord::BaseConcern` because it will not work
60
61
  * Make it testable (I dont want to make it dependent on rails gem, just railtie)
@@ -1,8 +1,9 @@
1
1
  require 'active_support/configurable'
2
+ require 'awesome_engine/core_ext/module'
2
3
 
3
4
  module AwesomeEngine
4
5
  include ActiveSupport::Configurable
5
-
6
6
  autoload :Extendable, 'awesome_engine/extendable'
7
7
  autoload :Extension, 'awesome_engine/extension'
8
+ autoload :Extender, 'awesome_engine/extender'
8
9
  end
@@ -0,0 +1,13 @@
1
+ require 'active_support/concern'
2
+
3
+ class Module
4
+ def extend_with(mod=nil, &block)
5
+ if mod.nil? and not block_given?
6
+ raise ArgumentError.new("Module#extend_with expects a module or block")
7
+ end
8
+
9
+ mod ||= ::Module.new(&block)
10
+ mod.send(:extend, ActiveSupport::Concern)
11
+ self.send(:include, mod)
12
+ end
13
+ end
@@ -23,7 +23,7 @@ module AwesomeEngine
23
23
  def default_paths_for(name, including=nil)
24
24
  default_paths = Array(including)
25
25
  default_paths << "lib/#{awesome_path_scope}/extensions"
26
- default_paths << "lib/#{engine_name}/extensions"
26
+ default_paths << "lib/#{ActiveSupport::Inflector.underscore(self.class.parent)}/extensions"
27
27
 
28
28
  default_paths.uniq.each do |p|
29
29
  paths_for(name) << p
@@ -0,0 +1,13 @@
1
+ module AwesomeEngine
2
+ class Extender
3
+ class << self
4
+
5
+ def concern!(base, concern)
6
+ #base.send(:unloadable) # Dá merda se marcar ActiveRecord::Base como unloadable
7
+ concern.send(:unloadable)
8
+ base.extend_with(concern)
9
+ end
10
+
11
+ end
12
+ end
13
+ end
@@ -1,3 +1,3 @@
1
1
  module AwesomeEngine
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: awesome_engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-01-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties
16
- requirement: &70095037083620 !ruby/object:Gem::Requirement
16
+ requirement: &70354932500940 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: 3.1.3
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70095037083620
24
+ version_requirements: *70354932500940
25
25
  description:
26
26
  email:
27
27
  - juniorz@gmail.com
@@ -29,7 +29,9 @@ executables: []
29
29
  extensions: []
30
30
  extra_rdoc_files: []
31
31
  files:
32
+ - lib/awesome_engine/core_ext/module.rb
32
33
  - lib/awesome_engine/extendable.rb
34
+ - lib/awesome_engine/extender.rb
33
35
  - lib/awesome_engine/extension.rb
34
36
  - lib/awesome_engine/version.rb
35
37
  - lib/awesome_engine.rb
@@ -79,7 +81,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
79
81
  version: '0'
80
82
  segments:
81
83
  - 0
82
- hash: 2781237976561646515
84
+ hash: 3022053515008527590
83
85
  required_rubygems_version: !ruby/object:Gem::Requirement
84
86
  none: false
85
87
  requirements:
@@ -88,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
90
  version: '0'
89
91
  segments:
90
92
  - 0
91
- hash: 2781237976561646515
93
+ hash: 3022053515008527590
92
94
  requirements: []
93
95
  rubyforge_project:
94
96
  rubygems_version: 1.8.10