awesome_engine 0.1.0 → 0.1.1

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.
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