barnyard_harvester 0.0.3 → 0.0.5

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.
@@ -24,5 +24,6 @@ Gem::Specification.new do |gem|
24
24
  gem.add_runtime_dependency "crack"
25
25
  gem.add_runtime_dependency "json"
26
26
  gem.add_runtime_dependency "uuid"
27
-
27
+ gem.add_runtime_dependency "bson_ext", "= 1.6.0"
28
+ gem.add_runtime_dependency "mongo", "= 1.6.0"
28
29
  end
@@ -14,7 +14,7 @@ module BarnyardHarvester
14
14
 
15
15
  attr_reader :my_barn, :my_add_queue, :my_change_queue, :my_delete_queue
16
16
  attr_reader :add_count, :change_count, :delete_count, :source_count, :cache_count
17
- attr_reader :resque_enqueue, :redis_settings
17
+ attr_reader :redis_settings
18
18
  attr_reader :harvester_uuid, :backend, :crop_number
19
19
 
20
20
  def initialize(args)
@@ -27,6 +27,11 @@ module BarnyardHarvester
27
27
 
28
28
  @backend = args.fetch(:backend) { :redis }
29
29
 
30
+ if @backend == :mongodb
31
+ @mongodb_settings = args.fetch(:mongodb_settings) { raise "You must provide :mongodb_settings" }
32
+ end
33
+
34
+ require "barnyard_harvester/#{@backend.to_s}_helper" if File.exist? "barnyard_harvester/#{@backend.to_s}_helper"
30
35
  require "barnyard_harvester/#{@backend.to_s}_queue"
31
36
  require "barnyard_harvester/#{@backend.to_s}"
32
37
 
@@ -0,0 +1,141 @@
1
+ require "mongo"
2
+ require "crack"
3
+ require "json"
4
+ require "resque"
5
+ require "barnyard_harvester/mongodb_helper"
6
+
7
+ #
8
+ #require "lib/barnyard_harvester/mongodb_helper"
9
+
10
+ module BarnyardHarvester
11
+
12
+ class HarvesterLogs
13
+ @queue = :logs_harvester
14
+ end
15
+
16
+ DEFAULT_MONGO_SETTINGS = {
17
+ :host_list => "localhost:27017",
18
+ :collection => "test_collection",
19
+ :db => "test_db"
20
+ }
21
+
22
+ class Barn
23
+
24
+ def initialize(args)
25
+
26
+ @crop_number = args.fetch(:crop_number) { raise "You must provide :crop_number" }
27
+ @redis_settings = args.fetch(:redis_settings) { DEFAULT_REDIS_SETTINGS }
28
+ @mongodb_settings = args.fetch(:mongodb_settings) { MongoSettings }
29
+ @debug = args.fetch(:debug) { false }
30
+ @log = args.fetch(:logger) { Logger.new(STDOUT) }
31
+
32
+ @mongodb_settings.fetch(:db) { raise "You must provide :db" }
33
+ @mongodb_settings.fetch(:collection) { raise "You must provide :collection" }
34
+
35
+ @redis_settings.delete(:db)
36
+ Resque.redis = Redis.new(@redis_settings)
37
+
38
+ @mongodb_settings[:debug] = @debug
39
+ @mongodb_settings[:logger] = @log
40
+
41
+ @mongo = BarnyardHarvester::MongoDbHelper.connect @mongodb_settings
42
+
43
+ @collection_name = @mongodb_settings[:collection]
44
+ @collection = @mongo.collection(@mongodb_settings[:collection])
45
+
46
+ @collection
47
+ end
48
+
49
+ def log_run(harvester_uuid, crop_number, began_at, ended_at, source_count, change_count, add_count, delete_count)
50
+
51
+ begin
52
+ Resque.enqueue(HarvesterLogs, Time.now, harvester_uuid, crop_number, began_at, ended_at, source_count, change_count, add_count, delete_count)
53
+ rescue Exception => e
54
+ logger.fatal "#{self.class} Fail in Resque.enqueue of HarvesterLogs. #{e.backtrace}"
55
+ end
56
+
57
+ end
58
+
59
+ def delete(primary_key)
60
+ check_key primary_key
61
+
62
+ value = @collection.find "_id" => primary_key # Save the value
63
+
64
+ @collection.remove("_id" => primary_key)
65
+
66
+ value.to_json # Return the object
67
+ end
68
+
69
+ def []= primary_key, object
70
+ check_key primary_key
71
+ check_object object
72
+
73
+ obj = Crack::JSON.parse object.to_json
74
+
75
+ # We artificially add the _id value to the object as this is the primary key
76
+ # This is stored in the Mongo database, but removed upon a fetch.
77
+
78
+ if obj.is_a?(Hash)
79
+ obj["_id"] = primary_key
80
+ else
81
+ @log.fatal "WOAH! Class: #{object.class} Value: #{object}"
82
+ return
83
+ end
84
+
85
+
86
+ if self.has_key? primary_key
87
+ @collection.update({"_id" => primary_key}, obj)
88
+ else
89
+ @collection.insert obj
90
+ end
91
+
92
+ end
93
+
94
+ def [] primary_key
95
+ check_key primary_key
96
+
97
+ doc = @collection.find("_id" => primary_key).to_a[0]
98
+
99
+ #
100
+ # Delete the "_id" from the document as it is artificial for the MongoDB primary key
101
+ doc.delete("_id")
102
+
103
+ Crack::JSON.parse(doc.to_json)
104
+ end
105
+
106
+ def has_key?(primary_key)
107
+ check_key primary_key
108
+
109
+ doc = @collection.find "_id" => primary_key
110
+ if doc.count == 0
111
+ false
112
+ else
113
+ true
114
+ end
115
+ end
116
+
117
+ def each
118
+
119
+ collection = @mongo.collection(@collection_name)
120
+
121
+ collection.find.each do |row|
122
+ yield row["_id"], row.to_json
123
+ end
124
+
125
+ end
126
+
127
+ def flush
128
+ end
129
+
130
+ private
131
+
132
+ def check_key(primary_key)
133
+ # Raise an exception here if the key must conform to a specific format
134
+ # Example: raise "key must be a string object" unless key.is_a? String
135
+ end
136
+
137
+ def check_object(object)
138
+ raise "#{object.class} must implement the to_json method" unless object.respond_to? :to_json
139
+ end
140
+ end
141
+ end
@@ -0,0 +1,72 @@
1
+ require "mongo"
2
+ require "logger"
3
+
4
+ module BarnyardHarvester
5
+ class MongoDbHelper
6
+
7
+ def self.connect(args)
8
+
9
+ @debug = args.fetch(:debug) { false }
10
+ @log = args.fetch(:logger) { Logger.new(STDOUT) }
11
+
12
+ @log.debug "Connection parameters #{args[:host]} db: #{args[:db]} collection: #{args[:collection]}" if @debug
13
+
14
+ # Connect to Mongo
15
+ if args.has_key? :host
16
+ if args[:host].is_a? Array
17
+ @log.debug "Connecting to replica set #{args[:host]}"
18
+ @mongo = Mongo::ReplSetConnection.new(args[:host]).db(args[:db])
19
+ else
20
+ @log.debug "Connecting to single host #{args[:host]}"
21
+ @mongo = Mongo::Connection.new(args[:host].split(":")[0], args[:host].split(":")[1]).db(args[:db])
22
+ end
23
+ else
24
+ @log.info "Connecting to localhost #{args[:host]}"
25
+ @mongo = Mongo::Connection.new.db(args[:db])
26
+ end
27
+
28
+ #db = @mongo.db((mongo_args[:db])
29
+ #auth = db.authenticate
30
+
31
+ unless args[:user].to_s == ''
32
+ @log.debug "Authenticating as #{args[:user]}"
33
+ @mongo.authenticate(args[:user], args[:password])
34
+ end
35
+
36
+ @mongo
37
+ end
38
+ end
39
+ end
40
+
41
+ if __FILE__ == $0
42
+
43
+ mongo_replica_set = Array.new
44
+
45
+ mongo_replica_set << "ip-172-19-31-44.c.qaapollogrp.edu:27017"
46
+ mongo_replica_set << "ip-172-19-30-49.c.qaapollogrp.edu:27017"
47
+ mongo_replica_set << "ip-172-19-31-202.c.qaapollogrp.edu:27017"
48
+
49
+ mongo_args = Hash.new
50
+ # mongo_args[:host] = "localhost:27017"
51
+ mongo_args[:host] = mongo_replica_set
52
+ mongo_args[:db] = "aws"
53
+ mongo_args[:collection] = "test_collection"
54
+ mongo_args[:user] = "honeybadger"
55
+ mongo_args[:password] = "0joQuk35vJM05Hj"
56
+
57
+ mongo_args[:debug] = true
58
+
59
+ my_log = Logger.new(STDOUT)
60
+
61
+ mongo_args[:logger] = my_log
62
+
63
+ s = ApolMongo::MongoHelper.connect mongo_args
64
+
65
+ c = s.collection(mongo_args[:collection])
66
+
67
+
68
+ c.find.each do |row|
69
+ puts row
70
+ end
71
+
72
+ end
@@ -0,0 +1,84 @@
1
+ module BarnyardHarvester
2
+
3
+ class ChangeLogs
4
+ @queue = :logs_change
5
+ end
6
+
7
+ class Queue
8
+
9
+ class ResqueQueue
10
+ def initialize(queue, queued_at, harvester_uuid, crop_change_uuid, crop_number, primary_key, transaction_type, value, old_value)
11
+ Resque.enqueue(queue, queued_at, harvester_uuid, crop_change_uuid, crop_number, primary_key, transaction_type, value, old_value)
12
+ Resque.enqueue(ChangeLogs,queued_at, harvester_uuid, crop_change_uuid, crop_number, primary_key, transaction_type, value, old_value)
13
+ end
14
+ end
15
+
16
+ def initialize(args)
17
+
18
+ @debug = args.fetch(:debug) { false }
19
+ @log = args.fetch(:logger) { Logger.new(STDOUT) }
20
+
21
+ raise "arguments must contain :crop_number => some_integer" if args[:crop_number].nil?
22
+
23
+ resque_class_name = "Distribute"
24
+
25
+ # If the class does not exist, the rescue block will create it.
26
+ # The Class Queue is inherited by the AddQueue, ChangeQueue and DeleteQueue, but
27
+ # we only want to create one "resque" queue for this instantiation
28
+ begin
29
+ Object.const_get(resque_class_name)
30
+ rescue
31
+ # Set the queue name to this apol_harvester's id prefixed with a Q_
32
+ #Object.const_set(resque_class_name, Class.new { @queue = "Q_#{args[:crop_number]}"})
33
+ Object.const_set(resque_class_name, Class.new { @queue = "Farmer"})
34
+ end
35
+
36
+ @resque_queue = Object.const_get(resque_class_name)
37
+
38
+ end
39
+
40
+ def push(harvester_uuid, crop_change_uuid, crop_number, primary_key, transaction_type, value, old_value=Hash.new)
41
+ check_key primary_key
42
+
43
+ ResqueQueue.new(@resque_queue, DateTime.now, harvester_uuid, crop_change_uuid, crop_number, primary_key, transaction_type, value.to_json, old_value.to_json)
44
+
45
+ message = "RedisQueue: #{@resque_queue}, Now: #{DateTime.now}, Harvester:#{harvester_uuid}, Change:#{crop_change_uuid} crop_number: #{crop_number}, key: #{primary_key}, transaction_type: #{transaction_type})"
46
+
47
+ if @log.level == Logger::DEBUG
48
+ message += ", value: #{value.to_json}, old_value: #{old_value.to_json}"
49
+ @log.debug message
50
+ end
51
+ end
52
+
53
+ # Flush any data if needed.
54
+ #
55
+ def flush
56
+ end
57
+
58
+ private
59
+
60
+ # Raise an exception here if the key must conform to a specific format
61
+ #
62
+ def check_key(primary_key)
63
+ # Example: raise "key must be a string object" unless key.is_a? String
64
+ primary_key
65
+ end
66
+
67
+ end
68
+
69
+ # AddQueue
70
+ #
71
+ class AddQueue < Queue
72
+ end
73
+
74
+ # ChangeQueue
75
+ #
76
+ class ChangeQueue < Queue
77
+ end
78
+
79
+ # DeleteQueue
80
+ #
81
+ class DeleteQueue < Queue
82
+ end
83
+
84
+ end
@@ -1,3 +1,3 @@
1
1
  module BarnyardHarvester
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -0,0 +1,61 @@
1
+ require "rspec"
2
+ require "./lib/barnyard_harvester/mongodb_helper"
3
+
4
+ describe BarnyardHarvester::MongoDbHelper do
5
+
6
+ it "should connect to a replica set" do
7
+
8
+ mongo_replica_set = Array.new
9
+
10
+ mongo_replica_set << "ip-172-19-31-44.c.qaapollogrp.edu:27017"
11
+ mongo_replica_set << "ip-172-19-30-49.c.qaapollogrp.edu:27017"
12
+ mongo_replica_set << "ip-172-19-31-202.c.qaapollogrp.edu:27017"
13
+ mongo_args = Hash.new
14
+
15
+
16
+ mongo_args[:host] = mongo_replica_set
17
+ mongo_args[:db] = "aws"
18
+ mongo_args[:collection] = "test_collection"
19
+ mongo_args[:user] = "honeybadger"
20
+ mongo_args[:password] = "0joQuk35vJM05Hj"
21
+
22
+ mongo_args[:debug] = true
23
+
24
+ my_log = Logger.new(STDOUT)
25
+
26
+ mongo_args[:logger] = my_log
27
+
28
+ s = BarnyardHarvester::MongoDbHelper.connect mongo_args
29
+
30
+ c = s.collection(mongo_args[:collection])
31
+
32
+ c.find.each do |row|
33
+ puts row
34
+ end
35
+
36
+ end
37
+
38
+ it "should connect to one server" do
39
+
40
+ mongo_args = Hash.new
41
+ mongo_args[:host] = "localhost:27017"
42
+ mongo_args[:db] = "aws"
43
+ mongo_args[:collection] = "test_collection"
44
+
45
+ mongo_args[:debug] = true
46
+
47
+ my_log = Logger.new(STDOUT)
48
+
49
+ mongo_args[:logger] = my_log
50
+
51
+ s = BarnyardHarvester::MongoDbHelper.connect mongo_args
52
+
53
+ c = s.collection(mongo_args[:collection])
54
+
55
+ c.find.each do |row|
56
+ puts row
57
+ end
58
+
59
+ end
60
+
61
+ end
@@ -0,0 +1,180 @@
1
+ require "barnyard_harvester"
2
+ require "yaml"
3
+ require "mongo"
4
+ require "redis"
5
+ require "logger"
6
+ require "json"
7
+
8
+ CROP_NUMBER = 1
9
+
10
+ REDIS_SETTINGS = {
11
+ :host => "localhost",
12
+ :port => 6379,
13
+ :db => CROP_NUMBER
14
+ }
15
+
16
+ MONGODB_SETTINGS = {
17
+ :host => "localhost",
18
+ :collection => "test_collection",
19
+ :db => "test_database",
20
+ :collection => "test_collection"
21
+ }
22
+
23
+ MONGODB_REPLICA_SET_SETTINGS = {
24
+ :host => ["ip-172-19-31-44.c.qaapollogrp.edu:27017", "ip-172-19-30-49.c.qaapollogrp.edu:27017", "ip-172-19-31-202.c.qaapollogrp.edu:27017"],
25
+ :collection => "test_collection",
26
+ :db => "test_database",
27
+ :user => "honeybadger",
28
+ :password => "0joQuk35vJM05Hj",
29
+ :collection => "test_collection"
30
+ }
31
+
32
+ $mongo_settings = MONGODB_REPLICA_SET_SETTINGS
33
+
34
+ describe BarnyardHarvester do
35
+
36
+ def load_and_process_file(file, backend)
37
+
38
+ data = YAML::load_file file
39
+
40
+ my_logger = Logger.new(STDOUT)
41
+ my_logger.level = Logger::INFO
42
+
43
+ h = BarnyardHarvester::Sync.new(:backend => backend, :debug => false, :mongodb_settings => $mongo_settings, :crop_number => CROP_NUMBER, :redis_settings => REDIS_SETTINGS, :logger => my_logger)
44
+
45
+ h.run do
46
+ data.each do |primary_key, value|
47
+ h.process primary_key, value
48
+ end
49
+ end
50
+
51
+ h
52
+ end
53
+
54
+ def flush
55
+
56
+ require "barnyard_harvester/mongodb_helper"
57
+
58
+ my_logger = Logger.new(STDOUT)
59
+ my_logger.level = Logger::INFO
60
+
61
+ mongo = BarnyardHarvester::MongoDbHelper.connect $mongo_settings.merge(logger: my_logger)
62
+ collection_name = $mongo_settings[:collection]
63
+ collection = mongo.collection(collection_name)
64
+
65
+ collection.find.each do |row|
66
+ collection.remove("_id" => row["_id"])
67
+ end
68
+
69
+ end
70
+
71
+ before(:each) do
72
+
73
+ flush
74
+
75
+ @crop_number = 1
76
+
77
+ file = "spec/fixtures/data-init.yml"
78
+
79
+ data = YAML::load_file file
80
+
81
+ h = load_and_process_file(file, :mongodb)
82
+
83
+ h.add_count.should eq(data.count)
84
+ h.delete_count.should eq(0)
85
+ h.change_count.should eq(0)
86
+ h.source_count.should eq(data.count)
87
+ h.cache_count.should eq(data.count)
88
+
89
+ end
90
+
91
+ it "test initial load of records" do
92
+
93
+ data = YAML::load_file "spec/fixtures/data-init.yml"
94
+
95
+ mongo = BarnyardHarvester::MongoDbHelper.connect $mongo_settings
96
+ collection = mongo.collection($mongo_settings[:collection])
97
+
98
+ data.each do |primary_key, value|
99
+
100
+ doc = collection.find("_id" => primary_key).to_a[0]
101
+
102
+ doc.delete("_id")
103
+
104
+ value.should eq(doc)
105
+ end
106
+
107
+ end
108
+
109
+ it "test add one record" do
110
+
111
+ file = "spec/fixtures/data-add.yml"
112
+ data = YAML::load_file file
113
+
114
+ h = load_and_process_file(file, :mongodb)
115
+
116
+ h.add_count.should eq(1)
117
+ h.delete_count.should eq(0)
118
+ h.change_count.should eq(0)
119
+ h.source_count.should eq(data.count)
120
+ h.cache_count.should eq(data.count)
121
+
122
+ end
123
+
124
+ it "test change one record" do
125
+
126
+ file = "spec/fixtures/data-change.yml"
127
+
128
+ data = YAML::load_file file
129
+
130
+ h = load_and_process_file(file, :mongodb)
131
+
132
+ h.add_count.should eq(0)
133
+ h.delete_count.should eq(0)
134
+ h.change_count.should eq(1)
135
+ h.source_count.should eq(data.count)
136
+ h.cache_count.should eq(data.count)
137
+
138
+ end
139
+
140
+ it "test delete one record" do
141
+
142
+ file = "spec/fixtures/data-delete.yml"
143
+
144
+ data = YAML::load_file file
145
+
146
+ h = load_and_process_file(file, :mongodb)
147
+
148
+
149
+ h.add_count.should eq(0)
150
+ h.delete_count.should eq(1)
151
+ h.change_count.should eq(0)
152
+ h.source_count.should eq(data.count)
153
+ h.cache_count.should eq(data.count + 1)
154
+
155
+ end
156
+
157
+ it "test delete all records and add one" do
158
+
159
+ init_file = "spec/fixtures/data-init.yml"
160
+ init_data = YAML::load_file init_file
161
+
162
+ file = "spec/fixtures/data-delete-all-records-add-one.yml"
163
+ #data = YAML::load_file file
164
+
165
+ h = load_and_process_file(file, :mongodb)
166
+
167
+ h.add_count.should eq(1)
168
+ h.delete_count.should eq(5)
169
+ h.change_count.should eq(0)
170
+ h.source_count.should eq(1)
171
+ h.cache_count.should eq(init_data.count + 1)
172
+
173
+ end
174
+
175
+
176
+ after(:each) do
177
+ end
178
+
179
+
180
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: barnyard_harvester
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
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-11-12 00:00:00.000000000 Z
12
+ date: 2012-11-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70154684272920 !ruby/object:Gem::Requirement
16
+ requirement: &70118633756900 !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: *70154684272920
24
+ version_requirements: *70118633756900
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: resque
27
- requirement: &70154684271860 !ruby/object:Gem::Requirement
27
+ requirement: &70118633753220 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70154684271860
35
+ version_requirements: *70118633753220
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: crack
38
- requirement: &70154684271380 !ruby/object:Gem::Requirement
38
+ requirement: &70118633748400 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70154684271380
46
+ version_requirements: *70118633748400
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: json
49
- requirement: &70154684270700 !ruby/object:Gem::Requirement
49
+ requirement: &70118633735240 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70154684270700
57
+ version_requirements: *70118633735240
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: uuid
60
- requirement: &70154684270020 !ruby/object:Gem::Requirement
60
+ requirement: &70118633729920 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,29 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70154684270020
68
+ version_requirements: *70118633729920
69
+ - !ruby/object:Gem::Dependency
70
+ name: bson_ext
71
+ requirement: &70118633723020 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - =
75
+ - !ruby/object:Gem::Version
76
+ version: 1.6.0
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: *70118633723020
80
+ - !ruby/object:Gem::Dependency
81
+ name: mongo
82
+ requirement: &70118633718980 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - =
86
+ - !ruby/object:Gem::Version
87
+ version: 1.6.0
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: *70118633718980
69
91
  description: Performs harvests on data sources and detects adds, changes and deletes.
70
92
  email:
71
93
  - supercoder@gmail.com
@@ -85,6 +107,9 @@ files:
85
107
  - lib/barnyard_harvester.rb
86
108
  - lib/barnyard_harvester/hash.rb
87
109
  - lib/barnyard_harvester/hash_queue.rb
110
+ - lib/barnyard_harvester/mongodb.rb
111
+ - lib/barnyard_harvester/mongodb_helper.rb
112
+ - lib/barnyard_harvester/mongodb_queue.rb
88
113
  - lib/barnyard_harvester/redis.rb
89
114
  - lib/barnyard_harvester/redis_queue.rb
90
115
  - lib/barnyard_harvester/version.rb
@@ -96,6 +121,8 @@ files:
96
121
  - spec/fixtures/data-init.yml
97
122
  - spec/hash_spec.rb
98
123
  - spec/loader_spec.rb
124
+ - spec/mongo_helper_spec.rb
125
+ - spec/mongo_spec.rb
99
126
  - spec/redis_spec.rb
100
127
  - spec/spec_helper.rb
101
128
  homepage: https://github.com/jongillies/barnyard/tree/master/barnyard_harvester
@@ -118,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
145
  version: '0'
119
146
  requirements: []
120
147
  rubyforge_project: barnyard_harvester
121
- rubygems_version: 1.8.11
148
+ rubygems_version: 1.8.15
122
149
  signing_key:
123
150
  specification_version: 3
124
151
  summary: Please check the README.md for more information.
@@ -130,5 +157,7 @@ test_files:
130
157
  - spec/fixtures/data-init.yml
131
158
  - spec/hash_spec.rb
132
159
  - spec/loader_spec.rb
160
+ - spec/mongo_helper_spec.rb
161
+ - spec/mongo_spec.rb
133
162
  - spec/redis_spec.rb
134
163
  - spec/spec_helper.rb