bborn-desert 0.5.3

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.
Files changed (45) hide show
  1. data/CHANGES +50 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +316 -0
  4. data/Rakefile +77 -0
  5. data/VERSION.yml +2 -0
  6. data/generators/desert_plugin/USAGE +14 -0
  7. data/generators/desert_plugin/desert_plugin_generator.rb +73 -0
  8. data/generators/desert_plugin/templates/desert_routes.rb +4 -0
  9. data/generators/desert_plugin/templates/empty_file +0 -0
  10. data/generators/desert_plugin/templates/plugin_migration.rb +11 -0
  11. data/generators/desert_plugin/templates/spec_helper.rb +8 -0
  12. data/init.rb +0 -0
  13. data/lib/desert.rb +14 -0
  14. data/lib/desert/manager.rb +131 -0
  15. data/lib/desert/plugin.rb +74 -0
  16. data/lib/desert/plugin_migrations.rb +11 -0
  17. data/lib/desert/plugin_migrations/1.2/extensions/schema_statements.rb +34 -0
  18. data/lib/desert/plugin_migrations/1.2/migrator.rb +33 -0
  19. data/lib/desert/plugin_migrations/2.1/extensions/schema_statements.rb +39 -0
  20. data/lib/desert/plugin_migrations/2.1/migrator.rb +35 -0
  21. data/lib/desert/plugin_migrations/migrator.rb +29 -0
  22. data/lib/desert/plugin_templates.rb +13 -0
  23. data/lib/desert/plugin_templates/1.2.0/action_mailer.rb +21 -0
  24. data/lib/desert/plugin_templates/1.2.0/action_view.rb +53 -0
  25. data/lib/desert/plugin_templates/1.99.0/action_mailer.rb +25 -0
  26. data/lib/desert/plugin_templates/1.99.0/action_view.rb +38 -0
  27. data/lib/desert/plugin_templates/2.0.0/action_mailer.rb +23 -0
  28. data/lib/desert/plugin_templates/2.0.2/action_view.rb +26 -0
  29. data/lib/desert/plugin_templates/2.1.0/action_view.rb +15 -0
  30. data/lib/desert/plugin_templates/2.2.0/action_mailer.rb +23 -0
  31. data/lib/desert/plugin_templates/2.2.0/action_view.rb +10 -0
  32. data/lib/desert/plugin_templates/action_controller.rb +12 -0
  33. data/lib/desert/plugin_templates/action_view.rb +17 -0
  34. data/lib/desert/rails.rb +10 -0
  35. data/lib/desert/rails/1.2.0/initializer.rb +20 -0
  36. data/lib/desert/rails/2.0.0/plugin.rb +22 -0
  37. data/lib/desert/rails/dependencies.rb +87 -0
  38. data/lib/desert/rails/migration.rb +36 -0
  39. data/lib/desert/rails/route_set.rb +23 -0
  40. data/lib/desert/ruby.rb +2 -0
  41. data/lib/desert/ruby/object.rb +34 -0
  42. data/lib/desert/supported_rails_versions.rb +12 -0
  43. data/lib/desert/tasks.rb +4 -0
  44. data/lib/desert/version_checker.rb +34 -0
  45. metadata +105 -0
@@ -0,0 +1,36 @@
1
+ class ActiveRecord::Migration
2
+ module DesertMigration
3
+ def migrate_plugin(plugin_name, version)
4
+ plugin = find_plugin(plugin_name)
5
+ Desert::PluginMigrations::Migrator.migrate_plugin(
6
+ plugin,
7
+ version
8
+ )
9
+ end
10
+
11
+ protected
12
+ def find_plugin(plugin_name)
13
+ plugin = Desert::Manager.find_plugin(plugin_name.to_s)
14
+ return plugin if plugin
15
+ raise ArgumentError, "No plugin found named #{plugin_name}"
16
+ end
17
+
18
+ def table_exists?(table_name)
19
+ vals = select_all("DESC #{table_name}")
20
+ return true
21
+ rescue ActiveRecord::StatementInvalid
22
+ return false
23
+ end
24
+
25
+ def column_exists?(table_name, column_name)
26
+ val = select_one("select #{column_name} from #{table_name}")
27
+ return true
28
+ rescue ActiveRecord::StatementInvalid
29
+ return false
30
+ end
31
+ def table_exists?(table_name)
32
+ ActiveRecord::Base.connection.tables.include? table_name
33
+ end
34
+ end
35
+ extend DesertMigration
36
+ end
@@ -0,0 +1,23 @@
1
+ module Desert
2
+ module Rails
3
+ module RouteSet
4
+ # Loads the set of routes from within a plugin and evaluates them at this
5
+ # point within an application's main <tt>routes.rb</tt> file.
6
+ #
7
+ # Plugin routes are loaded from <tt><plugin_root>/routes.rb</tt>.
8
+ def routes_from_plugin(name)
9
+ name = name.to_s
10
+ routes_path = File.join(
11
+ Desert::Manager.plugin_path(name),
12
+ "config/desert_routes.rb"
13
+ )
14
+ RAILS_DEFAULT_LOGGER.debug "Loading routes from #{routes_path}."
15
+ eval(IO.read(routes_path), binding, routes_path) if File.file?(routes_path)
16
+ end
17
+ end
18
+ end
19
+ end
20
+
21
+ class ActionController::Routing::RouteSet::Mapper
22
+ include Desert::Rails::RouteSet
23
+ end
@@ -0,0 +1,2 @@
1
+ dir = File.dirname(__FILE__)
2
+ require "#{dir}/ruby/object"
@@ -0,0 +1,34 @@
1
+ class Object
2
+ def require_with_desert(path)
3
+ relative_include_path = (path =~ /\.rb$/) ? path : "#{path}.rb"
4
+ if $".include?(relative_include_path)
5
+ return false
6
+ else
7
+ __each_matching_file(path) do |expanded_path|
8
+ require_without_desert expanded_path
9
+ end
10
+ $" << relative_include_path
11
+ return true
12
+ end
13
+ end
14
+ alias_method_chain :require, :desert
15
+
16
+ def load_with_desert(file)
17
+ __each_matching_file(file) do |file|
18
+ load_without_desert file
19
+ end
20
+ end
21
+ alias_method_chain :load, :desert
22
+
23
+ private
24
+ def __each_matching_file(file)
25
+ files = Desert::Manager.instance.files_on_load_path(file)
26
+ desert_file_exists = files.empty? ? false : true
27
+ files.each do |component_file|
28
+ yield(component_file)
29
+ end
30
+
31
+ return true if desert_file_exists
32
+ yield(file)
33
+ end
34
+ end
@@ -0,0 +1,12 @@
1
+ module Desert
2
+ SUPPORTED_RAILS_VERSIONS = {
3
+ "1.2.5" => {'version' => '1.2.5', 'git_tag' => 'v1.2.5'},
4
+ "1.99.0" => {'version' => '1.99.0', 'git_tag' => 'v2.0.0_RC1'},
5
+ "2.0.2" => {'version' => '2.0.2', 'git_tag' => 'v2.0.2'},
6
+ "2.1.0" => {'version' => '2.1.0', 'git_tag' => 'v2.1.0'},
7
+ "2.2.0" => {'version' => '2.2.0', 'git_tag' => 'v2.2.0'},
8
+ "2.2.2" => {'version' => '2.2.2', 'git_tag' => 'v2.2.2'},
9
+ "2.3.2" => {'version' => '2.3.2', 'git_tag' => 'v2.3.2'},
10
+ # "edge" => {'version' => 'edge', 'git_tag' => 'master'},
11
+ }
12
+ end
@@ -0,0 +1,4 @@
1
+ dir = File.dirname(__FILE__)
2
+ Dir["#{dir}/tasks/*.rake"].each do |file|
3
+ load file
4
+ end
@@ -0,0 +1,34 @@
1
+ module Desert
2
+ class VersionChecker
3
+ class << self
4
+ def current_rails_version_matches?(version_requirement)
5
+ version_matches?(::Rails::VERSION::STRING, version_requirement)
6
+ end
7
+
8
+ def version_matches?(version, version_requirement)
9
+ Gem::Version::Requirement.new([version_requirement]).satisfied_by?(Gem::Version.new(version))
10
+ end
11
+
12
+ def rails_version_is_below_1990?
13
+ result = current_rails_version_matches?('<1.99.0')
14
+ result
15
+ end
16
+
17
+ def rails_version_is_below_rc2?
18
+ current_rails_version_matches?('<1.99.1')
19
+ end
20
+
21
+ def rails_version_is_1991?
22
+ current_rails_version_matches?('=1.99.1')
23
+ end
24
+
25
+ def rails_version_is_below_220?
26
+ current_rails_version_matches?('<2.2.0')
27
+ end
28
+
29
+ def rails_version_is_below_230?
30
+ current_rails_version_matches?('<2.3.0')
31
+ end
32
+ end
33
+ end
34
+ end
metadata ADDED
@@ -0,0 +1,105 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bborn-desert
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.3
5
+ platform: ruby
6
+ authors:
7
+ - Pivotal Labs
8
+ - Brian Takita
9
+ - Parker Thompson
10
+ - Adam Milligan, Joe Moore
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+
15
+ date: 2009-10-23 00:00:00 -05:00
16
+ default_executable:
17
+ dependencies: []
18
+
19
+ description: Desert is a component framework for Rails that allows your plugins to be packaged as mini Rails apps.
20
+ email: opensource@pivotallabs.com
21
+ executables: []
22
+
23
+ extensions: []
24
+
25
+ extra_rdoc_files:
26
+ - CHANGES
27
+ - README.rdoc
28
+ files:
29
+ - CHANGES
30
+ - MIT-LICENSE
31
+ - README.rdoc
32
+ - Rakefile
33
+ - VERSION.yml
34
+ - generators/desert_plugin/USAGE
35
+ - generators/desert_plugin/desert_plugin_generator.rb
36
+ - generators/desert_plugin/templates/desert_routes.rb
37
+ - generators/desert_plugin/templates/empty_file
38
+ - generators/desert_plugin/templates/plugin_migration.rb
39
+ - generators/desert_plugin/templates/spec_helper.rb
40
+ - init.rb
41
+ - lib/desert.rb
42
+ - lib/desert/manager.rb
43
+ - lib/desert/plugin.rb
44
+ - lib/desert/plugin_migrations.rb
45
+ - lib/desert/plugin_migrations/1.2/extensions/schema_statements.rb
46
+ - lib/desert/plugin_migrations/1.2/migrator.rb
47
+ - lib/desert/plugin_migrations/2.1/extensions/schema_statements.rb
48
+ - lib/desert/plugin_migrations/2.1/migrator.rb
49
+ - lib/desert/plugin_migrations/migrator.rb
50
+ - lib/desert/plugin_templates.rb
51
+ - lib/desert/plugin_templates/1.2.0/action_mailer.rb
52
+ - lib/desert/plugin_templates/1.2.0/action_view.rb
53
+ - lib/desert/plugin_templates/1.99.0/action_mailer.rb
54
+ - lib/desert/plugin_templates/1.99.0/action_view.rb
55
+ - lib/desert/plugin_templates/2.0.0/action_mailer.rb
56
+ - lib/desert/plugin_templates/2.0.2/action_view.rb
57
+ - lib/desert/plugin_templates/2.1.0/action_view.rb
58
+ - lib/desert/plugin_templates/2.2.0/action_mailer.rb
59
+ - lib/desert/plugin_templates/2.2.0/action_view.rb
60
+ - lib/desert/plugin_templates/action_controller.rb
61
+ - lib/desert/plugin_templates/action_view.rb
62
+ - lib/desert/rails.rb
63
+ - lib/desert/rails/1.2.0/initializer.rb
64
+ - lib/desert/rails/2.0.0/plugin.rb
65
+ - lib/desert/rails/dependencies.rb
66
+ - lib/desert/rails/migration.rb
67
+ - lib/desert/rails/route_set.rb
68
+ - lib/desert/ruby.rb
69
+ - lib/desert/ruby/object.rb
70
+ - lib/desert/supported_rails_versions.rb
71
+ - lib/desert/tasks.rb
72
+ - lib/desert/version_checker.rb
73
+ has_rdoc: true
74
+ homepage: http://pivotallabs.com
75
+ licenses: []
76
+
77
+ post_install_message:
78
+ rdoc_options:
79
+ - --main
80
+ - README.rdoc
81
+ - --inline-source
82
+ - --line-numbers
83
+ require_paths:
84
+ - lib
85
+ required_ruby_version: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: "0"
90
+ version:
91
+ required_rubygems_version: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: "0"
96
+ version:
97
+ requirements: []
98
+
99
+ rubyforge_project: desert
100
+ rubygems_version: 1.3.5
101
+ signing_key:
102
+ specification_version: 3
103
+ summary: Desert is a component framework for Rails that allows your plugins to be packaged as mini Rails apps.
104
+ test_files: []
105
+