constellation-base 0.0.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.
@@ -0,0 +1,16 @@
1
+ require 'constellation/base'
2
+ require 'rails'
3
+
4
+ module Constellation
5
+ module Base
6
+ class Engine < Rails::Engine
7
+ config.constellation = ActiveSupport::OrderedOptions.new unless config.respond_to? :constellation
8
+ config.constellation.base = ActiveSupport::OrderedOptions.new
9
+ config.constellation.base.root = __FILE__.gsub('/lib/constellation/base/engine.rb', '')
10
+
11
+ initializer "constellation.base.setup" do |app|
12
+ Object.send :include, Constellation::Base::ObjectExtensions
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,52 @@
1
+ module Constellation
2
+ module Base
3
+ module ObjectExtensions
4
+ def self.included(recipient)
5
+ recipient.extend ObjectClassMethods
6
+ # recipient.class_eval { include ObjectInstanceMethods }
7
+ end
8
+
9
+ module ObjectClassMethods
10
+ # This method is to be used inside a class in your RAILS_ROOT/app with which you
11
+ # would like to extend the Constellation-provided functionality rather than
12
+ # completely replace it.
13
+ #
14
+ # Usage:
15
+ # include_constellation
16
+ # include_constellation :only => [:cms, :commerce]
17
+ # include_constellation :except => :cms
18
+ #
19
+ # When used without any arguments, this method requires all of the loaded Constellation modules'
20
+ # classes that match the current class name. Use :only or :except to restrict which modules'
21
+ # classes you wish to require.
22
+ def include_constellation(options={})
23
+ modules = [:authentication, :authorization, :admin, :workflow, :cms, :commerce]
24
+
25
+ if options[:only]
26
+ modules = options[:only].is_a?(Array) ? options[:only] : [options[:only]]
27
+ elsif options[:except]
28
+ options[:except] = [options[:except]] unless options[:except].is_a? Array
29
+ modules.reject!{ |x| options[:except].include?(x) }
30
+ end
31
+
32
+ filename = self.name.underscore
33
+ modules.each do |m|
34
+ if Rails.application.config.constellation.include? m
35
+ root = Rails.application.config.constellation.send(m).root
36
+ found = false
37
+ ["/lib/", "/app/controllers/", "/app/models/"].each do |path|
38
+ begin
39
+ require root + path + filename
40
+ found = true
41
+ rescue LoadError
42
+ end
43
+ end
44
+ # TODO: Refer to a FAQ or Guide entry
45
+ raise LoadError.new "Could not find any Constellation provided files to include! Have you required the gems?" unless found
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,5 @@
1
+ module Constellation
2
+ module Base
3
+ require 'constellation/base/engine' if defined?(Rails)
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,65 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: constellation-base
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 1
9
+ version: 0.0.1
10
+ platform: ruby
11
+ authors:
12
+ - Ian Terrell
13
+ - Jeff Bozek
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-05-03 00:00:00 -07:00
19
+ default_executable:
20
+ dependencies: []
21
+
22
+ description: Helper methods for Constellation software.
23
+ email: ian@constellationsoft.com;jeff@constellationsoft.com
24
+ executables: []
25
+
26
+ extensions: []
27
+
28
+ extra_rdoc_files: []
29
+
30
+ files:
31
+ - lib/constellation/base/engine.rb
32
+ - lib/constellation/base/object_extensions.rb
33
+ - lib/constellation/base.rb
34
+ has_rdoc: true
35
+ homepage: http://github.com/constellationsoft/base
36
+ licenses: []
37
+
38
+ post_install_message:
39
+ rdoc_options: []
40
+
41
+ require_paths:
42
+ - lib
43
+ required_ruby_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ segments:
48
+ - 0
49
+ version: "0"
50
+ required_rubygems_version: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ segments:
55
+ - 0
56
+ version: "0"
57
+ requirements: []
58
+
59
+ rubyforge_project:
60
+ rubygems_version: 1.3.6
61
+ signing_key:
62
+ specification_version: 3
63
+ summary: Helper methods for Constellation software.
64
+ test_files: []
65
+