Permalink
Browse files

Reformat Gemfile to be more consistent with DM projects.

  • Loading branch information...
1 parent f3f9a01 commit 200edc4f7d7c191080ad025388c5c348573c77ab @gix gix committed Mar 8, 2011
Showing with 31 additions and 105 deletions.
  1. +31 −105 Gemfile
View
@@ -1,90 +1,18 @@
-# If you're working on more than one datamapper gem at a time, then it's
-# recommended to create a local Gemfile and use this instead of the git
-# sources. This will make sure that you are developing against your
-# other local datamapper sources that you currently work on. Gemfile.local
-# will behave identically to the standard Gemfile apart from the fact that
-# it fetches the datamapper gems from local paths. This means that you can use
-# the same environment variables, like ADAPTER(S) or PLUGIN(S) when running
-# bundle commands. Gemfile.local is added to .gitignore, so you don't need to
-# worry about accidentally checking local development paths into git.
-# In order to create a local Gemfile, all you need to do is run:
-#
-# bundle exec rake local_gemfile
-#
-# This will give you a Gemfile.local file that points to your local clones of
-# the various datamapper gems. It's assumed that all datamapper repo clones
-# reside in the same directory. You can use the Gemfile.local like so for
-# running any bundle command:
-#
-# BUNDLE_GEMFILE=Gemfile.local bundle foo
-#
-# You can also specify which adapter(s) should be part of the bundle by setting
-# an environment variable. This of course also works when using the Gemfile.local
-#
-# bundle foo # dm-sqlite-adapter
-# ADAPTER=mysql bundle foo # dm-mysql-adapter
-# ADAPTERS=sqlite,mysql bundle foo # dm-sqlite-adapter and dm-mysql-adapter
-#
-# Of course you can also use the ADAPTER(S) variable when using the Gemfile.local
-# and running specs against selected adapters.
-#
-# For easily working with adapters supported on your machine, it's recommended
-# that you first install all adapters that you are planning to use or work on
-# by doing something like
-#
-# ADAPTERS=sqlite,mysql,postgres bundle install
-#
-# This will clone the various repositories and make them available to bundler.
-# Once you have them installed you can easily switch between adapters for the
-# various development tasks. Running something like
-#
-# ADAPTER=mysql bundle exec rake spec
-#
-# will make sure that the dm-mysql-adapter is part of the bundle, and will be used
-# when running the specs.
-#
-# You can also specify which plugin(s) should be part of the bundle by setting
-# an environment variable. This also works when using the Gemfile.local
-#
-# bundle foo # dm-migrations
-# PLUGINS=dm-validations bundle foo # dm-migrations and dm-validations
-# PLUGINS=dm-validations,dm-types bundle foo # dm-migrations, dm-validations and dm-types
-#
-# Of course you can combine the PLUGIN(S) and ADAPTER(S) env vars to run specs
-# for certain adapter/plugin combinations.
-#
-# Finally, to speed up running specs and other tasks, it's recommended to run
-#
-# bundle lock
-#
-# after running 'bundle install' for the first time. This will make 'bundle exec' run
-# a lot faster compared to the unlocked version. With an unlocked bundle you would
-# typically just run 'bundle install' from time to time to fetch the latest sources from
-# upstream. When you locked your bundle, you need to run
-#
-# bundle install --relock
-#
-# to make sure to fetch the latest updates and then lock the bundle again. Gemfile.lock
-# is added to the .gitignore file, so you don't need to worry about accidentally checking
-# it into version control.
-
source 'http://rubygems.org'
-DATAMAPPER = 'git://github.com/datamapper'
-DM_VERSION = '~> 1.0.0'
-
-
-group :runtime do # Runtime dependencies (as in the gemspec)
+SOURCE = ENV.fetch('SOURCE', :git).to_sym
+REPO_POSTFIX = SOURCE == :path ? '' : '.git'
+DATAMAPPER = SOURCE == :path ? Pathname(__FILE__).dirname.parent : 'http://github.com/datamapper'
+DM_VERSION = '~> 1.0.0'
+DO_VERSION = '~> 0.10.3'
+DM_DO_ADAPTERS = %w[ sqlite postgres mysql oracle sqlserver ]
+gem 'dm-core', DM_VERSION, SOURCE => "#{DATAMAPPER}/dm-core#{REPO_POSTFIX}"
- gem 'dm-core', DM_VERSION, :git => "#{DATAMAPPER}/dm-core.git"
-
-end
-
-group(:development) do # Development dependencies (as in the gemspec)
+group :development do
- gem 'dm-validations', DM_VERSION, :git => "#{DATAMAPPER}/dm-validations.git"
- gem 'dm-constraints', DM_VERSION, :git => "#{DATAMAPPER}/dm-constraints.git"
+ gem 'dm-validations', DM_VERSION, SOURCE => "#{DATAMAPPER}/dm-validations#{REPO_POSTFIX}"
+ gem 'dm-constraints', DM_VERSION, SOURCE => "#{DATAMAPPER}/dm-constraints#{REPO_POSTFIX}"
gem 'rake', '~> 0.8.7'
gem 'rspec', '~> 1.3'
@@ -94,46 +22,44 @@ group(:development) do # Development dependencies (as in the gemspec)
end
-group :quality do # These gems contain rake tasks that check the quality of the source code
+platforms :mri_18 do
+ group :quality do
- gem 'yardstick', '~> 0.1'
- gem 'reek', '~> 1.2.7'
- gem 'roodi', '~> 2.1'
+ gem 'yardstick', '~> 0.1'
+ gem 'reek', '~> 1.2.7'
+ gem 'roodi', '~> 2.1'
+ end
end
-group :datamapper do # We need this because we want to pin these dependencies to their git master sources
+group :datamapper do
adapters = ENV['ADAPTER'] || ENV['ADAPTERS']
- adapters = adapters.to_s.gsub(',',' ').split(' ') - ['in_memory']
-
- unless adapters.empty?
+ adapters = adapters.to_s.tr(',', ' ').split.uniq - %w[ in_memory ]
- DO_VERSION = '~> 0.10.3'
- DM_DO_ADAPTERS = %w[sqlite postgres mysql oracle sqlserver]
+ if (do_adapters = DM_DO_ADAPTERS & adapters).any?
+ do_options = {}
+ do_options[:git] = "#{DATAMAPPER}/do#{REPO_POSTFIX}" if ENV['DO_GIT'] == 'true'
- gem 'data_objects', DO_VERSION, :git => "#{DATAMAPPER}/do.git"
+ gem 'data_objects', DO_VERSION, do_options.dup
- adapters.each do |adapter|
- if DM_DO_ADAPTERS.any? { |dm_do_adapter| dm_do_adapter =~ /#{adapter}/ }
- adapter = 'sqlite3' if adapter == 'sqlite'
- gem "do_#{adapter}", DO_VERSION, :git => "#{DATAMAPPER}/do.git"
- end
+ do_adapters.each do |adapter|
+ adapter = 'sqlite3' if adapter == 'sqlite'
+ gem "do_#{adapter}", DO_VERSION, do_options.dup
end
- gem 'dm-do-adapter', DM_VERSION, :git => "#{DATAMAPPER}/dm-do-adapter.git"
-
- adapters.each do |adapter|
- gem "dm-#{adapter}-adapter", DM_VERSION, :git => "#{DATAMAPPER}/dm-#{adapter}-adapter.git"
- end
+ gem 'dm-do-adapter', DM_VERSION, SOURCE => "#{DATAMAPPER}/dm-do-adapter#{REPO_POSTFIX}"
+ end
+ adapters.each do |adapter|
+ gem "dm-#{adapter}-adapter", DM_VERSION, SOURCE => "#{DATAMAPPER}/dm-#{adapter}-adapter#{REPO_POSTFIX}"
end
plugins = ENV['PLUGINS'] || ENV['PLUGIN']
- plugins = (plugins.to_s.gsub(',',' ').split(' ') + ['dm-migrations']).uniq
+ plugins = plugins.to_s.tr(',', ' ').split.push('dm-migrations').uniq
plugins.each do |plugin|
- gem plugin, DM_VERSION, :git => "#{DATAMAPPER}/#{plugin}.git"
+ gem plugin, DM_VERSION, SOURCE => "#{DATAMAPPER}/#{plugin}#{REPO_POSTFIX}"
end
end

0 comments on commit 200edc4

Please sign in to comment.