Skip to content
Browse files

Merge pull request #2295 from dgeb/mo-better-plugins

Improve dependency management and gemspec file for plugins
  • Loading branch information...
2 parents 971a74b + a74e473 commit 5ab9132c1909b589f6d62b9f9f1086649ce8b7ce @spastorino spastorino committed
View
1 railties/lib/rails/generators/rails/plugin_new/plugin_new_generator.rb
@@ -46,6 +46,7 @@ def gitignore
def lib
template "lib/%name%.rb"
template "lib/tasks/%name%_tasks.rake"
+ template "lib/%name%/version.rb"
if full?
template "lib/%name%/engine.rb"
end
View
31 railties/lib/rails/generators/rails/plugin_new/templates/%name%.gemspec
@@ -1,12 +1,31 @@
-# Provide a simple gemspec so you can easily use your
-# project in your rails apps through git.
+$:.push File.expand_path("../lib", __FILE__)
+
+# Maintain your gem's version:
+require "<%= name %>/version"
+
+# Describe your gem and declare its dependencies:
Gem::Specification.new do |s|
- s.name = "<%= name %>"
- s.summary = "Insert <%= camelized %> summary."
- s.description = "Insert <%= camelized %> description."
+ s.name = "<%= name %>"
+ s.version = <%= camelized %>::VERSION
+ s.authors = ["TODO: Your name"]
+ s.email = ["TODO: Your email"]
+ s.homepage = "TODO"
+ s.summary = "TODO: Summary of <%= camelized %>."
+ s.description = "TODO: Description of <%= camelized %>."
+
s.files = Dir["{app,config,db,lib}/**/*"] + ["MIT-LICENSE", "Rakefile", "README.rdoc"]
<% unless options.skip_test_unit? -%>
s.test_files = Dir["test/**/*"]
<% end -%>
- s.version = "0.0.1"
+
+ # If your gem is dependent on a specific version (or higher) of Rails:
+ <%= '# ' if options.dev? || options.edge? -%>s.add_dependency "rails", ">= <%= Rails::VERSION::STRING %>"
+
+<% unless options[:skip_javascript] || !full? -%>
+ # If your gem contains any <%= "#{options[:javascript]}-specific" %> javascript:
+ # s.add_dependency "<%= "#{options[:javascript]}-rails" %>"
+
+<% end -%>
+ # Declare development-specific dependencies:
+ s.add_development_dependency "<%= gem_for_database %>"
end
View
20 railties/lib/rails/generators/rails/plugin_new/templates/Gemfile
@@ -1,14 +1,20 @@
source "http://rubygems.org"
-<%= rails_gemfile_entry -%>
+# Declare your gem's dependencies in <%= name %>.gemspec.
+# Bundler will treat runtime dependencies like base dependencies, and
+# development dependencies will be added by default to the :development group.
+gemspec
-<% if full? -%>
-<%= database_gemfile_entry -%>
-<% end -%>
+# Declare any dependencies that are still in development here instead of in
+# your gemspec. These might include edge Rails or gems from your path or
+# Git. Remember to move these dependencies to your gemspec before releasing
+# your gem to rubygems.org.
-<% if mountable? -%>
-<%= javascript_gemfile_entry -%>
-<% end -%>
+<% if options.dev? || options.edge? -%>
+# Your gem is dependent on dev or edge Rails. Once you can lock this
+# dependency down to a specific version, move it to your gemspec.
+<%= rails_gemfile_entry -%>
+<% end -%>
# To use debugger
# <%= ruby_debugger_gemfile_entry %>
View
3 railties/lib/rails/generators/rails/plugin_new/templates/lib/%name%/version.rb
@@ -0,0 +1,3 @@
+module <%= camelized %>
+ VERSION = "0.0.1"
+end

0 comments on commit 5ab9132

Please sign in to comment.
Something went wrong with that request. Please try again.