drudgery 0.0.1 → 0.0.2

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