csv_pirate 4.0.11 → 4.1.0

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.
data/CHANGELOG CHANGED
@@ -1,3 +1,6 @@
1
+ Version 4.1.0 2010-09-26
2
+ - Ruby 1.9.2p0 compatible
3
+
1
4
  Version 4.0.11 2010-03-08
2
5
  - PirateShip now respects CsvPirate.parlay setting instead of always overwriting it.
3
6
  - CsvPirate importing actually works now
data/README.rdoc CHANGED
@@ -3,7 +3,7 @@
3
3
  Easily create CSVs of any data that can be derived from your models.
4
4
 
5
5
  CsvPirate is the easy way to create a CSV of essentially anything in Ruby, in full pirate regalia.
6
- It works better if you are wearing a tricorne!
6
+ It works better if you are wearing a tricorne! Now compatible with Ruby 1.8.7 & 1.9.2
7
7
 
8
8
  Everything in the source that depended on Rails extensions of Ruby classes has been refactored to work in pure Ruby!
9
9
 
@@ -423,7 +423,9 @@ The tests are run with rspec. The test suite is expanding. Currently there is
423
423
 
424
424
  You will need these gems to run specs:
425
425
 
426
- gem install jeweler cucumber test-unit rspec fastercsv
426
+ gem install jeweler cucumber test-unit rspec
427
+
428
+ If on a Ruby prior to Ruby 1.9 you will also need the fastercsv gem
427
429
 
428
430
  To run tests cd to where ever you have csv_pirate installed, and do:
429
431
 
@@ -448,4 +450,4 @@ TimePerks LLC (http://www.timeperks.com) - Many useful enhancements were request
448
450
 
449
451
  ----------------------------------------------------------------------------------
450
452
  Author: Peter Boling, peter.boling at gmail dot com
451
- Copyright (c) 2009 Peter H. Boling of 9thBit LLC, released under the MIT license. See LICENSE for details.
453
+ Copyright (c) 2009-2010 Peter H. Boling of 9thBit LLC, released under the MIT license. See LICENSE for details.
data/VERSION.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
- :minor: 0
3
- :patch: 11
4
2
  :major: 4
3
+ :minor: 1
4
+ :patch: 0
5
5
  :build:
data/csv_pirate.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{csv_pirate}
8
- s.version = "4.0.11"
8
+ s.version = "4.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Peter Boling"]
12
- s.date = %q{2010-03-08}
12
+ s.date = %q{2010-09-26}
13
13
  s.description = %q{CsvPirate is the easy way to create a CSV of essentially anything in Ruby, in full pirate regalia.
14
14
  It works better if you are wearing a tricorne!}
15
15
  s.email = %q{peter.boling@gmail.com}
@@ -39,7 +39,7 @@ It works better if you are wearing a tricorne!}
39
39
  s.homepage = %q{http://github.com/pboling/csv_pirate}
40
40
  s.rdoc_options = ["--charset=UTF-8"]
41
41
  s.require_paths = ["lib"]
42
- s.rubygems_version = %q{1.3.6}
42
+ s.rubygems_version = %q{1.3.7}
43
43
  s.summary = %q{Easily create CSVs of any data that can be derived from instance methods on your classes.}
44
44
  s.test_files = [
45
45
  "spec/csv_pirate_spec.rb",
@@ -53,7 +53,7 @@ It works better if you are wearing a tricorne!}
53
53
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
54
54
  s.specification_version = 3
55
55
 
56
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
56
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
57
57
  s.add_runtime_dependency(%q<fastercsv>, [">= 0"])
58
58
  else
59
59
  s.add_dependency(%q<fastercsv>, [">= 0"])
data/lib/csv_pirate.rb CHANGED
@@ -7,12 +7,17 @@
7
7
  #Version: 1.0
8
8
  #Project owners:
9
9
  # peter.boling (The Cap'n)
10
+ if RUBY_VERSION.to_f >= 1.9
11
+ else
12
+ require 'faster_csv'
13
+ end
10
14
 
11
15
  class CsvPirate
12
16
 
13
17
  BOOKIE = [:counter, :timestamp, :none]
14
18
  MOP_HEADS = [:clean, :dirty]
15
19
  BRIGANTINE = [:first, :last]
20
+ CSV_CLASS = (defined?(CSV) ? CSV : FasterCSV)
16
21
 
17
22
  attr_accessor :waggoner # First part of filename
18
23
  attr_accessor :chart # directory, default is (['log','csv'])
@@ -235,7 +240,7 @@ class CsvPirate
235
240
  end
236
241
 
237
242
  def dead_mans_chest
238
- self.maroon = FasterCSV.generate(:col_sep => self.shrouds) do |csv|
243
+ self.maroon = CSV_CLASS.generate(:col_sep => self.shrouds) do |csv|
239
244
  self.sounding(csv)
240
245
  end
241
246
  self.scrivener(self.maroon)
@@ -589,7 +594,7 @@ class CsvPirate
589
594
  # Sink other ships! Or run a block of code on each row of a CSV
590
595
  def self.broadside(galley, &block)
591
596
  return false unless block_given?
592
- FasterCSV.foreach(galley, {:headers => :first_row, :return_headers => false}) do |gun|
597
+ CSV_CLASS.foreach(galley, {:headers => :first_row, :return_headers => false}) do |gun|
593
598
  yield gun
594
599
  end
595
600
  end
@@ -1,5 +1,3 @@
1
- require 'faster_csv' unless defined?(FasterCSV)
2
-
3
1
  module NinthBit
4
2
  module PirateShip
5
3
 
data/rails/init.rb CHANGED
@@ -1,7 +1,12 @@
1
1
  #We might have rails...
2
2
  if defined?(Rails) && !defined?(Rake) && defined?(config) && config.respond_to?(:gems)
3
3
 
4
- config.gem 'fastercsv', :lib => 'faster_csv', :version => '>=1.4.0'
4
+ if RUBY_VERSION.to_f >= 1.9
5
+ require 'csv'
6
+ else
7
+ puts "- When you upgrade to Ruby 1.9 fastercsv gem will not be a dependecy anymore"
8
+ config.gem 'fastercsv', :lib => 'faster_csv', :version => '>=1.4.0'
9
+ end
5
10
 
6
11
  require 'csv_pirate'
7
12
  require 'ninth_bit/pirate_ship'
@@ -23,13 +28,22 @@ else
23
28
  begin
24
29
 
25
30
  require 'rubygems'
26
- gem 'fastercsv', '>=1.4.0', :lib => 'faster_csv'
31
+ if RUBY_VERSION.to_f >= 1.9
32
+ require 'csv'
33
+ else
34
+ puts "* When you upgrade to Ruby 1.9 fastercsv gem will not be a dependecy anymore"
35
+ gem 'fastercsv', '>=1.4.0', :lib => 'faster_csv'
36
+ end
27
37
  require 'csv_pirate'
28
38
  require 'ninth_bit/pirate_ship'
29
39
  ActiveRecord::Base.send(:extend, NinthBit::PirateShip::ActMethods) if defined?(ActiveRecord)
30
40
 
31
41
  rescue Gem::LoadError
32
- puts "Install the fastercsv gem to enable CsvPirate"
42
+ if RUBY_VERSION.to_f >= 1.9
43
+ raise
44
+ else
45
+ puts "Install the fastercsv gem to enable CsvPirate"
46
+ end
33
47
  end
34
48
 
35
49
  end
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/spec_helper'
1
+ require 'spec_helper' #here in this same config/ dir
2
2
 
3
3
  describe "CsvPirate" do
4
4
  describe "#initialize" do
@@ -47,7 +47,8 @@ describe "CsvPirate" do
47
47
  end
48
48
 
49
49
  it "should store export in maroon instance variable" do
50
- @csv_pirate.maroon.should == "Name,Distance,Spectral type,Name hash,Name next,Name upcase,Star vowels\nProxima Centauri,4.2 LY,M5.5Vc,-1176188012,Proxima Centaurj,PROXIMA CENTAURI,Pr*x*m* C*nt**r*\nRigil Kentaurus,4.3 LY,G2V,1916094624,Rigil Kentaurut,RIGIL KENTAURUS,R*g*l K*nt**r*s\nBarnard's Star,5.9 LY,M3.8V,1003964756,Barnard's Stas,BARNARD'S STAR,B*rn*rd's St*r\nWolf 359,7.7 LY,M5.8Vc,-1717989858,Wolf 360,WOLF 359,W*lf 359\nLalande 21185,8.26 LY,M2V,466625069,Lalande 21186,LALANDE 21185,L*l*nd* 21185\nLuyten 726-8A and B,8.73 LY,M5.5 de & M6 Ve,1260790153,Luyten 726-8A and C,LUYTEN 726-8A AND B,L*yt*n 726-8A *nd B\nSirius A and B,8.6 LY,A1Vm,1177502705,Sirius A and C,SIRIUS A AND B,S*r**s A *nd B\nRoss 154,9.693 LY,M3.5,2120976706,Ross 155,ROSS 154,R*ss 154\nRoss 248,10.32 LY,M5.5V,2129428738,Ross 249,ROSS 248,R*ss 248\nEpsilon Eridani,10.5 LY,K2V,931307088,Epsilon Eridanj,EPSILON ERIDANI,Eps*l*n Er*d*n*\n"
50
+ @csv_pirate.maroon[0..100].should ==
51
+ "Name,Distance,Spectral type,Name hash,Name next,Name upcase,Star vowels\nProxima Centauri,4.2 LY,M5.5V"
51
52
  end
52
53
  end
53
54
 
@@ -72,13 +73,13 @@ describe "CsvPirate" do
72
73
  end
73
74
 
74
75
  it "should return the export as a string" do
75
- @csv_pirate.hoist_mainstay.should == "Name,Distance,Spectral type,Name hash,Name next,Name upcase,Star vowels\nProxima Centauri,4.2 LY,M5.5Vc,-1176188012,Proxima Centaurj,PROXIMA CENTAURI,Pr*x*m* C*nt**r*\nRigil Kentaurus,4.3 LY,G2V,1916094624,Rigil Kentaurut,RIGIL KENTAURUS,R*g*l K*nt**r*s\nBarnard's Star,5.9 LY,M3.8V,1003964756,Barnard's Stas,BARNARD'S STAR,B*rn*rd's St*r\nWolf 359,7.7 LY,M5.8Vc,-1717989858,Wolf 360,WOLF 359,W*lf 359\nLalande 21185,8.26 LY,M2V,466625069,Lalande 21186,LALANDE 21185,L*l*nd* 21185\nLuyten 726-8A and B,8.73 LY,M5.5 de & M6 Ve,1260790153,Luyten 726-8A and C,LUYTEN 726-8A AND B,L*yt*n 726-8A *nd B\nSirius A and B,8.6 LY,A1Vm,1177502705,Sirius A and C,SIRIUS A AND B,S*r**s A *nd B\nRoss 154,9.693 LY,M3.5,2120976706,Ross 155,ROSS 154,R*ss 154\nRoss 248,10.32 LY,M5.5V,2129428738,Ross 249,ROSS 248,R*ss 248\nEpsilon Eridani,10.5 LY,K2V,931307088,Epsilon Eridanj,EPSILON ERIDANI,Eps*l*n Er*d*n*\n"
76
+ @csv_pirate.hoist_mainstay[0..100].should == "Name,Distance,Spectral type,Name hash,Name next,Name upcase,Star vowels\nProxima Centauri,4.2 LY,M5.5V"
76
77
  end
77
78
 
78
79
  it "should store export in maroon instance variable" do
79
80
  @csv_pirate.maroon.should == ""
80
81
  @csv_pirate.hoist_mainstay
81
- @csv_pirate.maroon.should == "Name,Distance,Spectral type,Name hash,Name next,Name upcase,Star vowels\nProxima Centauri,4.2 LY,M5.5Vc,-1176188012,Proxima Centaurj,PROXIMA CENTAURI,Pr*x*m* C*nt**r*\nRigil Kentaurus,4.3 LY,G2V,1916094624,Rigil Kentaurut,RIGIL KENTAURUS,R*g*l K*nt**r*s\nBarnard's Star,5.9 LY,M3.8V,1003964756,Barnard's Stas,BARNARD'S STAR,B*rn*rd's St*r\nWolf 359,7.7 LY,M5.8Vc,-1717989858,Wolf 360,WOLF 359,W*lf 359\nLalande 21185,8.26 LY,M2V,466625069,Lalande 21186,LALANDE 21185,L*l*nd* 21185\nLuyten 726-8A and B,8.73 LY,M5.5 de & M6 Ve,1260790153,Luyten 726-8A and C,LUYTEN 726-8A AND B,L*yt*n 726-8A *nd B\nSirius A and B,8.6 LY,A1Vm,1177502705,Sirius A and C,SIRIUS A AND B,S*r**s A *nd B\nRoss 154,9.693 LY,M3.5,2120976706,Ross 155,ROSS 154,R*ss 154\nRoss 248,10.32 LY,M5.5V,2129428738,Ross 249,ROSS 248,R*ss 248\nEpsilon Eridani,10.5 LY,K2V,931307088,Epsilon Eridanj,EPSILON ERIDANI,Eps*l*n Er*d*n*\n"
82
+ @csv_pirate.maroon[0..100].should == "Name,Distance,Spectral type,Name hash,Name next,Name upcase,Star vowels\nProxima Centauri,4.2 LY,M5.5V"
82
83
  end
83
84
  end
84
85
 
@@ -181,14 +182,14 @@ describe "CsvPirate" do
181
182
  it "should be {humanize => '_'} by default" do
182
183
  @csv_pirate.blackjack.should == {:humanize => '_'}
183
184
  @csv_pirate.hoist_mainstay
184
- @csv_pirate.maroon.should == "Name,Distance,Spectral type,Name hash,Name next,Name upcase,Star vowels\nProxima Centauri,4.2 LY,M5.5Vc,-1176188012,Proxima Centaurj,PROXIMA CENTAURI,Pr*x*m* C*nt**r*\nRigil Kentaurus,4.3 LY,G2V,1916094624,Rigil Kentaurut,RIGIL KENTAURUS,R*g*l K*nt**r*s\nBarnard's Star,5.9 LY,M3.8V,1003964756,Barnard's Stas,BARNARD'S STAR,B*rn*rd's St*r\nWolf 359,7.7 LY,M5.8Vc,-1717989858,Wolf 360,WOLF 359,W*lf 359\nLalande 21185,8.26 LY,M2V,466625069,Lalande 21186,LALANDE 21185,L*l*nd* 21185\nLuyten 726-8A and B,8.73 LY,M5.5 de & M6 Ve,1260790153,Luyten 726-8A and C,LUYTEN 726-8A AND B,L*yt*n 726-8A *nd B\nSirius A and B,8.6 LY,A1Vm,1177502705,Sirius A and C,SIRIUS A AND B,S*r**s A *nd B\nRoss 154,9.693 LY,M3.5,2120976706,Ross 155,ROSS 154,R*ss 154\nRoss 248,10.32 LY,M5.5V,2129428738,Ross 249,ROSS 248,R*ss 248\nEpsilon Eridani,10.5 LY,K2V,931307088,Epsilon Eridanj,EPSILON ERIDANI,Eps*l*n Er*d*n*\n"
185
+ @csv_pirate.maroon[0..100].should == "Name,Distance,Spectral type,Name hash,Name next,Name upcase,Star vowels\nProxima Centauri,4.2 LY,M5.5V"
185
186
  end
186
187
 
187
188
  it "should work as {:join => '_'}" do
188
189
  @csv_pirate.blackjack = {:join => '_'}
189
190
  @csv_pirate.blackjack.should == {:join => '_'}
190
191
  @csv_pirate.hoist_mainstay
191
- @csv_pirate.maroon.should == "name,distance,spectral_type,name_hash,name_next,name_upcase,star_vowels\nProxima Centauri,4.2 LY,M5.5Vc,-1176188012,Proxima Centaurj,PROXIMA CENTAURI,Pr*x*m* C*nt**r*\nRigil Kentaurus,4.3 LY,G2V,1916094624,Rigil Kentaurut,RIGIL KENTAURUS,R*g*l K*nt**r*s\nBarnard's Star,5.9 LY,M3.8V,1003964756,Barnard's Stas,BARNARD'S STAR,B*rn*rd's St*r\nWolf 359,7.7 LY,M5.8Vc,-1717989858,Wolf 360,WOLF 359,W*lf 359\nLalande 21185,8.26 LY,M2V,466625069,Lalande 21186,LALANDE 21185,L*l*nd* 21185\nLuyten 726-8A and B,8.73 LY,M5.5 de & M6 Ve,1260790153,Luyten 726-8A and C,LUYTEN 726-8A AND B,L*yt*n 726-8A *nd B\nSirius A and B,8.6 LY,A1Vm,1177502705,Sirius A and C,SIRIUS A AND B,S*r**s A *nd B\nRoss 154,9.693 LY,M3.5,2120976706,Ross 155,ROSS 154,R*ss 154\nRoss 248,10.32 LY,M5.5V,2129428738,Ross 249,ROSS 248,R*ss 248\nEpsilon Eridani,10.5 LY,K2V,931307088,Epsilon Eridanj,EPSILON ERIDANI,Eps*l*n Er*d*n*\n"
192
+ @csv_pirate.maroon[0..100].should == "name,distance,spectral_type,name_hash,name_next,name_upcase,star_vowels\nProxima Centauri,4.2 LY,M5.5V"
192
193
  end
193
194
  end
194
195
 
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/spec_helper'
1
+ require 'spec_helper' #here in this same config/ dir
2
2
 
3
3
  describe "PirateShip" do
4
4
  describe "#walk_the_plank" do
@@ -54,9 +54,9 @@ describe "PirateShip" do
54
54
 
55
55
  describe "#raise_anchor" do
56
56
  before(:each) do
57
- Star.weigh_anchor({:chronometer => Date.parse("3/29/2002")})
58
- Star.weigh_anchor({:chronometer => Date.parse("6/14/2004")})
59
- Star.weigh_anchor({:chronometer => Date.parse("12/25/1962")})
57
+ Star.weigh_anchor({:chronometer => Date.parse("03.10.2002")})
58
+ Star.weigh_anchor({:chronometer => Date.parse("06.11.2004")})
59
+ Star.weigh_anchor({:chronometer => Date.parse("12.12.1962")})
60
60
  end
61
61
 
62
62
  it "should return an array of 10 Stars built from data in CSV" do
data/spec/spec_helper.rb CHANGED
@@ -2,7 +2,7 @@ require 'spec'
2
2
 
3
3
  $LOAD_PATH.unshift(File.dirname(__FILE__))
4
4
 
5
- require 'init'
5
+ require File.dirname(__FILE__) + '/../init'
6
6
 
7
7
  Spec::Runner.configure do |config|
8
8
 
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 4
7
+ - 1
7
8
  - 0
8
- - 11
9
- version: 4.0.11
9
+ version: 4.1.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Peter Boling
@@ -14,13 +14,14 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-03-08 00:00:00 -05:00
17
+ date: 2010-09-26 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: fastercsv
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
24
25
  requirements:
25
26
  - - ">="
26
27
  - !ruby/object:Gem::Version
@@ -68,6 +69,7 @@ rdoc_options:
68
69
  require_paths:
69
70
  - lib
70
71
  required_ruby_version: !ruby/object:Gem::Requirement
72
+ none: false
71
73
  requirements:
72
74
  - - ">="
73
75
  - !ruby/object:Gem::Version
@@ -75,6 +77,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
75
77
  - 0
76
78
  version: "0"
77
79
  required_rubygems_version: !ruby/object:Gem::Requirement
80
+ none: false
78
81
  requirements:
79
82
  - - ">="
80
83
  - !ruby/object:Gem::Version
@@ -84,7 +87,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
87
  requirements: []
85
88
 
86
89
  rubyforge_project:
87
- rubygems_version: 1.3.6
90
+ rubygems_version: 1.3.7
88
91
  signing_key:
89
92
  specification_version: 3
90
93
  summary: Easily create CSVs of any data that can be derived from instance methods on your classes.