jugyo-filetter 0.2.3 → 0.2.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/Rakefile +1 -0
- data/lib/filetter.rb +6 -6
- data/lib/filetter/observer.rb +14 -2
- data/lib/filetter/version.rb +1 -1
- data/lib/modes/twitter.rb +19 -0
- data/spec/filetter/observer_spec.rb +27 -0
- data/spec/spec_helper.rb +3 -0
- metadata +14 -1
data/Rakefile
CHANGED
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
|
|
25
25
|
Rakefile )
|
26
26
|
s.executables = ["filetter"]
|
27
27
|
s.add_dependency("configatron", ">= 2.2.2")
|
28
|
+
s.add_dependency("rubytter", ">= 0.4.5")
|
28
29
|
s.author = 'jugyo'
|
29
30
|
s.email = 'jugyo.org@gmail.com'
|
30
31
|
s.homepage = 'http://github.com/jugyo/filetter'
|
data/lib/filetter.rb
CHANGED
@@ -14,9 +14,9 @@ Thread.abort_on_exception = true
|
|
14
14
|
|
15
15
|
module Filetter
|
16
16
|
class << self
|
17
|
-
def run(options)
|
17
|
+
def run(options = {})
|
18
18
|
pattern = './**/*'
|
19
|
-
interval =
|
19
|
+
interval = 2
|
20
20
|
debug = false
|
21
21
|
mode = nil
|
22
22
|
load_path = nil
|
@@ -48,14 +48,14 @@ module Filetter
|
|
48
48
|
puts '=> Run as "sample" mode'
|
49
49
|
require 'sample'
|
50
50
|
else
|
51
|
-
if mode
|
52
|
-
puts "=> Run as \"#{mode}\" mode"
|
53
|
-
require mode
|
54
|
-
end
|
55
51
|
if load_file && File.exist?(load_file)
|
56
52
|
puts "=> load \"#{load_file}\""
|
57
53
|
load load_file
|
58
54
|
end
|
55
|
+
if mode
|
56
|
+
puts "=> Run as \"#{mode}\" mode"
|
57
|
+
require mode
|
58
|
+
end
|
59
59
|
end
|
60
60
|
rescue LoadError => e
|
61
61
|
puts e
|
data/lib/filetter/observer.rb
CHANGED
@@ -77,8 +77,9 @@ module Filetter
|
|
77
77
|
def add_hook(*args, &block)
|
78
78
|
unless args.empty?
|
79
79
|
args.each do |arg|
|
80
|
-
|
81
|
-
@hooks[
|
80
|
+
hook_name = normalize_as_hook_name(arg)
|
81
|
+
@hooks[hook_name] ||= []
|
82
|
+
@hooks[hook_name] << block
|
82
83
|
end
|
83
84
|
else
|
84
85
|
@hooks[:any] ||= []
|
@@ -162,5 +163,16 @@ module Filetter
|
|
162
163
|
puts e.backtrace.join("\n")
|
163
164
|
end
|
164
165
|
end
|
166
|
+
|
167
|
+
def normalize_as_hook_name(name)
|
168
|
+
case name.to_s
|
169
|
+
when /^created?$/
|
170
|
+
:created
|
171
|
+
when /^(modif(y|ied)|updated?)$/
|
172
|
+
:modified
|
173
|
+
when /(deleted?|removed?)/
|
174
|
+
:deleted
|
175
|
+
end
|
176
|
+
end
|
165
177
|
end
|
166
178
|
end
|
data/lib/filetter/version.rb
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
require 'rubytter'
|
4
|
+
|
5
|
+
if config.twitter.login.empty? || config.twitter.password.empty?
|
6
|
+
puts "Config not found! => [config.twitter.login, config.twitter.password]"
|
7
|
+
exit!
|
8
|
+
end
|
9
|
+
|
10
|
+
module Filetter
|
11
|
+
rubytter = Rubytter.new(config.twitter.login, config.twitter.password)
|
12
|
+
add_hook :create do |files, event|
|
13
|
+
files.each do |file|
|
14
|
+
file_name = File.basename(file)
|
15
|
+
rubytter.update(file_name)
|
16
|
+
puts "=> post to twitter '#{file_name}'"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
3
|
+
|
4
|
+
module Filetter
|
5
|
+
class Observer
|
6
|
+
describe Observer do
|
7
|
+
before do
|
8
|
+
@observer = Observer.instance
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should normalize hook name' do
|
12
|
+
[:created, :create].each do |name|
|
13
|
+
@observer.instance_eval{ normalize_as_hook_name(name).should == :created }
|
14
|
+
end
|
15
|
+
[:update, :updated, :modify, :modified].each do |name|
|
16
|
+
@observer.instance_eval{ normalize_as_hook_name(name).should == :modified }
|
17
|
+
end
|
18
|
+
[:delete, :deleted, :remove, :removed].each do |name|
|
19
|
+
@observer.instance_eval{ normalize_as_hook_name(name).should == :deleted }
|
20
|
+
end
|
21
|
+
[:createx, :creat, :modifi, :modifie, :modifeed, :updat, :updatedd].each do |name|
|
22
|
+
@observer.instance_eval{ normalize_as_hook_name(name).should == nil }
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jugyo-filetter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jugyo
|
@@ -22,6 +22,16 @@ dependencies:
|
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 2.2.2
|
24
24
|
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rubytter
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.4.5
|
34
|
+
version:
|
25
35
|
description: Filetter is a pluggable tool for file system.
|
26
36
|
email: jugyo.org@gmail.com
|
27
37
|
executables:
|
@@ -38,6 +48,9 @@ files:
|
|
38
48
|
- lib/filetter.rb
|
39
49
|
- lib/modes/mozrepl.rb
|
40
50
|
- lib/modes/sample.rb
|
51
|
+
- lib/modes/twitter.rb
|
52
|
+
- spec/filetter/observer_spec.rb
|
53
|
+
- spec/spec_helper.rb
|
41
54
|
- README.rdoc
|
42
55
|
- History.txt
|
43
56
|
- Rakefile
|