easyio 0.2.0 → 0.3.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/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gem "jeweler"
data/LICENSE CHANGED
@@ -1,5 +1,3 @@
1
- Copyright (c) 2009 Steve
2
-
3
1
  Permission is hereby granted, free of charge, to any person obtaining
4
2
  a copy of this software and associated documentation files (the
5
3
  "Software"), to deal in the Software without restriction, including
data/README.rdoc CHANGED
@@ -1,6 +1,8 @@
1
1
  = easyio
2
2
 
3
- Description goes here.
3
+ A simple library for making working with CSV files slightly easier by wrapping up default options and providing a few simple helper methods.
4
+
5
+ Note: Version 0.3 and above require Ruby 1.9+, for 1.8 compatibility use Version 0.2
4
6
 
5
7
  == Note on Patches/Pull Requests
6
8
 
@@ -12,7 +14,3 @@ Description goes here.
12
14
  (if you want to have your own version, that is fine but
13
15
  bump version in a commit by itself I can ignore when I pull)
14
16
  * Send me a pull request. Bonus points for topic branches.
15
-
16
- == Copyright
17
-
18
- Copyright (c) 2009 Steve. See LICENSE for details.
data/Rakefile CHANGED
@@ -10,9 +10,7 @@ begin
10
10
  gem.email = "steve.eichert@gmail.com"
11
11
  gem.homepage = "http://github.com/eichert12/easyio"
12
12
  gem.authors = ["Steve Eichert"]
13
- gem.add_runtime_dependency "fastercsv", ">= 1.5.0"
14
13
  gem.add_runtime_dependency "aws-s3", ">= 0.6.2"
15
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
14
  end
17
15
  Jeweler::GemcutterTasks.new
18
16
  rescue LoadError
@@ -39,11 +37,9 @@ rescue LoadError
39
37
  end
40
38
  end
41
39
 
42
- task :test => :check_dependencies
43
-
44
40
  task :default => :test
45
41
 
46
- require 'rake/rdoctask'
42
+ require 'rdoc/task'
47
43
  Rake::RDocTask.new do |rdoc|
48
44
  version = File.exist?('VERSION') ? File.read('VERSION') : ""
49
45
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.3.0
data/easyio.gemspec CHANGED
@@ -1,56 +1,50 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{easyio}
8
- s.version = "0.2.0"
7
+ s.name = "easyio"
8
+ s.version = "0.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Steve Eichert"]
12
- s.date = %q{2010-10-26}
13
- s.description = %q{A gem for making IO tasks easy (at least for me)}
14
- s.email = %q{steve.eichert@gmail.com}
12
+ s.date = "2012-01-04"
13
+ s.description = "A gem for making IO tasks easy (at least for me)"
14
+ s.email = "steve.eichert@gmail.com"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
- "README.rdoc"
17
+ "README.rdoc"
18
18
  ]
19
19
  s.files = [
20
20
  ".document",
21
- ".gitignore",
22
- "LICENSE",
23
- "README.rdoc",
24
- "Rakefile",
25
- "VERSION",
26
- "easyio.gemspec",
27
- "lib/easyio.rb",
28
- "test/helper.rb",
29
- "test/test_easyio.rb"
30
- ]
31
- s.homepage = %q{http://github.com/eichert12/easyio}
32
- s.rdoc_options = ["--charset=UTF-8"]
33
- s.require_paths = ["lib"]
34
- s.rubygems_version = %q{1.3.7}
35
- s.summary = %q{A gem for making IO tasks easy (at least for me)}
36
- s.test_files = [
21
+ "Gemfile",
22
+ "LICENSE",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "easyio.gemspec",
27
+ "lib/easyio.rb",
37
28
  "test/helper.rb",
38
- "test/test_easyio.rb"
29
+ "test/test_easyio.rb"
39
30
  ]
31
+ s.homepage = "http://github.com/eichert12/easyio"
32
+ s.require_paths = ["lib"]
33
+ s.rubygems_version = "1.8.13"
34
+ s.summary = "A gem for making IO tasks easy (at least for me)"
40
35
 
41
36
  if s.respond_to? :specification_version then
42
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
43
37
  s.specification_version = 3
44
38
 
45
39
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
46
- s.add_runtime_dependency(%q<fastercsv>, [">= 1.5.0"])
40
+ s.add_runtime_dependency(%q<jeweler>, [">= 0"])
47
41
  s.add_runtime_dependency(%q<aws-s3>, [">= 0.6.2"])
48
42
  else
49
- s.add_dependency(%q<fastercsv>, [">= 1.5.0"])
43
+ s.add_dependency(%q<jeweler>, [">= 0"])
50
44
  s.add_dependency(%q<aws-s3>, [">= 0.6.2"])
51
45
  end
52
46
  else
53
- s.add_dependency(%q<fastercsv>, [">= 1.5.0"])
47
+ s.add_dependency(%q<jeweler>, [">= 0"])
54
48
  s.add_dependency(%q<aws-s3>, [">= 0.6.2"])
55
49
  end
56
50
  end
data/lib/easyio.rb CHANGED
@@ -1,8 +1,8 @@
1
- require 'fastercsv'
1
+ require 'csv'
2
2
 
3
3
  class EasyIO
4
4
  DefaultOptions = { :col_sep => ",", :headers => true, :header_converters => :symbol }
5
- DefaultSource = defined?(RAILS_ENV) && RAILS_ENV == "production" ? :s3 : :file_system
5
+ DefaultSource = defined?(Rails.env) && Rails.env == "production" ? :s3 : :file_system
6
6
 
7
7
  def self.default_s3_bucket(bucket)
8
8
  @default_bucket = bucket
@@ -13,11 +13,11 @@ class EasyIO
13
13
  end
14
14
 
15
15
  def self.write_csv(file)
16
- FasterCSV.open(file, "w") { |csv| yield csv }
16
+ CSV.open(file, "w") { |csv| yield csv }
17
17
  end
18
18
 
19
19
  def self.open_csv(file, options = {})
20
- FasterCSV.open(file, default_options(options)) { |csv| yield csv }
20
+ CSV.open(file, default_options(options)) { |csv| yield csv }
21
21
  end
22
22
 
23
23
  def self.file_source(options = {})
@@ -31,7 +31,7 @@ class EasyIO
31
31
  url = AWS::S3::S3Object.url_for(file, get_s3_bucket(options))
32
32
  open(url) do |f|
33
33
  f.each_line do |line|
34
- FasterCSV.parse(line, default_options(options)) do |row|
34
+ CSV.parse(line, default_options(options)) do |row|
35
35
  yield row
36
36
  end
37
37
  end
@@ -46,7 +46,7 @@ class EasyIO
46
46
  end
47
47
 
48
48
  def self.parse(string, options = {})
49
- FasterCSV.parse(string, default_options(options)) do |row|
49
+ CSV.parse(string, default_options(options)) do |row|
50
50
  yield row
51
51
  end
52
52
  end
data/test/helper.rb CHANGED
@@ -1,10 +1,32 @@
1
1
  require 'rubygems'
2
- require 'test/unit'
3
- require 'shoulda'
2
+ require 'bundler'
3
+ Bundler.setup(:default, :test)
4
+ Bundler.require(:default, :test)
4
5
 
5
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
6
- $LOAD_PATH.unshift(File.dirname(__FILE__))
7
- require 'easyio'
6
+ dir = File.dirname(File.expand_path(__FILE__))
7
+ $LOAD_PATH.unshift dir + '/../lib'
8
+ $TESTING = true
9
+ require 'test/unit'
8
10
 
9
- class Test::Unit::TestCase
10
- end
11
+ ##
12
+ # test/spec/mini 3
13
+ # http://gist.github.com/25455
14
+ # chris@ozmm.org
15
+ #
16
+ def context(*args, &block)
17
+ return super unless (name = args.first) && block
18
+ require 'test/unit'
19
+ klass = Class.new(defined?(ActiveSupport::TestCase) ? ActiveSupport::TestCase : Test::Unit::TestCase) do
20
+ def self.test(name, &block)
21
+ define_method("test_#{name.gsub(/\W/,'_')}", &block) if block
22
+ end
23
+ def self.xtest(*args) end
24
+ def self.setup(&block) define_method(:setup, &block) end
25
+ def self.teardown(&block) define_method(:teardown, &block) end
26
+ end
27
+ (class << klass; self end).send(:define_method, :name) { name.gsub(/\W/,'_') }
28
+ klass.class_eval &block
29
+
30
+ # XXX: In 1.8.x, not all tests will run unless anonymous classes are kept in scope.
31
+ ($test_classes ||= []) << klass
32
+ end
data/test/test_easyio.rb CHANGED
@@ -1,40 +1,39 @@
1
1
  require 'helper'
2
+ require 'easyio'
2
3
 
3
- class TestEasyio < Test::Unit::TestCase
4
- context "file_source" do
5
- should "use file system when running in development" do
6
- assert_equal EasyIO.file_source, :file_system
7
- end
4
+ context "file_source" do
5
+ test "use file system when running in development" do
6
+ assert_equal EasyIO.file_source, :file_system
7
+ end
8
8
 
9
- should "use provided source when specified in options" do
10
- assert_equal EasyIO.file_source(:source => :foo), :foo
11
- end
9
+ test "use provided source when specified in options" do
10
+ assert_equal EasyIO.file_source(:source => :foo), :foo
12
11
  end
13
-
14
- context "get_s3_bucket" do
15
- should "get bucket from options when available" do
16
- assert_equal EasyIO.get_s3_bucket(:bucket => "my-awesome-bucket"), "my-awesome-bucket"
17
- end
12
+ end
18
13
 
19
- should "use bucket from options before default bucket" do
20
- EasyIO.default_s3_bucket "foobar"
21
- assert_equal EasyIO.get_s3_bucket(:bucket => "my-awesome-bucket"), "my-awesome-bucket"
22
- end
14
+ context "get_s3_bucket" do
15
+ test "get bucket from options when available" do
16
+ assert_equal EasyIO.get_s3_bucket(:bucket => "my-awesome-bucket"), "my-awesome-bucket"
17
+ end
23
18
 
24
- should "get use default_s3_bucket when set" do
25
- EasyIO.default_s3_bucket "foobar"
26
- assert_equal EasyIO.get_s3_bucket, "foobar"
27
- end
19
+ test "use bucket from options before default bucket" do
20
+ EasyIO.default_s3_bucket "foobar"
21
+ assert_equal EasyIO.get_s3_bucket(:bucket => "my-awesome-bucket"), "my-awesome-bucket"
28
22
  end
29
23
 
30
- context "parse" do
31
- should "yield each row" do
32
- csv = "first,second,third\n1,2,3"
33
- EasyIO.parse(csv) do |row|
34
- assert_equal row[:first], "1"
35
- assert_equal row[:second], "2"
36
- assert_equal row[:third], "3"
37
- end
24
+ test "get use default_s3_bucket when set" do
25
+ EasyIO.default_s3_bucket "foobar"
26
+ assert_equal EasyIO.get_s3_bucket, "foobar"
27
+ end
28
+ end
29
+
30
+ context "parse" do
31
+ test "yield each row" do
32
+ csv = "first,second,third\n1,2,3"
33
+ EasyIO.parse(csv) do |row|
34
+ assert_equal row[:first], "1"
35
+ assert_equal row[:second], "2"
36
+ assert_equal row[:third], "3"
38
37
  end
39
38
  end
40
39
  end
metadata CHANGED
@@ -1,67 +1,48 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: easyio
3
- version: !ruby/object:Gem::Version
4
- hash: 23
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 2
9
- - 0
10
- version: 0.2.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Steve Eichert
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2010-10-26 00:00:00 -04:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- name: fastercsv
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
12
+ date: 2012-01-04 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: jeweler
16
+ requirement: &2164537200 !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 1
32
- - 5
33
- - 0
34
- version: 1.5.0
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
35
22
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: aws-s3
39
23
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *2164537200
25
+ - !ruby/object:Gem::Dependency
26
+ name: aws-s3
27
+ requirement: &2164534060 !ruby/object:Gem::Requirement
41
28
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 3
46
- segments:
47
- - 0
48
- - 6
49
- - 2
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
50
32
  version: 0.6.2
51
33
  type: :runtime
52
- version_requirements: *id002
34
+ prerelease: false
35
+ version_requirements: *2164534060
53
36
  description: A gem for making IO tasks easy (at least for me)
54
37
  email: steve.eichert@gmail.com
55
38
  executables: []
56
-
57
39
  extensions: []
58
-
59
- extra_rdoc_files:
40
+ extra_rdoc_files:
60
41
  - LICENSE
61
42
  - README.rdoc
62
- files:
43
+ files:
63
44
  - .document
64
- - .gitignore
45
+ - Gemfile
65
46
  - LICENSE
66
47
  - README.rdoc
67
48
  - Rakefile
@@ -70,40 +51,31 @@ files:
70
51
  - lib/easyio.rb
71
52
  - test/helper.rb
72
53
  - test/test_easyio.rb
73
- has_rdoc: true
74
54
  homepage: http://github.com/eichert12/easyio
75
55
  licenses: []
76
-
77
56
  post_install_message:
78
- rdoc_options:
79
- - --charset=UTF-8
80
- require_paths:
57
+ rdoc_options: []
58
+ require_paths:
81
59
  - lib
82
- required_ruby_version: !ruby/object:Gem::Requirement
60
+ required_ruby_version: !ruby/object:Gem::Requirement
83
61
  none: false
84
- requirements:
85
- - - ">="
86
- - !ruby/object:Gem::Version
87
- hash: 3
88
- segments:
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ segments:
89
67
  - 0
90
- version: "0"
91
- required_rubygems_version: !ruby/object:Gem::Requirement
68
+ hash: 727100122824216758
69
+ required_rubygems_version: !ruby/object:Gem::Requirement
92
70
  none: false
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- hash: 3
97
- segments:
98
- - 0
99
- version: "0"
71
+ requirements:
72
+ - - ! '>='
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
100
75
  requirements: []
101
-
102
76
  rubyforge_project:
103
- rubygems_version: 1.3.7
77
+ rubygems_version: 1.8.13
104
78
  signing_key:
105
79
  specification_version: 3
106
80
  summary: A gem for making IO tasks easy (at least for me)
107
- test_files:
108
- - test/helper.rb
109
- - test/test_easyio.rb
81
+ test_files: []
data/.gitignore DELETED
@@ -1,24 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## RubyMine
5
- .idea/*
6
-
7
- ## TEXTMATE
8
- *.tmproj
9
- tmtags
10
-
11
- ## EMACS
12
- *~
13
- \#*
14
- .\#*
15
-
16
- ## VIM
17
- *.swp
18
-
19
- ## PROJECT::GENERAL
20
- coverage
21
- rdoc
22
- pkg
23
-
24
- ## PROJECT::SPECIFIC