maxaf-fluke 0.0.3 → 0.0.4
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/History.txt +5 -0
- data/db/migrate/0003_add_meth_to_watchers.rb +13 -0
- data/db/migrate/0004_add_url_to_results.rb +13 -0
- data/examples/dot-fluke.yml +19 -0
- data/examples/gen_url.rb +3 -0
- data/examples/strftime_url.rb +3 -0
- data/fluke.gemspec +48 -0
- data/lib/fluke.rb +13 -4
- data/lib/fluke/result.rb +11 -6
- data/lib/fluke/watcher.rb +3 -3
- metadata +8 -2
data/History.txt
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
:db:
|
2
|
+
adapter: jdbcmysql
|
3
|
+
encoding: utf8
|
4
|
+
reconnect: true
|
5
|
+
database: fluke
|
6
|
+
pool: 5
|
7
|
+
username: fluke
|
8
|
+
password: fluke
|
9
|
+
host: localhost
|
10
|
+
port: 3306
|
11
|
+
:s3:
|
12
|
+
:connection:
|
13
|
+
:access_key_id: booya
|
14
|
+
:secret_access_key: kasha
|
15
|
+
:bucket:
|
16
|
+
:result: my-result-bucket
|
17
|
+
:proxy:
|
18
|
+
:host: localhost
|
19
|
+
:port: 8080
|
data/examples/gen_url.rb
ADDED
data/fluke.gemspec
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{fluke}
|
5
|
+
s.version = "0.0.4"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Max Afonov"]
|
9
|
+
s.date = %q{2009-09-09}
|
10
|
+
s.default_executable = %q{fluke}
|
11
|
+
s.description = %q{A simple resource observer designed to detect change over time.}
|
12
|
+
s.email = ["max@bumnetworks.com"]
|
13
|
+
s.executables = ["fluke"]
|
14
|
+
s.extra_rdoc_files = ["History.txt", "Manifest.txt"]
|
15
|
+
s.files = ["bin/fluke", "db/migrate/0001_create_watchers.rb", "db/migrate/0002_create_results.rb", "db/migrate/0003_add_meth_to_watchers.rb", "db/migrate/0004_add_url_to_results.rb", "examples/dot-fluke.yml", "examples/gen_url.rb", "examples/strftime_url.rb", "fluke.gemspec", "History.txt", "lib/fluke/cli.rb", "lib/fluke/monkey_patch.rb", "lib/fluke.rb", "lib/fluke/result.rb", "lib/fluke/watcher.rb", "Manifest.txt", "Rakefile", "README.rdoc", "script/console", "script/destroy", "script/generate", "tasks/ar.rake", "test/test_fluke_cli.rb", "test/test_fluke.rb", "test/test_helper.rb"]
|
16
|
+
s.homepage = %q{http://github.com/maxaf/fluke}
|
17
|
+
s.rdoc_options = ["--main", "README.rdoc"]
|
18
|
+
s.require_paths = ["lib"]
|
19
|
+
s.rubyforge_project = %q{fluke}
|
20
|
+
s.rubygems_version = %q{1.3.3}
|
21
|
+
s.summary = %q{A simple resource observer designed to detect change over time.}
|
22
|
+
s.test_files = ["test/test_fluke_cli.rb", "test/test_helper.rb", "test/test_fluke.rb"]
|
23
|
+
|
24
|
+
if s.respond_to? :specification_version then
|
25
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
26
|
+
s.specification_version = 3
|
27
|
+
|
28
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
29
|
+
s.add_runtime_dependency(%q<activerecord>, [">= 2.3"])
|
30
|
+
s.add_runtime_dependency(%q<aws-s3>, [">= 0.6.2"])
|
31
|
+
s.add_runtime_dependency(%q<httpclient>, [">= 2.1.5.2"])
|
32
|
+
s.add_runtime_dependency(%q<pvande-differ>, [">= 0.1.1"])
|
33
|
+
s.add_development_dependency(%q<hoe>, [">= 2.3.3"])
|
34
|
+
else
|
35
|
+
s.add_dependency(%q<activerecord>, [">= 2.3"])
|
36
|
+
s.add_dependency(%q<aws-s3>, [">= 0.6.2"])
|
37
|
+
s.add_dependency(%q<httpclient>, [">= 2.1.5.2"])
|
38
|
+
s.add_dependency(%q<pvande-differ>, [">= 0.1.1"])
|
39
|
+
s.add_dependency(%q<hoe>, [">= 2.3.3"])
|
40
|
+
end
|
41
|
+
else
|
42
|
+
s.add_dependency(%q<activerecord>, [">= 2.3"])
|
43
|
+
s.add_dependency(%q<aws-s3>, [">= 0.6.2"])
|
44
|
+
s.add_dependency(%q<httpclient>, [">= 2.1.5.2"])
|
45
|
+
s.add_dependency(%q<pvande-differ>, [">= 0.1.1"])
|
46
|
+
s.add_dependency(%q<hoe>, [">= 2.3.3"])
|
47
|
+
end
|
48
|
+
end
|
data/lib/fluke.rb
CHANGED
@@ -9,7 +9,7 @@ require 'activerecord'
|
|
9
9
|
require 'aws/s3'
|
10
10
|
|
11
11
|
module Fluke
|
12
|
-
VERSION = '0.0.
|
12
|
+
VERSION = '0.0.4'
|
13
13
|
ROOT = Dir.new(File.expand_path(File.dirname(__FILE__) + "/../"))
|
14
14
|
DEFAULT_CONF_PATH = "~/.fluke.yml"
|
15
15
|
@@verbose = false
|
@@ -55,12 +55,17 @@ module Fluke
|
|
55
55
|
}
|
56
56
|
p.merge! opts
|
57
57
|
@@log_here = p[p[:log_here]] || p[:stderr]
|
58
|
+
|
58
59
|
begin
|
59
60
|
@@conf = YAML::load(File.open(p[:conf_path]))
|
61
|
+
if !@@conf[:proxy].nil?
|
62
|
+
@@conf[:s3][:connection][:proxy] = @@conf[:proxy]
|
63
|
+
@@conf[:proxy_string] = "http://#{@@conf[:proxy][:host]}:#{@@conf[:proxy][:port]}"
|
64
|
+
end
|
60
65
|
ActiveRecord::Base.colorize_logging = false
|
61
66
|
ActiveRecord::Base.logger = Logger.new(@@log_here) if verbose?
|
62
67
|
ActiveRecord::Base.establish_connection(@@conf[:db])
|
63
|
-
AWS::S3::Base.establish_connection!(@@conf[:s3][:
|
68
|
+
AWS::S3::Base.establish_connection!(@@conf[:s3][:connection])
|
64
69
|
Result::Body.set_current_bucket_to @@conf[:s3][:bucket][:result]
|
65
70
|
rescue => e
|
66
71
|
STDERR.puts e.inspect
|
@@ -73,8 +78,12 @@ module Fluke
|
|
73
78
|
watchers.each do |n,watcher|
|
74
79
|
watcher.thread = Thread.new do
|
75
80
|
while true
|
76
|
-
|
77
|
-
|
81
|
+
begin
|
82
|
+
watcher.run
|
83
|
+
watcher.wait
|
84
|
+
rescue => e
|
85
|
+
Fluke.log { "#{watcher}: failed to run: #{e.inspect}; backtrace: #{e.backtrace.join("; ")}" }
|
86
|
+
end
|
78
87
|
end
|
79
88
|
end
|
80
89
|
end
|
data/lib/fluke/result.rb
CHANGED
@@ -25,12 +25,17 @@ module Fluke
|
|
25
25
|
Body.exists? self.body_key
|
26
26
|
end
|
27
27
|
|
28
|
-
def self.from_response(
|
29
|
-
|
28
|
+
def self.from_response(args)
|
29
|
+
opts = {
|
30
|
+
:mime_type => 'binary/octet-stream',
|
31
|
+
:generated_url => nil
|
32
|
+
}.merge(args)
|
33
|
+
|
34
|
+
checksum = Digest::SHA1.hexdigest(opts[:content])
|
30
35
|
result = Result.new :checksum => checksum
|
31
|
-
result.watcher = watcher
|
32
|
-
if generated_url and generated_url != watcher.url
|
33
|
-
result.url = generated_url
|
36
|
+
result.watcher = opts[:watcher]
|
37
|
+
if opts[:generated_url] and opts[:generated_url] != opts[:watcher].url
|
38
|
+
result.url = opts[:generated_url]
|
34
39
|
end
|
35
40
|
result.save
|
36
41
|
|
@@ -39,7 +44,7 @@ module Fluke
|
|
39
44
|
Fluke.log { "#{result.watcher} exists: #{result.body_key}" }
|
40
45
|
else
|
41
46
|
Fluke.log { "#{result.watcher} store: #{result.body_key}" }
|
42
|
-
Body.store(result.body_key, content.dup)
|
47
|
+
Body.store(result.body_key, opts[:content].dup, :content_type => opts[:mime_type])
|
43
48
|
end
|
44
49
|
end
|
45
50
|
|
data/lib/fluke/watcher.rb
CHANGED
@@ -20,18 +20,18 @@ module Fluke
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def run_file(path)
|
23
|
-
result = Result.from_response
|
23
|
+
result = Result.from_response :watcher => self, :content => File.read(path), :generated_url => "file://#{path}"
|
24
24
|
end
|
25
25
|
|
26
26
|
def run_http(generated_url)
|
27
|
-
hc = HTTPClient.new
|
27
|
+
hc = HTTPClient.new :proxy => Fluke.conf[:proxy_string], :user_agent => "Fluke/#{Fluke::VERSION}"
|
28
28
|
http_method = self.meth.downcase.to_sym
|
29
29
|
unless hc.respond_to?(http_method)
|
30
30
|
Fluke::log { "#{self}: invalid method '#{http_method}', converting to :get" }
|
31
31
|
http_method = :get
|
32
32
|
end
|
33
33
|
res = hc.send(http_method, generated_url, { 'Cache-Control' => 'no-cache', 'Pragma' => 'no-cache' })
|
34
|
-
result = Result.from_response
|
34
|
+
result = Result.from_response :watcher => self, :content => res.body.dump.dup, :generated_url => generated_url, :mime_type => res.header['Content-Type']
|
35
35
|
end
|
36
36
|
|
37
37
|
def url_generator(&block)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: maxaf-fluke
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Max Afonov
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-09-
|
12
|
+
date: 2009-09-09 00:00:00 -07:00
|
13
13
|
default_executable: fluke
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -76,6 +76,12 @@ files:
|
|
76
76
|
- bin/fluke
|
77
77
|
- db/migrate/0001_create_watchers.rb
|
78
78
|
- db/migrate/0002_create_results.rb
|
79
|
+
- db/migrate/0003_add_meth_to_watchers.rb
|
80
|
+
- db/migrate/0004_add_url_to_results.rb
|
81
|
+
- examples/dot-fluke.yml
|
82
|
+
- examples/gen_url.rb
|
83
|
+
- examples/strftime_url.rb
|
84
|
+
- fluke.gemspec
|
79
85
|
- History.txt
|
80
86
|
- lib/fluke/cli.rb
|
81
87
|
- lib/fluke/monkey_patch.rb
|