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 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