easyio 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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