jugyo-filetter 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
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'
@@ -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 = 1
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
@@ -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
- @hooks[arg] ||= []
81
- @hooks[arg] << block
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
@@ -1,4 +1,4 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  module Filetter
3
- VERSION = '0.2.3'
3
+ VERSION = '0.2.4'
4
4
  end
@@ -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
@@ -0,0 +1,3 @@
1
+ # -*- coding: utf-8 -*-
2
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
3
+ require 'filetter'
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.3
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