farmstead 0.0.86 → 0.0.87
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +14 -14
- data/farmstead.gemspec +2 -2
- data/lib/farmstead/db.rb +12 -0
- data/lib/farmstead/pipeline/manage.rb +14 -23
- data/lib/farmstead/service.rb +0 -17
- data/lib/farmstead/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5e09b815a7a63b725f6e2d723f2bb09287530eda
|
|
4
|
+
data.tar.gz: 4710c794296aa0004eadf477cb219816ed418cab
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 184c8e940ea27b2dba8d729b291c1da6872b47bd92aa2d4efce8e65c8fee25af113f9122811e2630715b1e12b07fdac9da10996f822c15852a0eb177118e1b9c
|
|
7
|
+
data.tar.gz: cd8302fb0187ae2b5eb4dcd104884cea6c53981ac5b5b66ca550ca1324313ea460d9711e9d34e07d4d15c910231622f42909691735716167157207e8a918656b
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
farmstead (0.0.
|
|
4
|
+
farmstead (0.0.87)
|
|
5
5
|
httparty (~> 0.15.6)
|
|
6
6
|
mechanize (~> 2.7)
|
|
7
7
|
mysql2 (~> 0.4.10)
|
|
@@ -9,8 +9,8 @@ PATH
|
|
|
9
9
|
os (~> 1.0)
|
|
10
10
|
ruby-kafka (~> 0.5.1)
|
|
11
11
|
sequel (~> 5.4.0)
|
|
12
|
-
sinatra (~> 2.0.
|
|
13
|
-
sinatra-contrib (~> 2.0.
|
|
12
|
+
sinatra (~> 2.0.1)
|
|
13
|
+
sinatra-contrib (~> 2.0.1)
|
|
14
14
|
thor (~> 0.20.0)
|
|
15
15
|
|
|
16
16
|
GEM
|
|
@@ -26,7 +26,7 @@ GEM
|
|
|
26
26
|
ffi (1.9.18)
|
|
27
27
|
http-cookie (1.0.3)
|
|
28
28
|
domain_name (~> 0.5)
|
|
29
|
-
httparty (0.15.
|
|
29
|
+
httparty (0.15.7)
|
|
30
30
|
multi_xml (>= 0.5.2)
|
|
31
31
|
listen (3.0.8)
|
|
32
32
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
|
@@ -46,7 +46,7 @@ GEM
|
|
|
46
46
|
mini_portile2 (2.3.0)
|
|
47
47
|
multi_json (1.13.1)
|
|
48
48
|
multi_xml (0.6.0)
|
|
49
|
-
mustermann (1.0.
|
|
49
|
+
mustermann (1.0.2)
|
|
50
50
|
mysql2 (0.4.10)
|
|
51
51
|
net-http-digest_auth (1.4.1)
|
|
52
52
|
net-http-persistent (2.9.4)
|
|
@@ -54,8 +54,8 @@ GEM
|
|
|
54
54
|
mini_portile2 (~> 2.3.0)
|
|
55
55
|
ntlm-http (0.1.1)
|
|
56
56
|
os (1.0.0)
|
|
57
|
-
rack (2.0.
|
|
58
|
-
rack-protection (2.0.
|
|
57
|
+
rack (2.0.4)
|
|
58
|
+
rack-protection (2.0.1)
|
|
59
59
|
rack
|
|
60
60
|
rake (10.5.0)
|
|
61
61
|
rb-fsevent (0.10.2)
|
|
@@ -74,25 +74,25 @@ GEM
|
|
|
74
74
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
75
75
|
rspec-support (~> 3.7.0)
|
|
76
76
|
rspec-support (3.7.0)
|
|
77
|
-
ruby-kafka (0.5.
|
|
77
|
+
ruby-kafka (0.5.3)
|
|
78
78
|
sequel (5.4.0)
|
|
79
|
-
sinatra (2.0.
|
|
79
|
+
sinatra (2.0.1)
|
|
80
80
|
mustermann (~> 1.0)
|
|
81
81
|
rack (~> 2.0)
|
|
82
|
-
rack-protection (= 2.0.
|
|
82
|
+
rack-protection (= 2.0.1)
|
|
83
83
|
tilt (~> 2.0)
|
|
84
|
-
sinatra-contrib (2.0.
|
|
84
|
+
sinatra-contrib (2.0.1)
|
|
85
85
|
backports (>= 2.0)
|
|
86
86
|
multi_json
|
|
87
87
|
mustermann (~> 1.0)
|
|
88
|
-
rack-protection (= 2.0.
|
|
89
|
-
sinatra (= 2.0.
|
|
88
|
+
rack-protection (= 2.0.1)
|
|
89
|
+
sinatra (= 2.0.1)
|
|
90
90
|
tilt (>= 1.3, < 3)
|
|
91
91
|
thor (0.20.0)
|
|
92
92
|
tilt (2.0.8)
|
|
93
93
|
unf (0.1.4)
|
|
94
94
|
unf_ext
|
|
95
|
-
unf_ext (0.0.7.
|
|
95
|
+
unf_ext (0.0.7.5)
|
|
96
96
|
webrobots (0.1.2)
|
|
97
97
|
|
|
98
98
|
PLATFORMS
|
data/farmstead.gemspec
CHANGED
|
@@ -31,8 +31,8 @@ Gem::Specification.new do |spec|
|
|
|
31
31
|
spec.add_runtime_dependency "mechanize", "~> 2.7"
|
|
32
32
|
spec.add_runtime_dependency "httparty", "~> 0.15.6"
|
|
33
33
|
spec.add_runtime_dependency "sequel", "~> 5.4.0"
|
|
34
|
-
spec.add_runtime_dependency "sinatra", "~> 2.0.
|
|
35
|
-
spec.add_runtime_dependency "sinatra-contrib", "~> 2.0.
|
|
34
|
+
spec.add_runtime_dependency "sinatra", "~> 2.0.1"
|
|
35
|
+
spec.add_runtime_dependency "sinatra-contrib", "~> 2.0.1"
|
|
36
36
|
|
|
37
37
|
spec.add_development_dependency "dotenv", "~> 0.11.1"
|
|
38
38
|
spec.add_development_dependency "listen", "~> 3.0"
|
data/lib/farmstead/db.rb
CHANGED
|
@@ -24,6 +24,8 @@ module Farmstead
|
|
|
24
24
|
String(:name)
|
|
25
25
|
String(:type)
|
|
26
26
|
String(:module)
|
|
27
|
+
TrueClass(:pickedup)
|
|
28
|
+
TrueClass(:processed)
|
|
27
29
|
end
|
|
28
30
|
@@DB.create_table :test do
|
|
29
31
|
primary_key(:id)
|
|
@@ -86,5 +88,15 @@ module Farmstead
|
|
|
86
88
|
ds.insert(result: result)
|
|
87
89
|
end
|
|
88
90
|
|
|
91
|
+
# Sets the value of pickedup to true
|
|
92
|
+
def mark_pickedup(source)
|
|
93
|
+
@@DB.run("UPDATE sources SET pickedup = 1 WHERE module = #{source}")
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# Sets the value of processed to true
|
|
97
|
+
def mark_processed(source)
|
|
98
|
+
@@DB.run("UPDATE sources SET processed = 1 WHERE module = #{source}")
|
|
99
|
+
end
|
|
100
|
+
|
|
89
101
|
end
|
|
90
102
|
end
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
# Manage
|
|
2
2
|
#
|
|
3
3
|
# It works off of the DB when
|
|
4
|
-
# 1) A new
|
|
5
|
-
# 2) A scheduled
|
|
4
|
+
# 1) A new source is added
|
|
5
|
+
# 2) A scheduled source pull is configured to happen
|
|
6
6
|
#
|
|
7
7
|
# Field --> Forest --> Road
|
|
8
8
|
#
|
|
9
9
|
# It then takes the config from the DB and passed it to the Field topic
|
|
10
10
|
#
|
|
11
|
-
# The Extract class pulls the
|
|
12
|
-
#
|
|
11
|
+
# The Extract class pulls the source config from the Field Topic and then pushes
|
|
12
|
+
# source data to the Forest topic.
|
|
13
13
|
#
|
|
14
|
-
# The Transform class pulls the
|
|
14
|
+
# The Transform class pulls the source data from teh Forest topic and then pushes
|
|
15
15
|
# to the Road topic.
|
|
16
16
|
#
|
|
17
17
|
# The Load class pulls data from the Road topic and loads it into the database.
|
|
@@ -32,6 +32,7 @@ module Farmstead
|
|
|
32
32
|
puts module_name
|
|
33
33
|
@producer.produce(module_name, topic: "Field")
|
|
34
34
|
@producer.deliver_messages
|
|
35
|
+
Farmstead::DB.mark_pickedup(module_name)
|
|
35
36
|
end
|
|
36
37
|
end
|
|
37
38
|
|
|
@@ -40,25 +41,15 @@ module Farmstead
|
|
|
40
41
|
def check_sources
|
|
41
42
|
sources = @mysql.query("SELECT * FROM sources WHERE pickedup = 'false'")
|
|
42
43
|
return false if sources.count.zero?
|
|
43
|
-
sources.each do |
|
|
44
|
-
json =
|
|
45
|
-
|
|
46
|
-
#
|
|
44
|
+
sources.each do |source|
|
|
45
|
+
json = source.to_json
|
|
46
|
+
sourceid = get_from_json(json, 'id')
|
|
47
|
+
# import_source(json, sourceid)
|
|
47
48
|
write_message(json, topic: 'Wood')
|
|
48
|
-
mark_pickedup(
|
|
49
|
+
mark_pickedup(sourceid)
|
|
49
50
|
end
|
|
50
51
|
end
|
|
51
52
|
|
|
52
|
-
# Sets the value of pickedup to true
|
|
53
|
-
def mark_pickedup(siteid)
|
|
54
|
-
@mysql.query("UPDATE sites SET pickedup = 'true' WHERE id = #{siteid}")
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
# Sets the value of processed to true
|
|
58
|
-
def mark_processed(siteid)
|
|
59
|
-
@mysql.query("UPDATE sites SET processed = 'true' WHERE id = #{siteid}")
|
|
60
|
-
end
|
|
61
|
-
|
|
62
53
|
# Checks for any processing tasks that need to be
|
|
63
54
|
# completed at speicifc times
|
|
64
55
|
def regular_tasks
|
|
@@ -72,9 +63,9 @@ module Farmstead
|
|
|
72
63
|
end
|
|
73
64
|
end
|
|
74
65
|
|
|
75
|
-
# Imports
|
|
76
|
-
def
|
|
77
|
-
|
|
66
|
+
# Imports source data as a Hash into MySQL DB
|
|
67
|
+
def import_source(sourcehash, sourceid)
|
|
68
|
+
sourcehash
|
|
78
69
|
end
|
|
79
70
|
end
|
|
80
71
|
end
|
data/lib/farmstead/service.rb
CHANGED
|
@@ -39,23 +39,6 @@ module Farmstead
|
|
|
39
39
|
end
|
|
40
40
|
end
|
|
41
41
|
|
|
42
|
-
# Each Farmstead site has a Class that defines it
|
|
43
|
-
# Each service runs one or more methods on that Class
|
|
44
|
-
def find_definitions(site, service)
|
|
45
|
-
mysite = @mysql.query("SELECT * FROM sites WHERE name = '#{site}'")
|
|
46
|
-
return false if mysite.count.zero?
|
|
47
|
-
mysite.each do |sited|
|
|
48
|
-
json = sited.to_json
|
|
49
|
-
config = get_from_json(json, 'config')
|
|
50
|
-
# Convert to hash where each element is a service and then associate it
|
|
51
|
-
# with the service name passed to this method
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def doit
|
|
56
|
-
find_definitions('Yahoo', 'scarecrow')
|
|
57
|
-
end
|
|
58
|
-
|
|
59
42
|
def write_message(message, topic)
|
|
60
43
|
@producer.produce(message, topic)
|
|
61
44
|
@producer.deliver_messages
|
data/lib/farmstead/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: farmstead
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.87
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ken Jenney
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-
|
|
11
|
+
date: 2018-02-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: thor
|
|
@@ -128,28 +128,28 @@ dependencies:
|
|
|
128
128
|
requirements:
|
|
129
129
|
- - "~>"
|
|
130
130
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: 2.0.
|
|
131
|
+
version: 2.0.1
|
|
132
132
|
type: :runtime
|
|
133
133
|
prerelease: false
|
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
135
|
requirements:
|
|
136
136
|
- - "~>"
|
|
137
137
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: 2.0.
|
|
138
|
+
version: 2.0.1
|
|
139
139
|
- !ruby/object:Gem::Dependency
|
|
140
140
|
name: sinatra-contrib
|
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
|
142
142
|
requirements:
|
|
143
143
|
- - "~>"
|
|
144
144
|
- !ruby/object:Gem::Version
|
|
145
|
-
version: 2.0.
|
|
145
|
+
version: 2.0.1
|
|
146
146
|
type: :runtime
|
|
147
147
|
prerelease: false
|
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
149
|
requirements:
|
|
150
150
|
- - "~>"
|
|
151
151
|
- !ruby/object:Gem::Version
|
|
152
|
-
version: 2.0.
|
|
152
|
+
version: 2.0.1
|
|
153
153
|
- !ruby/object:Gem::Dependency
|
|
154
154
|
name: dotenv
|
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|