cheap_imports 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. data/Rakefile +9 -14
  2. data/clean-arch-install.sh +17 -0
  3. data/examples/active-record-tarp/.example.rb.swp +0 -0
  4. data/examples/active-record-tarp/example.out +946 -0
  5. data/examples/active-record-tarp/example.rb +35 -0
  6. data/examples/active-record-tarp/example.sqlite3 +0 -0
  7. data/examples/active-record-tarp/tarp_transactions.csv +941 -0
  8. data/lib/cheap_imports.rb +13 -6
  9. data/lib/cheap_imports/import.rb +2 -2
  10. metadata +27 -56
  11. data/.bzr/README +0 -3
  12. data/.bzr/branch-format +0 -1
  13. data/.bzr/branch/branch.conf +0 -2
  14. data/.bzr/branch/format +0 -1
  15. data/.bzr/branch/last-revision +0 -1
  16. data/.bzr/branch/tags +0 -0
  17. data/.bzr/checkout/conflicts +0 -1
  18. data/.bzr/checkout/dirstate +0 -0
  19. data/.bzr/checkout/format +0 -1
  20. data/.bzr/checkout/merge-hashes +0 -6
  21. data/.bzr/repository/format +0 -1
  22. data/.bzr/repository/indices/3b0e60c570a8cfc21b7d22db489579e7.iix +0 -0
  23. data/.bzr/repository/indices/3b0e60c570a8cfc21b7d22db489579e7.rix +0 -0
  24. data/.bzr/repository/indices/3b0e60c570a8cfc21b7d22db489579e7.six +0 -5
  25. data/.bzr/repository/indices/3b0e60c570a8cfc21b7d22db489579e7.tix +0 -0
  26. data/.bzr/repository/indices/d139719d6bdd037de4ec3718dcf1c0c4.iix +0 -0
  27. data/.bzr/repository/indices/d139719d6bdd037de4ec3718dcf1c0c4.rix +0 -0
  28. data/.bzr/repository/indices/d139719d6bdd037de4ec3718dcf1c0c4.six +0 -5
  29. data/.bzr/repository/indices/d139719d6bdd037de4ec3718dcf1c0c4.tix +0 -0
  30. data/.bzr/repository/indices/d5dffeca0774033e54854302570cb330.iix +0 -0
  31. data/.bzr/repository/indices/d5dffeca0774033e54854302570cb330.rix +0 -0
  32. data/.bzr/repository/indices/d5dffeca0774033e54854302570cb330.six +0 -5
  33. data/.bzr/repository/indices/d5dffeca0774033e54854302570cb330.tix +0 -0
  34. data/.bzr/repository/indices/e5571628132ac072d270e0a249095c14.iix +0 -0
  35. data/.bzr/repository/indices/e5571628132ac072d270e0a249095c14.rix +0 -0
  36. data/.bzr/repository/indices/e5571628132ac072d270e0a249095c14.six +0 -5
  37. data/.bzr/repository/indices/e5571628132ac072d270e0a249095c14.tix +0 -0
  38. data/.bzr/repository/pack-names +0 -0
  39. data/.bzr/repository/packs/3b0e60c570a8cfc21b7d22db489579e7.pack +0 -0
  40. data/.bzr/repository/packs/d139719d6bdd037de4ec3718dcf1c0c4.pack +0 -0
  41. data/.bzr/repository/packs/d5dffeca0774033e54854302570cb330.pack +0 -0
  42. data/.bzr/repository/packs/e5571628132ac072d270e0a249095c14.pack +0 -0
  43. data/.bzrignore +0 -2
  44. data/tasks/ann.rake +0 -80
  45. data/tasks/bones.rake +0 -20
  46. data/tasks/gem.rake +0 -201
  47. data/tasks/git.rake +0 -40
  48. data/tasks/notes.rake +0 -27
  49. data/tasks/post_load.rake +0 -34
  50. data/tasks/rdoc.rake +0 -51
  51. data/tasks/rubyforge.rake +0 -55
  52. data/tasks/setup.rb +0 -292
  53. data/tasks/spec.rake +0 -54
  54. data/tasks/svn.rake +0 -47
  55. data/tasks/test.rake +0 -40
  56. data/tasks/zentest.rake +0 -36
data/lib/cheap_imports.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module CheapImports
2
2
 
3
3
  # :stopdoc:
4
- VERSION = '0.0.2'
4
+ VERSION = '0.0.3'
5
5
  LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
6
6
  PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
7
7
  # :startdoc:
@@ -45,8 +45,15 @@ end # module CheapImports
45
45
 
46
46
  CheapImports.require_all_libs_relative_to(__FILE__)
47
47
 
48
- begin
49
- require "fastercsv"
50
- rescue LoadError
51
- raise "FasterCSV is required!" unless RUBY_VERSION >= "1.9.0"
52
- end
48
+ # http://ruport.blogspot.com/2008/03/fastercsv-api-shim-for-19.html
49
+ if RUBY_VERSION > "1.9"
50
+ require "csv"
51
+ unless defined? FCSV
52
+ class Object
53
+ FCSV = CSV
54
+ alias_method :FCSV, :CSV
55
+ end
56
+ end
57
+ else
58
+ require "fastercsv"
59
+ end
@@ -10,7 +10,7 @@ module Import
10
10
 
11
11
  objects = []
12
12
 
13
- FasterCSV.parse(params_data, {:col_sep => delim, :row_sep => :auto}) do |row|
13
+ FCSV.parse(params_data, {:col_sep => delim, :row_sep => :auto}) do |row|
14
14
  next if row.join("") !~ /\w/ # Skip blank rows.
15
15
 
16
16
  header_row ||= row
@@ -61,4 +61,4 @@ module Import
61
61
  end
62
62
  delim
63
63
  end
64
- end
64
+ end
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cheap_imports
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 3
9
+ version: 0.0.3
5
10
  platform: ruby
6
11
  authors:
7
12
  - Ana Nelson
@@ -9,19 +14,23 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2009-11-16 00:00:00 +00:00
17
+ date: 2010-06-17 00:00:00 +01:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: bones
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
23
- version: 2.5.1
24
- version:
27
+ segments:
28
+ - 3
29
+ - 4
30
+ - 3
31
+ version: 3.4.3
32
+ type: :development
33
+ version_requirements: *id001
25
34
  description: Imports delimited text files to Active Record or Datamapper, with validations.
26
35
  email: ana@ananelson.com
27
36
  executables:
@@ -33,43 +42,16 @@ extra_rdoc_files:
33
42
  - README.txt
34
43
  - bin/cheap_imports
35
44
  files:
36
- - .bzr/README
37
- - .bzr/branch-format
38
- - .bzr/branch/branch.conf
39
- - .bzr/branch/format
40
- - .bzr/branch/last-revision
41
- - .bzr/branch/tags
42
- - .bzr/checkout/conflicts
43
- - .bzr/checkout/dirstate
44
- - .bzr/checkout/format
45
- - .bzr/checkout/merge-hashes
46
- - .bzr/repository/format
47
- - .bzr/repository/indices/3b0e60c570a8cfc21b7d22db489579e7.iix
48
- - .bzr/repository/indices/3b0e60c570a8cfc21b7d22db489579e7.rix
49
- - .bzr/repository/indices/3b0e60c570a8cfc21b7d22db489579e7.six
50
- - .bzr/repository/indices/3b0e60c570a8cfc21b7d22db489579e7.tix
51
- - .bzr/repository/indices/d139719d6bdd037de4ec3718dcf1c0c4.iix
52
- - .bzr/repository/indices/d139719d6bdd037de4ec3718dcf1c0c4.rix
53
- - .bzr/repository/indices/d139719d6bdd037de4ec3718dcf1c0c4.six
54
- - .bzr/repository/indices/d139719d6bdd037de4ec3718dcf1c0c4.tix
55
- - .bzr/repository/indices/d5dffeca0774033e54854302570cb330.iix
56
- - .bzr/repository/indices/d5dffeca0774033e54854302570cb330.rix
57
- - .bzr/repository/indices/d5dffeca0774033e54854302570cb330.six
58
- - .bzr/repository/indices/d5dffeca0774033e54854302570cb330.tix
59
- - .bzr/repository/indices/e5571628132ac072d270e0a249095c14.iix
60
- - .bzr/repository/indices/e5571628132ac072d270e0a249095c14.rix
61
- - .bzr/repository/indices/e5571628132ac072d270e0a249095c14.six
62
- - .bzr/repository/indices/e5571628132ac072d270e0a249095c14.tix
63
- - .bzr/repository/pack-names
64
- - .bzr/repository/packs/3b0e60c570a8cfc21b7d22db489579e7.pack
65
- - .bzr/repository/packs/d139719d6bdd037de4ec3718dcf1c0c4.pack
66
- - .bzr/repository/packs/d5dffeca0774033e54854302570cb330.pack
67
- - .bzr/repository/packs/e5571628132ac072d270e0a249095c14.pack
68
- - .bzrignore
69
45
  - History.txt
70
46
  - README.txt
71
47
  - Rakefile
72
48
  - bin/cheap_imports
49
+ - clean-arch-install.sh
50
+ - examples/active-record-tarp/.example.rb.swp
51
+ - examples/active-record-tarp/example.out
52
+ - examples/active-record-tarp/example.rb
53
+ - examples/active-record-tarp/example.sqlite3
54
+ - examples/active-record-tarp/tarp_transactions.csv
73
55
  - lib/cheap_imports.rb
74
56
  - lib/cheap_imports/cheap_imports.rb
75
57
  - lib/cheap_imports/import.rb
@@ -77,19 +59,6 @@ files:
77
59
  - spec/orms/active_record_spec.rb
78
60
  - spec/orms/datamapper_spec.rb
79
61
  - spec/spec_helper.rb
80
- - tasks/ann.rake
81
- - tasks/bones.rake
82
- - tasks/gem.rake
83
- - tasks/git.rake
84
- - tasks/notes.rake
85
- - tasks/post_load.rake
86
- - tasks/rdoc.rake
87
- - tasks/rubyforge.rake
88
- - tasks/setup.rb
89
- - tasks/spec.rake
90
- - tasks/svn.rake
91
- - tasks/test.rake
92
- - tasks/zentest.rake
93
62
  has_rdoc: true
94
63
  homepage: http://ananelson.com
95
64
  licenses: []
@@ -104,18 +73,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
104
73
  requirements:
105
74
  - - ">="
106
75
  - !ruby/object:Gem::Version
76
+ segments:
77
+ - 0
107
78
  version: "0"
108
- version:
109
79
  required_rubygems_version: !ruby/object:Gem::Requirement
110
80
  requirements:
111
81
  - - ">="
112
82
  - !ruby/object:Gem::Version
83
+ segments:
84
+ - 0
113
85
  version: "0"
114
- version:
115
86
  requirements: []
116
87
 
117
88
  rubyforge_project: cheap_imports
118
- rubygems_version: 1.3.5
89
+ rubygems_version: 1.3.6
119
90
  signing_key:
120
91
  specification_version: 3
121
92
  summary: Imports delimited text files to Active Record or Datamapper, with validations
data/.bzr/README DELETED
@@ -1,3 +0,0 @@
1
- This is a Bazaar control directory.
2
- Do not change any files in this directory.
3
- See http://bazaar-vcs.org/ for more information about Bazaar.
data/.bzr/branch-format DELETED
@@ -1 +0,0 @@
1
- Bazaar-NG meta directory, format 1
@@ -1,2 +0,0 @@
1
- parent_location = http://ananelson.com/code/cheap_imports/
2
- push_location = sftp://anaslist@ananelson.com/~/sites/ananelson.com/code/cheap_imports/
data/.bzr/branch/format DELETED
@@ -1 +0,0 @@
1
- Bazaar Branch Format 6 (bzr 0.15)
@@ -1 +0,0 @@
1
- 4 ana@ananelson.com-20091103102943-5xrd13o5d0grzb4j
data/.bzr/branch/tags DELETED
File without changes
@@ -1 +0,0 @@
1
- BZR conflict list format 1
Binary file
data/.bzr/checkout/format DELETED
@@ -1 +0,0 @@
1
- Bazaar Working Tree Format 4 (bzr 0.15)
@@ -1,6 +0,0 @@
1
- BZR merge-modified list format 1
2
- file_id: cheap_imports.rb-20090721140243-7zd6ayu1gjqkmv5d-22
3
- hash: 8e31b226cd9163bcc12089d289659a8938b11212
4
-
5
- file_id: cheap_imports.rb-20090721140243-7zd6ayu1gjqkmv5d-16
6
- hash: 6d4bcc8c2461ffbf20b3535190cf8995002959da
@@ -1 +0,0 @@
1
- Bazaar pack repository format 1 (needs bzr 0.92)
@@ -1,5 +0,0 @@
1
- Bazaar Graph Index 1
2
- node_ref_lists=0
3
- key_elements=1
4
- len=0
5
-
@@ -1,5 +0,0 @@
1
- Bazaar Graph Index 1
2
- node_ref_lists=0
3
- key_elements=1
4
- len=0
5
-
@@ -1,5 +0,0 @@
1
- Bazaar Graph Index 1
2
- node_ref_lists=0
3
- key_elements=1
4
- len=0
5
-
@@ -1,5 +0,0 @@
1
- Bazaar Graph Index 1
2
- node_ref_lists=0
3
- key_elements=1
4
- len=0
5
-
Binary file
data/.bzrignore DELETED
@@ -1,2 +0,0 @@
1
- pkg
2
- coverage
data/tasks/ann.rake DELETED
@@ -1,80 +0,0 @@
1
-
2
- begin
3
- require 'bones/smtp_tls'
4
- rescue LoadError
5
- require 'net/smtp'
6
- end
7
- require 'time'
8
-
9
- namespace :ann do
10
-
11
- # A prerequisites task that all other tasks depend upon
12
- task :prereqs
13
-
14
- file PROJ.ann.file do
15
- ann = PROJ.ann
16
- puts "Generating #{ann.file}"
17
- File.open(ann.file,'w') do |fd|
18
- fd.puts("#{PROJ.name} version #{PROJ.version}")
19
- fd.puts(" by #{Array(PROJ.authors).first}") if PROJ.authors
20
- fd.puts(" #{PROJ.url}") if PROJ.url.valid?
21
- fd.puts(" (the \"#{PROJ.release_name}\" release)") if PROJ.release_name
22
- fd.puts
23
- fd.puts("== DESCRIPTION")
24
- fd.puts
25
- fd.puts(PROJ.description)
26
- fd.puts
27
- fd.puts(PROJ.changes.sub(%r/^.*$/, '== CHANGES'))
28
- fd.puts
29
- ann.paragraphs.each do |p|
30
- fd.puts "== #{p.upcase}"
31
- fd.puts
32
- fd.puts paragraphs_of(PROJ.readme_file, p).join("\n\n")
33
- fd.puts
34
- end
35
- fd.puts ann.text if ann.text
36
- end
37
- end
38
-
39
- desc "Create an announcement file"
40
- task :announcement => ['ann:prereqs', PROJ.ann.file]
41
-
42
- desc "Send an email announcement"
43
- task :email => ['ann:prereqs', PROJ.ann.file] do
44
- ann = PROJ.ann
45
- from = ann.email[:from] || Array(PROJ.authors).first || PROJ.email
46
- to = Array(ann.email[:to])
47
-
48
- ### build a mail header for RFC 822
49
- rfc822msg = "From: #{from}\n"
50
- rfc822msg << "To: #{to.join(',')}\n"
51
- rfc822msg << "Subject: [ANN] #{PROJ.name} #{PROJ.version}"
52
- rfc822msg << " (#{PROJ.release_name})" if PROJ.release_name
53
- rfc822msg << "\n"
54
- rfc822msg << "Date: #{Time.new.rfc822}\n"
55
- rfc822msg << "Message-Id: "
56
- rfc822msg << "<#{"%.8f" % Time.now.to_f}@#{ann.email[:domain]}>\n\n"
57
- rfc822msg << File.read(ann.file)
58
-
59
- params = [:server, :port, :domain, :acct, :passwd, :authtype].map do |key|
60
- ann.email[key]
61
- end
62
-
63
- params[3] = PROJ.email if params[3].nil?
64
-
65
- if params[4].nil?
66
- STDOUT.write "Please enter your e-mail password (#{params[3]}): "
67
- params[4] = STDIN.gets.chomp
68
- end
69
-
70
- ### send email
71
- Net::SMTP.start(*params) {|smtp| smtp.sendmail(rfc822msg, from, to)}
72
- end
73
- end # namespace :ann
74
-
75
- desc 'Alias to ann:announcement'
76
- task :ann => 'ann:announcement'
77
-
78
- CLOBBER << PROJ.ann.file
79
-
80
- # EOF
data/tasks/bones.rake DELETED
@@ -1,20 +0,0 @@
1
-
2
- if HAVE_BONES
3
-
4
- namespace :bones do
5
-
6
- desc 'Show the PROJ open struct'
7
- task :debug do |t|
8
- atr = if t.application.top_level_tasks.length == 2
9
- t.application.top_level_tasks.pop
10
- end
11
-
12
- if atr then Bones::Debug.show_attr(PROJ, atr)
13
- else Bones::Debug.show PROJ end
14
- end
15
-
16
- end # namespace :bones
17
-
18
- end # HAVE_BONES
19
-
20
- # EOF
data/tasks/gem.rake DELETED
@@ -1,201 +0,0 @@
1
-
2
- require 'find'
3
- require 'rake/packagetask'
4
- require 'rubygems/user_interaction'
5
- require 'rubygems/builder'
6
-
7
- module Bones
8
- class GemPackageTask < Rake::PackageTask
9
- # Ruby GEM spec containing the metadata for this package. The
10
- # name, version and package_files are automatically determined
11
- # from the GEM spec and don't need to be explicitly provided.
12
- #
13
- attr_accessor :gem_spec
14
-
15
- # Tasks from the Bones gem directory
16
- attr_reader :bones_files
17
-
18
- # Create a GEM Package task library. Automatically define the gem
19
- # if a block is given. If no block is supplied, then +define+
20
- # needs to be called to define the task.
21
- #
22
- def initialize(gem_spec)
23
- init(gem_spec)
24
- yield self if block_given?
25
- define if block_given?
26
- end
27
-
28
- # Initialization tasks without the "yield self" or define
29
- # operations.
30
- #
31
- def init(gem)
32
- super(gem.name, gem.version)
33
- @gem_spec = gem
34
- @package_files += gem_spec.files if gem_spec.files
35
- @bones_files = []
36
-
37
- local_setup = File.join(Dir.pwd, %w[tasks setup.rb])
38
- if !test(?e, local_setup)
39
- Dir.glob(::Bones.path(%w[lib bones tasks *])).each {|fn| bones_files << fn}
40
- end
41
- end
42
-
43
- # Create the Rake tasks and actions specified by this
44
- # GemPackageTask. (+define+ is automatically called if a block is
45
- # given to +new+).
46
- #
47
- def define
48
- super
49
- task :prereqs
50
- task :package => ['gem:prereqs', "#{package_dir_path}/#{gem_file}"]
51
- file "#{package_dir_path}/#{gem_file}" => [package_dir_path] + package_files + bones_files do
52
- when_writing("Creating GEM") {
53
- chdir(package_dir_path) do
54
- Gem::Builder.new(gem_spec).build
55
- verbose(true) {
56
- mv gem_file, "../#{gem_file}"
57
- }
58
- end
59
- }
60
- end
61
-
62
- file package_dir_path => bones_files do
63
- mkdir_p package_dir rescue nil
64
-
65
- gem_spec.files = (gem_spec.files +
66
- bones_files.map {|fn| File.join('tasks', File.basename(fn))}).sort
67
-
68
- bones_files.each do |fn|
69
- base_fn = File.join('tasks', File.basename(fn))
70
- f = File.join(package_dir_path, base_fn)
71
- fdir = File.dirname(f)
72
- mkdir_p(fdir) if !File.exist?(fdir)
73
- if File.directory?(fn)
74
- mkdir_p(f)
75
- else
76
- raise "file name conflict for '#{base_fn}' (conflicts with '#{fn}')" if test(?e, f)
77
- safe_ln(fn, f)
78
- end
79
- end
80
- end
81
- end
82
-
83
- def gem_file
84
- if @gem_spec.platform == Gem::Platform::RUBY
85
- "#{package_name}.gem"
86
- else
87
- "#{package_name}-#{@gem_spec.platform}.gem"
88
- end
89
- end
90
- end # class GemPackageTask
91
- end # module Bones
92
-
93
- namespace :gem do
94
-
95
- PROJ.gem._spec = Gem::Specification.new do |s|
96
- s.name = PROJ.name
97
- s.version = PROJ.version
98
- s.summary = PROJ.summary
99
- s.authors = Array(PROJ.authors)
100
- s.email = PROJ.email
101
- s.homepage = Array(PROJ.url).first
102
- s.rubyforge_project = PROJ.rubyforge.name
103
-
104
- s.description = PROJ.description
105
-
106
- PROJ.gem.dependencies.each do |dep|
107
- s.add_dependency(*dep)
108
- end
109
-
110
- PROJ.gem.development_dependencies.each do |dep|
111
- s.add_development_dependency(*dep)
112
- end
113
-
114
- s.files = PROJ.gem.files
115
- s.executables = PROJ.gem.executables.map {|fn| File.basename(fn)}
116
- s.extensions = PROJ.gem.files.grep %r/extconf\.rb$/
117
-
118
- s.bindir = 'bin'
119
- dirs = Dir["{#{PROJ.libs.join(',')}}"]
120
- s.require_paths = dirs unless dirs.empty?
121
-
122
- incl = Regexp.new(PROJ.rdoc.include.join('|'))
123
- excl = PROJ.rdoc.exclude.dup.concat %w[\.rb$ ^(\.\/|\/)?ext]
124
- excl = Regexp.new(excl.join('|'))
125
- rdoc_files = PROJ.gem.files.find_all do |fn|
126
- case fn
127
- when excl; false
128
- when incl; true
129
- else false end
130
- end
131
- s.rdoc_options = PROJ.rdoc.opts + ['--main', PROJ.rdoc.main]
132
- s.extra_rdoc_files = rdoc_files
133
- s.has_rdoc = true
134
-
135
- if test ?f, PROJ.test.file
136
- s.test_file = PROJ.test.file
137
- else
138
- s.test_files = PROJ.test.files.to_a
139
- end
140
-
141
- # Do any extra stuff the user wants
142
- PROJ.gem.extras.each do |msg, val|
143
- case val
144
- when Proc
145
- val.call(s.send(msg))
146
- else
147
- s.send "#{msg}=", val
148
- end
149
- end
150
- end # Gem::Specification.new
151
-
152
- Bones::GemPackageTask.new(PROJ.gem._spec) do |pkg|
153
- pkg.need_tar = PROJ.gem.need_tar
154
- pkg.need_zip = PROJ.gem.need_zip
155
- end
156
-
157
- desc 'Show information about the gem'
158
- task :debug => 'gem:prereqs' do
159
- puts PROJ.gem._spec.to_ruby
160
- end
161
-
162
- desc 'Write the gemspec '
163
- task :spec => 'gem:prereqs' do
164
- File.open("#{PROJ.name}.gemspec", 'w') do |f|
165
- f.write PROJ.gem._spec.to_ruby
166
- end
167
- end
168
-
169
- desc 'Install the gem'
170
- task :install => [:clobber, 'gem:package'] do
171
- sh "#{SUDO} #{GEM} install --local pkg/#{PROJ.gem._spec.full_name}"
172
-
173
- # use this version of the command for rubygems > 1.0.0
174
- #sh "#{SUDO} #{GEM} install --no-update-sources pkg/#{PROJ.gem._spec.full_name}"
175
- end
176
-
177
- desc 'Uninstall the gem'
178
- task :uninstall do
179
- installed_list = Gem.source_index.find_name(PROJ.name)
180
- if installed_list and installed_list.collect { |s| s.version.to_s}.include?(PROJ.version) then
181
- sh "#{SUDO} #{GEM} uninstall --version '#{PROJ.version}' --ignore-dependencies --executables #{PROJ.name}"
182
- end
183
- end
184
-
185
- desc 'Reinstall the gem'
186
- task :reinstall => [:uninstall, :install]
187
-
188
- desc 'Cleanup the gem'
189
- task :cleanup do
190
- sh "#{SUDO} #{GEM} cleanup #{PROJ.gem._spec.name}"
191
- end
192
- end # namespace :gem
193
-
194
-
195
- desc 'Alias to gem:package'
196
- task :gem => 'gem:package'
197
-
198
- task :clobber => 'gem:clobber_package'
199
- remove_desc_for_task 'gem:clobber_package'
200
-
201
- # EOF