1 require 'rubygems/package_task'
7 GEM_SPEC = Gem::Specification.new do |s|
8 unless s.respond_to?(:add_development_dependency)
9 puts 'The gem spec requires a newer version of RubyGems.'
14 s.version = PKG_VERSION
16 s.email = PKG_AUTHOR_EMAIL
17 s.summary = PKG_SUMMARY
18 s.description = PKG_DESCRIPTION
20 s.files = PKG_FILES.to_a
21 s.executables << 'google-api'
23 s.extra_rdoc_files = %w( README.md )
24 s.rdoc_options.concat ['--main', 'README.md']
26 # Dependencies used in the main library
27 s.add_runtime_dependency('signet', '>= 0.4.4')
28 s.add_runtime_dependency('addressable', '>= 2.3.2')
29 s.add_runtime_dependency('uuidtools', '>= 2.1.0')
30 s.add_runtime_dependency('autoparse', '>= 0.3.2')
31 s.add_runtime_dependency('faraday', '~> 0.8.4')
32 s.add_runtime_dependency('multi_json', '>= 1.0.0')
33 s.add_runtime_dependency('extlib', '>= 0.9.15')
34 s.add_runtime_dependency('jwt', '>= 0.1.5')
36 # Dependencies used in the CLI
37 s.add_runtime_dependency('launchy', '>= 2.1.1')
39 # Dependencies used in the examples
40 s.add_development_dependency('rake', '>= 0.9.0')
41 s.add_development_dependency('rspec', '>= 2.11.0')
43 s.require_path = 'lib'
45 s.homepage = PKG_HOMEPAGE
48 Gem::PackageTask.new(GEM_SPEC) do |p|
54 desc 'Show information about the gem'
59 desc "Generates .gemspec file"
61 spec_string = GEM_SPEC.to_ruby
64 Thread.new { eval("$SAFE = 3\n#{spec_string}", binding) }.join
66 abort "unsafe gemspec: #{$!}"
68 File.open("#{GEM_SPEC.name}.gemspec", 'w') do |file|
69 file.write spec_string
74 desc 'Install the gem'
75 task :install => ['clobber', 'gem:package'] do
76 sh "#{SUDO} gem install --local pkg/#{GEM_SPEC.full_name}"
79 desc 'Uninstall the gem'
81 installed_list = Gem.source_index.find_name(PKG_NAME)
83 (installed_list.collect { |s| s.version.to_s}.include?(PKG_VERSION))
85 "#{SUDO} gem uninstall --version '#{PKG_VERSION}' " +
86 "--ignore-dependencies --executables #{PKG_NAME}"
91 desc 'Reinstall the gem'
92 task :reinstall => [:uninstall, :install]
95 desc 'Alias to gem:package'
96 task 'gem' => 'gem:package'
98 task 'gem:release' => 'gem:gemspec'