drudgery 0.0.1 → 0.0.2

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/lib/drudgery/job.rb CHANGED
@@ -13,7 +13,11 @@ module Drudgery
13
13
  end
14
14
 
15
15
  def extract(type, *args)
16
- @extractor = Drudgery::Extractors.instantiate(type, *args)
16
+ extractor = Drudgery::Extractors.instantiate(type, *args)
17
+
18
+ yield extractor if block_given?
19
+
20
+ @extractor = extractor
17
21
  end
18
22
 
19
23
  def transform(&processor)
@@ -21,7 +25,11 @@ module Drudgery
21
25
  end
22
26
 
23
27
  def load(type, *args)
24
- @loader = Drudgery::Loaders.instantiate(type, *args)
28
+ loader = Drudgery::Loaders.instantiate(type, *args)
29
+
30
+ yield loader if block_given?
31
+
32
+ @loader = loader
25
33
  end
26
34
 
27
35
  def perform
@@ -1,3 +1,3 @@
1
1
  module Drudgery
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
@@ -48,6 +48,18 @@ describe Drudgery::Job do
48
48
  job.extract(:csv, 'filename.csv', :col_sep => '|')
49
49
  end
50
50
 
51
+ it 'yields extractor if block_given' do
52
+ extractor = mock
53
+ extractor.expects(:col_sep).with('|')
54
+
55
+ Drudgery::Extractors.stubs(:instantiate).returns(extractor)
56
+
57
+ job = Drudgery::Job.new
58
+ job.extract(:csv, 'filename.csv') do |extractor|
59
+ extractor.col_sep '|'
60
+ end
61
+ end
62
+
51
63
  it 'sets extractor' do
52
64
  extractor = mock
53
65
 
@@ -88,6 +100,18 @@ describe Drudgery::Job do
88
100
  job.load(:sqlite3, 'db.sqlite3', 'tablename')
89
101
  end
90
102
 
103
+ it 'yields loader if block_given' do
104
+ loader = mock
105
+ loader.expects(:select).with('a', 'b', 'c')
106
+
107
+ Drudgery::Loaders.stubs(:instantiate).with(:sqlite3, 'db.sqlite3', 'tablename').returns(loader)
108
+
109
+ job = Drudgery::Job.new
110
+ job.load(:sqlite3, 'db.sqlite3', 'tablename') do |loader|
111
+ loader.select('a', 'b', 'c')
112
+ end
113
+ end
114
+
91
115
  it 'sets extractor' do
92
116
  loader = mock
93
117
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drudgery
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-02 00:00:00.000000000 Z
12
+ date: 2012-04-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70137906765960 !ruby/object:Gem::Requirement
16
+ requirement: &70334397325460 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70137906765960
24
+ version_requirements: *70334397325460
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &70137906765280 !ruby/object:Gem::Requirement
27
+ requirement: &70334397324780 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.1'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70137906765280
35
+ version_requirements: *70334397324780
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: mocha
38
- requirement: &70137906764780 !ruby/object:Gem::Requirement
38
+ requirement: &70334397324280 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0.10'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70137906764780
46
+ version_requirements: *70334397324280
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: simplecov
49
- requirement: &70137906764200 !ruby/object:Gem::Requirement
49
+ requirement: &70334397323700 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0.6'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70137906764200
57
+ version_requirements: *70334397323700
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: guard-minitest
60
- requirement: &70137906763580 !ruby/object:Gem::Requirement
60
+ requirement: &70334397323080 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0.5'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70137906763580
68
+ version_requirements: *70334397323080
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: activerecord
71
- requirement: &70137906762940 !ruby/object:Gem::Requirement
71
+ requirement: &70334397322440 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '3.0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70137906762940
79
+ version_requirements: *70334397322440
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: activerecord-import
82
- requirement: &70137906762200 !ruby/object:Gem::Requirement
82
+ requirement: &70334397321700 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 0.2.9
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70137906762200
90
+ version_requirements: *70334397321700
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: sqlite3
93
- requirement: &70137906761580 !ruby/object:Gem::Requirement
93
+ requirement: &70334397321080 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,8 +98,9 @@ dependencies:
98
98
  version: '1.3'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70137906761580
102
- description: Currently supports CSV, SQLite3, and ActiveRecord sources and destinations.
101
+ version_requirements: *70334397321080
102
+ description: A simple ETL library that supports CSV, SQLite3, and ActiveRecord sources
103
+ and destinations.
103
104
  email:
104
105
  - jisraelsen@gmail.com
105
106
  executables: []