comma 0.4.3 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,4 @@
1
+ pkg/*
2
+ .*.swp
3
+ *~
4
+ .bundle
data/.rvmrc ADDED
@@ -0,0 +1,5 @@
1
+ rvm 1.9.2-p290@comma --create
2
+
3
+ if ! command -v bundle ; then
4
+ gem install bundler
5
+ fi
data/Appraisals ADDED
@@ -0,0 +1,9 @@
1
+ appraise "activesupport2" do
2
+ gem "activesupport", "<3"
3
+ gem "activerecord", "<3"
4
+ end
5
+
6
+ appraise "activesupport3" do
7
+ gem "activesupport", ">3"
8
+ gem "activerecord", ">3"
9
+ end
data/Gemfile CHANGED
@@ -1,10 +1,3 @@
1
- source :rubygems
1
+ source "http://rubygems.org"
2
2
 
3
- gem "activesupport", ">= 2.2.2"
4
- gem "fastercsv"
5
-
6
- group :development do
7
- gem "jeweler", "~> 1.6"
8
- gem "rspec", "~> 2.3.0"
9
- gem "activerecord", ">= 2.2.2"
10
- end
3
+ gemspec
data/Gemfile.lock CHANGED
@@ -1,32 +1,34 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ comma (0.5.2)
5
+ fastercsv (= 1.5.4)
6
+
1
7
  GEM
2
8
  remote: http://rubygems.org/
3
9
  specs:
4
- activerecord (2.3.10)
5
- activesupport (= 2.3.10)
6
- activesupport (2.3.10)
7
- diff-lcs (1.1.2)
8
- fastercsv (1.5.4)
9
- git (1.2.5)
10
- jeweler (1.6.0)
11
- bundler (~> 1.0.0)
12
- git (>= 1.2.5)
10
+ appraisal (0.4.0)
11
+ bundler
13
12
  rake
13
+ diff-lcs (1.1.3)
14
+ fastercsv (1.5.4)
14
15
  rake (0.8.7)
15
- rspec (2.3.0)
16
- rspec-core (~> 2.3.0)
17
- rspec-expectations (~> 2.3.0)
18
- rspec-mocks (~> 2.3.0)
19
- rspec-core (2.3.1)
20
- rspec-expectations (2.3.0)
16
+ rspec (2.7.0)
17
+ rspec-core (~> 2.7.0)
18
+ rspec-expectations (~> 2.7.0)
19
+ rspec-mocks (~> 2.7.0)
20
+ rspec-core (2.7.1)
21
+ rspec-expectations (2.7.0)
21
22
  diff-lcs (~> 1.1.2)
22
- rspec-mocks (2.3.0)
23
+ rspec-mocks (2.7.0)
24
+ sqlite3 (1.3.5)
23
25
 
24
26
  PLATFORMS
25
27
  ruby
26
28
 
27
29
  DEPENDENCIES
28
- activerecord (>= 2.2.2)
29
- activesupport (>= 2.2.2)
30
- fastercsv
31
- jeweler (~> 1.6)
32
- rspec (~> 2.3.0)
30
+ appraisal (>= 0.4.0)
31
+ comma!
32
+ rake (= 0.8.7)
33
+ rspec (~> 2.7.0)
34
+ sqlite3 (~> 1.3.4)
data/README.rdoc CHANGED
@@ -223,4 +223,18 @@ If you're on Ruby 1.8.*, the FasterCSV gem is recommended for performance reason
223
223
 
224
224
  If you have any questions or suggestions for Comma, please feel free to contact me at crafterm@redartisan.com, all feedback welcome!
225
225
 
226
+ == TESTING
227
+
228
+ This gem has been tested on :
229
+ Ruby 1.8.7, 1.9.2
230
+
231
+ And on Rails 2.x and 3.x.
232
+
233
+ To run the test suite across multiple gem file sets, we're using [Appraisal](https://github.com/thoughtbot/appraisal), use the following commands :
234
+
235
+ ```
236
+ bundle install
237
+ bundle exec rake appraisals:install
238
+ bundle exec rake appraisals spec
239
+ ```
226
240
 
data/Rakefile CHANGED
@@ -1,25 +1,6 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
8
- exit e.status_code
9
- end
10
- require 'rake'
1
+ require "bundler/gem_tasks"
11
2
 
12
- require 'jeweler'
13
- Jeweler::Tasks.new do |gem|
14
- gem.name = "comma"
15
- gem.summary = "Ruby Comma Seperated Values generation library"
16
- gem.description = "Ruby Comma Seperated Values generation library"
17
- gem.email = "crafterm@redartisan.com"
18
- gem.rubyforge_project = 'comma'
19
- gem.homepage = "http://github.com/crafterm/comma"
20
- gem.authors = ["Marcus Crafter"]
21
- end
22
- Jeweler::RubygemsDotOrgTasks.new
3
+ require 'appraisal'
23
4
 
24
5
  require 'rspec/core'
25
6
  require 'rspec/core/rake_task'
@@ -27,19 +8,4 @@ RSpec::Core::RakeTask.new(:spec) do |spec|
27
8
  spec.pattern = FileList['spec/**/*_spec.rb']
28
9
  end
29
10
 
30
- RSpec::Core::RakeTask.new(:rcov) do |spec|
31
- spec.pattern = 'spec/**/*_spec.rb'
32
- spec.rcov = true
33
- end
34
-
35
- task :default => :spec
36
-
37
- require 'rake/rdoctask'
38
- Rake::RDocTask.new do |rdoc|
39
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
40
-
41
- rdoc.rdoc_dir = 'rdoc'
42
- rdoc.title = "awesome #{version}"
43
- rdoc.rdoc_files.include('README*')
44
- rdoc.rdoc_files.include('lib/**/*.rb')
45
- end
11
+ task :default => :spec
data/comma.gemspec CHANGED
@@ -1,71 +1,28 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
1
  # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "comma/version"
5
4
 
6
5
  Gem::Specification.new do |s|
7
- s.name = %q{comma}
8
- s.version = "0.4.3"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Marcus Crafter"]
12
- s.date = %q{2011-10-29}
6
+ s.name = "comma"
7
+ s.version = Comma::VERSION
8
+ s.authors = ["Marcus Crafter", "Tom Meier"]
9
+ s.email = ["crafterm@redartisan.com", "tom@venombytes.com"]
10
+ s.homepage = "http://github.com/crafterm/comma"
11
+ s.summary = %q{Ruby Comma Seperated Values generation library}
13
12
  s.description = %q{Ruby Comma Seperated Values generation library}
14
- s.email = %q{crafterm@redartisan.com}
15
- s.extra_rdoc_files = [
16
- "README.rdoc"
17
- ]
18
- s.files = [
19
- "Gemfile",
20
- "Gemfile.lock",
21
- "MIT-LICENSE",
22
- "README.rdoc",
23
- "Rakefile",
24
- "VERSION",
25
- "comma.gemspec",
26
- "init.rb",
27
- "lib/comma.rb",
28
- "lib/comma/array.rb",
29
- "lib/comma/association_proxy.rb",
30
- "lib/comma/extractors.rb",
31
- "lib/comma/generator.rb",
32
- "lib/comma/named_scope.rb",
33
- "lib/comma/object.rb",
34
- "lib/comma/render_as_csv.rb",
35
- "spec/comma/ar_spec.rb",
36
- "spec/comma/comma_spec.rb",
37
- "spec/comma/extractors_spec.rb",
38
- "spec/spec.opts",
39
- "spec/spec_helper.rb"
40
- ]
41
- s.homepage = %q{http://github.com/crafterm/comma}
13
+
14
+ s.rubyforge_project = "comma"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
42
19
  s.require_paths = ["lib"]
43
- s.rubyforge_project = %q{comma}
44
- s.rubygems_version = %q{1.4.2}
45
- s.summary = %q{Ruby Comma Seperated Values generation library}
46
20
 
47
- if s.respond_to? :specification_version then
48
- s.specification_version = 3
21
+ s.add_runtime_dependency(%q<fastercsv>, ["1.5.4"])
49
22
 
50
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
51
- s.add_runtime_dependency(%q<activesupport>, [">= 2.2.2"])
52
- s.add_runtime_dependency(%q<fastercsv>, [">= 0"])
53
- s.add_development_dependency(%q<jeweler>, ["~> 1.6"])
54
- s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
55
- s.add_development_dependency(%q<activerecord>, [">= 2.2.2"])
56
- else
57
- s.add_dependency(%q<activesupport>, [">= 2.2.2"])
58
- s.add_dependency(%q<fastercsv>, [">= 0"])
59
- s.add_dependency(%q<jeweler>, ["~> 1.6"])
60
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
61
- s.add_dependency(%q<activerecord>, [">= 2.2.2"])
62
- end
63
- else
64
- s.add_dependency(%q<activesupport>, [">= 2.2.2"])
65
- s.add_dependency(%q<fastercsv>, [">= 0"])
66
- s.add_dependency(%q<jeweler>, ["~> 1.6"])
67
- s.add_dependency(%q<rspec>, ["~> 2.3.0"])
68
- s.add_dependency(%q<activerecord>, [">= 2.2.2"])
69
- end
70
- end
23
+ s.add_development_dependency(%q<rake>, ["0.8.7"])
24
+ s.add_development_dependency('sqlite3', '~> 1.3.4')
25
+ s.add_development_dependency(%q<rspec>, ["~> 2.7.0"])
26
+ s.add_development_dependency(%q<appraisal>, [">= 0.4.0"])
71
27
 
28
+ end
@@ -0,0 +1,8 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "activesupport", "<3"
6
+ gem "activerecord", "<3"
7
+
8
+ gemspec :path=>"../"
@@ -0,0 +1,39 @@
1
+ PATH
2
+ remote: /Users/tom/Development/Projects/comma
3
+ specs:
4
+ comma (0.4.2)
5
+ fastercsv (= 1.5.4)
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ activerecord (2.3.14)
11
+ activesupport (= 2.3.14)
12
+ activesupport (2.3.14)
13
+ appraisal (0.4.0)
14
+ bundler
15
+ rake
16
+ diff-lcs (1.1.3)
17
+ fastercsv (1.5.4)
18
+ rake (0.8.7)
19
+ rspec (2.7.0)
20
+ rspec-core (~> 2.7.0)
21
+ rspec-expectations (~> 2.7.0)
22
+ rspec-mocks (~> 2.7.0)
23
+ rspec-core (2.7.1)
24
+ rspec-expectations (2.7.0)
25
+ diff-lcs (~> 1.1.2)
26
+ rspec-mocks (2.7.0)
27
+ sqlite3 (1.3.5)
28
+
29
+ PLATFORMS
30
+ ruby
31
+
32
+ DEPENDENCIES
33
+ activerecord (< 3)
34
+ activesupport (< 3)
35
+ appraisal (>= 0.4.0)
36
+ comma!
37
+ rake (= 0.8.7)
38
+ rspec (~> 2.7.0)
39
+ sqlite3 (~> 1.3.4)
@@ -0,0 +1,8 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "activesupport", ">3"
6
+ gem "activerecord", ">3"
7
+
8
+ gemspec :path=>"../"
@@ -0,0 +1,52 @@
1
+ PATH
2
+ remote: /Users/tom/Development/Projects/comma
3
+ specs:
4
+ comma (0.4.2)
5
+ fastercsv (= 1.5.4)
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ activemodel (3.1.3)
11
+ activesupport (= 3.1.3)
12
+ builder (~> 3.0.0)
13
+ i18n (~> 0.6)
14
+ activerecord (3.1.3)
15
+ activemodel (= 3.1.3)
16
+ activesupport (= 3.1.3)
17
+ arel (~> 2.2.1)
18
+ tzinfo (~> 0.3.29)
19
+ activesupport (3.1.3)
20
+ multi_json (~> 1.0)
21
+ appraisal (0.4.0)
22
+ bundler
23
+ rake
24
+ arel (2.2.1)
25
+ builder (3.0.0)
26
+ diff-lcs (1.1.3)
27
+ fastercsv (1.5.4)
28
+ i18n (0.6.0)
29
+ multi_json (1.0.4)
30
+ rake (0.8.7)
31
+ rspec (2.7.0)
32
+ rspec-core (~> 2.7.0)
33
+ rspec-expectations (~> 2.7.0)
34
+ rspec-mocks (~> 2.7.0)
35
+ rspec-core (2.7.1)
36
+ rspec-expectations (2.7.0)
37
+ diff-lcs (~> 1.1.2)
38
+ rspec-mocks (2.7.0)
39
+ sqlite3 (1.3.5)
40
+ tzinfo (0.3.31)
41
+
42
+ PLATFORMS
43
+ ruby
44
+
45
+ DEPENDENCIES
46
+ activerecord (> 3)
47
+ activesupport (> 3)
48
+ appraisal (>= 0.4.0)
49
+ comma!
50
+ rake (= 0.8.7)
51
+ rspec (~> 2.7.0)
52
+ sqlite3 (~> 1.3.4)
data/lib/comma.rb CHANGED
@@ -1,40 +1,52 @@
1
- # conditional loading of activesupport
2
- if defined? Rails and (Rails.version.split('.').map(&:to_i) <=> [2,3,5]) < 0
3
- require 'activesupport'
4
- else
5
- require 'active_support/core_ext/class/inheritable_attributes'
6
- end
7
-
8
1
  # load the right csv library
9
2
  if RUBY_VERSION >= '1.9'
10
3
  require 'csv'
11
- FasterCSV = CSV
4
+ CSV_HANDLER = CSV
12
5
  else
13
6
  begin
14
7
  # try faster csv
15
8
  require 'fastercsv'
9
+ CSV_HANDLER = FasterCSV
16
10
  rescue Exception => e
11
+ fail_message = "FasterCSV not installed, please `gem install fastercsv` for faster processing"
17
12
  if defined? Rails
18
- Rails.logger.info "FasterCSV not installed, falling back on CSV"
13
+ Rails.logger.info fail_message
19
14
  else
20
- puts "FasterCSV not installed, falling back on CSV"
15
+ puts fail_message
21
16
  end
22
17
  require 'csv'
23
- FasterCSV = CSV
18
+ CSV_HANDLER = CSV
24
19
  end
25
20
  end
26
21
 
22
+ #TODO : Rails 2.3.x Deprecation
23
+ # conditional loading of activesupport
24
+ if defined? Rails and (Rails.version.split('.').map(&:to_i) <=> [2,3,5]) < 0
25
+ require 'activesupport'
26
+ else
27
+ require 'active_support/core_ext/class/inheritable_attributes'
28
+ end
29
+
30
+ if defined?(ActiveRecord)
31
+ require 'comma/association_proxy'
32
+
33
+ #TODO : Rails 2.3.x Deprecation
34
+ if defined?(ActiveRecord::Relation)
35
+ #Rails 3.x relations
36
+ require 'comma/relation'
37
+ elsif defined?(ActiveRecord::NamedScope::Scope)
38
+ #Rails 2.x scoping
39
+ require 'comma/named_scope'
40
+ end
41
+
42
+ end
43
+
27
44
  require 'comma/extractors'
28
45
  require 'comma/generator'
29
46
  require 'comma/array'
30
47
  require 'comma/object'
31
48
  require 'comma/render_as_csv'
32
49
 
33
- if defined?(ActiveRecord)
34
- require 'comma/named_scope'
35
- require 'comma/association_proxy'
36
- end
37
-
38
50
  if defined?(RenderAsCSV) && defined?(ActionController)
39
51
  ActionController::Base.send :include, RenderAsCSV
40
52
  end
@@ -1,3 +1,4 @@
1
+ #TODO : Rails 2.3.x Deprecation
1
2
  class ActiveRecord::Associations::AssociationProxy
2
3
  def to_comma(style = :default)
3
4
  #Bug in Rails 2.3.5, this is a workaround as association_proxy.rb doesn't pass the &block in the send method so it silently fails
@@ -16,19 +16,19 @@ module Comma
16
16
 
17
17
  def run(iterator_method)
18
18
  if @filename
19
- FasterCSV.open(@filename, 'w', @options){ |csv| append_csv(csv, iterator_method) } and return true
19
+ CSV_HANDLER.open(@filename, 'w', @options){ |csv| append_csv(csv, iterator_method) } and return true
20
20
  else
21
- FasterCSV.generate(@options){ |csv| append_csv(csv, iterator_method) }
21
+ CSV_HANDLER.generate(@options){ |csv| append_csv(csv, iterator_method) }
22
22
  end
23
23
  end
24
24
 
25
25
  private
26
+
26
27
  def append_csv(csv, iterator_method)
27
28
  return '' if @instance.empty?
28
29
  unless @options.has_key?(:write_headers) && !@options[:write_headers]
29
30
  csv << @instance.first.to_comma_headers(@style)
30
31
  end
31
-
32
32
  @instance.send(iterator_method) do |object|
33
33
  csv << object.to_comma(@style)
34
34
  end
@@ -1,3 +1,4 @@
1
+ #TODO : Rails 2.3.x Deprecations
1
2
  class ActiveRecord::NamedScope::Scope
2
3
  def to_comma(style = :default)
3
4
  Comma::Generator.new(self, style).run(:find_each)
data/lib/comma/object.rb CHANGED
@@ -1,5 +1,11 @@
1
1
  class Object
2
- class_inheritable_accessor :comma_formats
2
+ if Class.respond_to?(:class_attribute)
3
+ class_attribute :comma_formats
4
+ else
5
+ #TODO : Rails 2.3.x Deprecation
6
+ #Deprecated method for class accessors - Maintained for those still on Rails 2.3.x
7
+ class_inheritable_accessor :comma_formats
8
+ end
3
9
 
4
10
  def self.comma(style = :default, &block)
5
11
  (self.comma_formats ||= {})[style] = block
@@ -0,0 +1,5 @@
1
+ class ActiveRecord::Relation
2
+ def to_comma(style = :default)
3
+ Comma::Generator.new(self, style).run(:find_each)
4
+ end
5
+ end
@@ -33,6 +33,7 @@ else
33
33
 
34
34
  protected
35
35
 
36
+ #TODO : Rails 2.3.x Deprecation
36
37
  def render_stream(options)
37
38
  status = options[:status]
38
39
  content = options[:content]
@@ -41,14 +42,14 @@ else
41
42
  # If Rails 2.x
42
43
  if defined? Rails and (Rails.version.split('.').map(&:to_i) <=> [2,3,5]) < 0
43
44
  render :status => status, :text => Proc.new { |response, output|
44
- output.write FasterCSV.generate_line(content.first.to_comma_headers(style))
45
- content.each { |line| output.write FasterCSV.generate_line(line.to_comma(style)) }
45
+ output.write CSV_HANDLER.generate_line(content.first.to_comma_headers(style))
46
+ content.each { |line| output.write CSV_HANDLER.generate_line(line.to_comma(style)) }
46
47
  }
47
48
  else # If Rails 3.x
48
49
  self.status = status
49
50
  self.response_body = proc { |response, output|
50
- output.write FasterCSV.generate_line(content.first.to_comma_headers(style))
51
- content.each { |line| output.write FasterCSV.generate_line(line.to_comma(style)) }
51
+ output.write CSV_HANDLER.generate_line(content.first.to_comma_headers(style))
52
+ content.each { |line| output.write CSV_HANDLER.generate_line(line.to_comma(style)) }
52
53
  }
53
54
  end
54
55
  end
@@ -0,0 +1,3 @@
1
+ module Comma
2
+ VERSION = "0.5.2"
3
+ end
@@ -1,30 +1,37 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
2
 
3
3
  describe Comma, 'generating CSV from an ActiveRecord object' do
4
- before(:all) do
5
- class Person < ActiveRecord::Base
4
+
5
+ class Person < ActiveRecord::Base
6
+ #TODO : Rails 2.3.x Deprecation
7
+ if defined?(ActiveRecord::Relation)
8
+ #Rails 3.x
9
+ scope :teenagers, lambda { {:conditions => { :age => 13..19 }} }
10
+ else
11
+ #Rails 2.x
6
12
  named_scope :teenagers, :conditions => { :age => 13..19 }
7
- comma do
8
- name
9
- age
10
- end
11
13
  end
12
14
 
13
- require 'active_record/connection_adapters/abstract_adapter'
14
- Column = ActiveRecord::ConnectionAdapters::Column
15
+ comma do
16
+ name
17
+ age
18
+ end
19
+
15
20
  end
16
21
 
17
- before do
18
- Person.stub!(:columns).and_return [Column.new('age', 0, 'integer', false),
19
- Column.new('name', nil, 'string', false) ]
20
- Person.stub!(:table_exists?).and_return(true)
22
+ before(:all) do
23
+ #Setup AR model in memory
24
+ ActiveRecord::Base.connection.create_table :people, :force => true do |table|
25
+ table.column :name, :string
26
+ table.column :age, :integer
27
+ end
28
+ Person.reset_column_information
21
29
  end
22
30
 
23
- describe 'case' do
31
+ describe "case" do
24
32
  before do
25
- people = [ Person.new(:age => 18, :name => 'Junior') ]
26
- Person.stub!(:find_every).and_return people
27
- Person.stub!(:calculate).with(:count, :all, {}).and_return people.size
33
+ @person = Person.new(:age => 18, :name => 'Junior')
34
+ @person.save!
28
35
  end
29
36
 
30
37
  it 'should extend ActiveRecord::NamedScope::Scope to add a #to_comma method which will return CSV content for objects within the scope' do
@@ -201,12 +201,12 @@ describe Comma, 'to_comma data/headers object extensions' do
201
201
  header, foo = Array(@foo).to_comma.split("\n")
202
202
  header.should == ['Content', 'Truncated Content', 'Created at', 'Updated at', 'Created Custom Label', 'Updated at Custom Label'].join(',')
203
203
  end
204
-
204
+
205
205
  it 'should put headers in place when forced' do
206
206
  header, foo = Array(@foo).to_comma(:write_headers => true).split("\n")
207
207
  header.should == ['Content', 'Truncated Content', 'Created at', 'Updated at', 'Created Custom Label', 'Updated at Custom Label'].join(',')
208
208
  end
209
-
209
+
210
210
  it 'should not write headers if specified' do
211
211
  header, foo = Array(@foo).to_comma(:write_headers => false).split("\n")
212
212
  header.should == [@content, @content[0..10], @time.to_s(:db), @time.to_s(:db), @time.to_s(:short), @time.to_s(:short)].join(',')
data/spec/spec_helper.rb CHANGED
@@ -1,12 +1,15 @@
1
1
  require 'rubygems'
2
2
  require 'rspec'
3
3
  require 'active_record'
4
+
4
5
  ActiveRecord::ActiveRecordError # http://tinyurl.com/24f84gf
5
6
 
6
7
  $:.unshift(File.dirname(__FILE__) + '/../lib')
7
8
 
8
- require 'comma'
9
+ config = YAML::load(IO.read(File.dirname(__FILE__) + '/support/database.yml'))
10
+ ActiveRecord::Base.establish_connection(config['test'])
9
11
 
12
+ require 'comma'
10
13
 
11
14
  class Book
12
15
  attr_accessor :name, :description, :isbn
@@ -0,0 +1,4 @@
1
+ test:
2
+ adapter: sqlite3
3
+ database: ":memory:"
4
+
metadata CHANGED
@@ -1,116 +1,117 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: comma
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
5
- prerelease:
4
+ prerelease: false
6
5
  segments:
7
6
  - 0
8
- - 4
9
- - 3
10
- version: 0.4.3
7
+ - 5
8
+ - 2
9
+ version: 0.5.2
11
10
  platform: ruby
12
11
  authors:
13
12
  - Marcus Crafter
13
+ - Tom Meier
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-10-29 00:00:00 +11:00
18
+ date: 2012-02-18 00:00:00 +11:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- requirement: &id001 !ruby/object:Gem::Requirement
23
- none: false
22
+ version_requirements: &id001 !ruby/object:Gem::Requirement
24
23
  requirements:
25
- - - ">="
24
+ - - "="
26
25
  - !ruby/object:Gem::Version
27
- hash: 3
28
26
  segments:
29
- - 2
30
- - 2
31
- - 2
32
- version: 2.2.2
33
- name: activesupport
27
+ - 1
28
+ - 5
29
+ - 4
30
+ version: 1.5.4
31
+ requirement: *id001
32
+ name: fastercsv
34
33
  prerelease: false
35
- version_requirements: *id001
36
34
  type: :runtime
37
35
  - !ruby/object:Gem::Dependency
38
- requirement: &id002 !ruby/object:Gem::Requirement
39
- none: false
36
+ version_requirements: &id002 !ruby/object:Gem::Requirement
40
37
  requirements:
41
- - - ">="
38
+ - - "="
42
39
  - !ruby/object:Gem::Version
43
- hash: 3
44
40
  segments:
45
41
  - 0
46
- version: "0"
47
- name: fastercsv
42
+ - 8
43
+ - 7
44
+ version: 0.8.7
45
+ requirement: *id002
46
+ name: rake
48
47
  prerelease: false
49
- version_requirements: *id002
50
- type: :runtime
48
+ type: :development
51
49
  - !ruby/object:Gem::Dependency
52
- requirement: &id003 !ruby/object:Gem::Requirement
53
- none: false
50
+ version_requirements: &id003 !ruby/object:Gem::Requirement
54
51
  requirements:
55
52
  - - ~>
56
53
  - !ruby/object:Gem::Version
57
- hash: 3
58
54
  segments:
59
55
  - 1
60
- - 6
61
- version: "1.6"
62
- name: jeweler
56
+ - 3
57
+ - 4
58
+ version: 1.3.4
59
+ requirement: *id003
60
+ name: sqlite3
63
61
  prerelease: false
64
- version_requirements: *id003
65
62
  type: :development
66
63
  - !ruby/object:Gem::Dependency
67
- requirement: &id004 !ruby/object:Gem::Requirement
68
- none: false
64
+ version_requirements: &id004 !ruby/object:Gem::Requirement
69
65
  requirements:
70
66
  - - ~>
71
67
  - !ruby/object:Gem::Version
72
- hash: 3
73
68
  segments:
74
69
  - 2
75
- - 3
70
+ - 7
76
71
  - 0
77
- version: 2.3.0
72
+ version: 2.7.0
73
+ requirement: *id004
78
74
  name: rspec
79
75
  prerelease: false
80
- version_requirements: *id004
81
76
  type: :development
82
77
  - !ruby/object:Gem::Dependency
83
- requirement: &id005 !ruby/object:Gem::Requirement
84
- none: false
78
+ version_requirements: &id005 !ruby/object:Gem::Requirement
85
79
  requirements:
86
80
  - - ">="
87
81
  - !ruby/object:Gem::Version
88
- hash: 3
89
82
  segments:
90
- - 2
91
- - 2
92
- - 2
93
- version: 2.2.2
94
- name: activerecord
83
+ - 0
84
+ - 4
85
+ - 0
86
+ version: 0.4.0
87
+ requirement: *id005
88
+ name: appraisal
95
89
  prerelease: false
96
- version_requirements: *id005
97
90
  type: :development
98
91
  description: Ruby Comma Seperated Values generation library
99
- email: crafterm@redartisan.com
92
+ email:
93
+ - crafterm@redartisan.com
94
+ - tom@venombytes.com
100
95
  executables: []
101
96
 
102
97
  extensions: []
103
98
 
104
- extra_rdoc_files:
105
- - README.rdoc
99
+ extra_rdoc_files: []
100
+
106
101
  files:
102
+ - .gitignore
103
+ - .rvmrc
104
+ - Appraisals
107
105
  - Gemfile
108
106
  - Gemfile.lock
109
107
  - MIT-LICENSE
110
108
  - README.rdoc
111
109
  - Rakefile
112
- - VERSION
113
110
  - comma.gemspec
111
+ - gemfiles/activesupport2.gemfile
112
+ - gemfiles/activesupport2.gemfile.lock
113
+ - gemfiles/activesupport3.gemfile
114
+ - gemfiles/activesupport3.gemfile.lock
114
115
  - init.rb
115
116
  - lib/comma.rb
116
117
  - lib/comma/array.rb
@@ -119,12 +120,15 @@ files:
119
120
  - lib/comma/generator.rb
120
121
  - lib/comma/named_scope.rb
121
122
  - lib/comma/object.rb
123
+ - lib/comma/relation.rb
122
124
  - lib/comma/render_as_csv.rb
125
+ - lib/comma/version.rb
123
126
  - spec/comma/ar_spec.rb
124
127
  - spec/comma/comma_spec.rb
125
128
  - spec/comma/extractors_spec.rb
126
129
  - spec/spec.opts
127
130
  - spec/spec_helper.rb
131
+ - spec/support/database.yml
128
132
  has_rdoc: true
129
133
  homepage: http://github.com/crafterm/comma
130
134
  licenses: []
@@ -135,29 +139,30 @@ rdoc_options: []
135
139
  require_paths:
136
140
  - lib
137
141
  required_ruby_version: !ruby/object:Gem::Requirement
138
- none: false
139
142
  requirements:
140
143
  - - ">="
141
144
  - !ruby/object:Gem::Version
142
- hash: 3
143
145
  segments:
144
146
  - 0
145
147
  version: "0"
146
148
  required_rubygems_version: !ruby/object:Gem::Requirement
147
- none: false
148
149
  requirements:
149
150
  - - ">="
150
151
  - !ruby/object:Gem::Version
151
- hash: 3
152
152
  segments:
153
153
  - 0
154
154
  version: "0"
155
155
  requirements: []
156
156
 
157
157
  rubyforge_project: comma
158
- rubygems_version: 1.4.2
158
+ rubygems_version: 1.3.6
159
159
  signing_key:
160
160
  specification_version: 3
161
161
  summary: Ruby Comma Seperated Values generation library
162
- test_files: []
163
-
162
+ test_files:
163
+ - spec/comma/ar_spec.rb
164
+ - spec/comma/comma_spec.rb
165
+ - spec/comma/extractors_spec.rb
166
+ - spec/spec.opts
167
+ - spec/spec_helper.rb
168
+ - spec/support/database.yml
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.4.3