ingestor 0.1.1

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/samples/books.xml ADDED
@@ -0,0 +1,32 @@
1
+ <?xml version="1.0"?>
2
+ <catalog>
3
+ <book id="bk101">
4
+ <author>Gambardella, Matthew</author>
5
+ <title>XML Developer's Guide</title>
6
+ <genre>Computer</genre>
7
+ <price>44.95</price>
8
+ <publish_date>2000-10-01</publish_date>
9
+ <description>An in-depth look at creating applications
10
+ with XML.</description>
11
+ </book>
12
+ <book id="bk102">
13
+ <author>Ralls, Kim</author>
14
+ <title>Midnight Rain</title>
15
+ <genre>Fantasy</genre>
16
+ <price>5.95</price>
17
+ <publish_date>2000-12-16</publish_date>
18
+ <description>A former architect battles corporate zombies,
19
+ an evil sorceress, and her own childhood to become queen
20
+ of the world.</description>
21
+ </book>
22
+ <book id="bk103">
23
+ <author>Corets, Eva</author>
24
+ <title>Maeve Ascendant</title>
25
+ <genre>Fantasy</genre>
26
+ <price>5.95</price>
27
+ <publish_date>2000-11-17</publish_date>
28
+ <description>After the collapse of a nanotechnology
29
+ society in England, the young survivors lay the
30
+ foundation for a new society.</description>
31
+ </book>
32
+ </catalog>
@@ -0,0 +1,30 @@
1
+ [
2
+ {
3
+ "color": "red",
4
+ "value": "#f00"
5
+ },
6
+ {
7
+ "color": "green",
8
+ "value": "#0f0"
9
+ },
10
+ {
11
+ "color": "blue",
12
+ "value": "#00f"
13
+ },
14
+ {
15
+ "color": "cyan",
16
+ "value": "#0ff"
17
+ },
18
+ {
19
+ "color": "magenta",
20
+ "value": "#f0f"
21
+ },
22
+ {
23
+ "color": "yellow",
24
+ "value": "#ff0"
25
+ },
26
+ {
27
+ "color": "black",
28
+ "value": "#000"
29
+ }
30
+ ]
data/samples/flags.txt ADDED
@@ -0,0 +1,12 @@
1
+ Country|Colors|Count|Secrets
2
+ El Salvador|blue,white|2|great at hand stands
3
+ Finland|blue,white|2|secret inventors of the macarena
4
+ Ukraine|blue,yellow|2|break dancing masters
5
+ United States|red,white,blue|3|cheese burgers
6
+ Australia|red,white,blue|3|sunburn magic powers
7
+ Fiji|red,white,blue|3|scrumptius water
8
+ Norway|red,white,blue|3|dah its cold
9
+ Canada|red,white|2|eh its cold
10
+ Japan|red,white|2|gukkon
11
+ China|red,yellow|2|only first world when you're looking
12
+ Germany|red,yellow,black|3|fat steamy wieners
@@ -0,0 +1,26 @@
1
+ {"people":
2
+ [
3
+ {
4
+ "firstName": "John",
5
+ "lastName": "Smith",
6
+ "age": 25,
7
+ "address": {
8
+ "streetAddress": "21 2nd Street",
9
+ "city": "New York",
10
+ "state": "NY",
11
+ "postalCode": 10021
12
+ }
13
+ },
14
+ {
15
+ "firstName": "John",
16
+ "lastName": "Smith",
17
+ "age": 25,
18
+ "address": {
19
+ "streetAddress": "21 2nd Street",
20
+ "city": "New York",
21
+ "state": "NY",
22
+ "postalCode": 10021
23
+ }
24
+ }
25
+ ]
26
+ }
@@ -0,0 +1,186 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://www.ian.com/affiliatecenter/include/V2/ChainList.zip
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ accept:
11
+ - ! '*/*'
12
+ user-agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ date:
20
+ - Fri, 04 Jan 2013 02:04:05 GMT
21
+ server:
22
+ - Apache/2.2.3 (CentOS)
23
+ set-cookie:
24
+ - TLTSID=043E0BF65613105671A98F190BA94A70; Path=/; Domain=.ian.com
25
+ - TLTUID=043E0BF65613105671A98F190BA94A70; Path=/; Domain=.ian.com; Expires=Fri,
26
+ 04-01-2023 02:04:05 GMT
27
+ hostname:
28
+ - TWEB01
29
+ last-modified:
30
+ - Thu, 03 Jan 2013 04:15:09 GMT
31
+ accept-ranges:
32
+ - bytes
33
+ content-length:
34
+ - '6444'
35
+ content-type:
36
+ - application/zip
37
+ body:
38
+ encoding: ASCII-8BIT
39
+ string: !binary |-
40
+ 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
183
+ AAAA2xgAAAAA
184
+ http_version: '1.1'
185
+ recorded_at: Fri, 04 Jan 2013 02:04:05 GMT
186
+ recorded_with: VCR 2.3.0
@@ -0,0 +1,114 @@
1
+ require 'spec_helper'
2
+ describe Ingestor::Dsl do
3
+ before :each do
4
+ @dsl = Ingestor::Dsl.new
5
+ end
6
+ it 'should be able to set the file path' do
7
+ @dsl.file = "file.txt"
8
+ @dsl.instance_variable_get("@file").should == "file.txt"
9
+ end
10
+
11
+ it 'should not expect a header by default' do
12
+ @dsl.options[:includes_header].should be(false)
13
+ end
14
+
15
+ it 'should have a default working directory' do
16
+ @dsl.options[:working_directory].should eq('/tmp/ingestor')
17
+ end
18
+
19
+ it 'should be able to specify a working directory' do
20
+ @dsl.working_directory '/tmp/other'
21
+ @dsl.options[:working_directory].should eq('/tmp/other')
22
+ end
23
+
24
+ it 'should be able to set if a header line is included' do
25
+ @dsl.includes_header(true)
26
+ @dsl.options[:includes_header].should be(true)
27
+ @dsl.includes_header(false)
28
+ @dsl.options[:includes_header].should be(false)
29
+ end
30
+
31
+ it 'should be able to mark a file as compressed' do
32
+ @dsl.compressed(true)
33
+ @dsl.options[:compressed].should be(true)
34
+
35
+ @dsl.compressed(false)
36
+ @dsl.options[:compressed].should be(false)
37
+ end
38
+
39
+ it 'should be able to specify the parser' do
40
+ @dsl.parser( :plain_text )
41
+ @dsl.options[:parser].should == :plain_text
42
+ end
43
+
44
+ it 'should be able to pass a block that finds or initializes the AR object' do
45
+ @dsl.finder {|values| }
46
+ @dsl.options[:finder].should be_kind_of(Proc)
47
+ end
48
+
49
+ it 'should be able to override the record processor' do
50
+ @dsl.processor {|values,record| }
51
+ @dsl.options[:processor].should be_kind_of(Proc)
52
+ end
53
+ it 'should be able to set a before record processor block' do
54
+ @dsl.before {|values| }
55
+ @dsl.options[:before].should be_kind_of(Proc)
56
+ end
57
+ it 'should be able to set an after record processor block' do
58
+ @dsl.after {|record| }
59
+ @dsl.options[:after].should be_kind_of(Proc)
60
+ end
61
+
62
+ it 'should raise an exception if the arity is incorrect for finder' do
63
+ lambda{
64
+ @dsl.finder{}
65
+ }.should raise_exception(Ingestor::Dsl::InvalidBlockSpecification)
66
+ end
67
+
68
+ it 'should raise an exception if the arity is incorrect for processor' do
69
+ lambda{
70
+ @dsl.processor{}
71
+ }.should raise_exception(Ingestor::Dsl::InvalidBlockSpecification)
72
+ end
73
+
74
+ it 'should raise an exception if the arity is incorrect for before' do
75
+ lambda{
76
+ @dsl.before{}
77
+ }.should raise_exception(Ingestor::Dsl::InvalidBlockSpecification)
78
+ end
79
+
80
+ it 'should raise an exception if the arity is incorrect for after' do
81
+ lambda{
82
+ @dsl.after{}
83
+ }.should raise_exception(Ingestor::Dsl::InvalidBlockSpecification)
84
+ end
85
+
86
+ it 'should raise an exception if the arity is incorrect for map_attributes' do
87
+ lambda{
88
+ @dsl.map_attributes{}
89
+ }.should raise_exception(Ingestor::Dsl::InvalidBlockSpecification)
90
+ end
91
+
92
+ it 'should be able to map out columns' do
93
+ @dsl.map_attributes do |values|
94
+ {
95
+ :id => values[0],
96
+ :name => values[1],
97
+ :color => values[2]
98
+ }
99
+ end
100
+ @dsl.options[:map_attributes].call([1,'Hat','Blue'])[:name].should eq('Hat')
101
+ end
102
+
103
+ it 'should be able to construct an Ingestor::Proxy' do
104
+ @dsl.finder{|values| Country.new}
105
+ @dsl.map_attributes do |values|
106
+ {
107
+ :name => values[0],
108
+ :colors => values[1],
109
+ :count => values[2]
110
+ }
111
+ end
112
+ @dsl.build.should be_kind_of(Ingestor::Proxy)
113
+ end
114
+ end
@@ -0,0 +1,5 @@
1
+
2
+ # require 'spec_helper'
3
+ # describe Ingestor::Parser::Csv do
4
+ # pending 'write it'
5
+ # end
@@ -0,0 +1,5 @@
1
+
2
+ # require 'spec_helper'
3
+ # describe Ingestor::Parser::Json do
4
+ # pending 'write it'
5
+ # end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+ describe Ingestor::Parser::PlainText do
3
+ describe '#delimiter' do
4
+ before do
5
+ @parser = Ingestor::Parser::PlainText.new(nil,nil)
6
+ end
7
+
8
+ it 'should allow the delimiter to be changed' do
9
+ @parser.options({
10
+ delimiter: ','
11
+ })
12
+ @parser.send(:process_line,"Chicken,Cats,Dogs").should eq ['Chicken', 'Cats', 'Dogs']
13
+ end
14
+
15
+ it 'should be able to change the line processor' do
16
+ @parser.options({
17
+ line_processor: lambda{|line|
18
+ ['Something','Else']
19
+ }
20
+ })
21
+ @parser.send(:process_line,"Blue,3&4").should eq ['Something','Else']
22
+ end
23
+ end
24
+ end