guard-post 0.5.0

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.
@@ -0,0 +1,77 @@
1
+ require 'rake'
2
+ require "rake/rdoctask"
3
+ require 'rake/gempackagetask'
4
+
5
+ spec = Gem::Specification.new do |s|
6
+ s.name = "guard-post"
7
+ s.authors = ["Lance Pollard"]
8
+ s.version = "0.5.0"
9
+ s.summary = "Watch documents update, save them to MongoDB, MySQL, etc."
10
+ s.description = "Watch documents update, save them to MongoDB, MySQL, etc."
11
+ s.homepage = "http://github.com/viatropos/guard-post"
12
+ s.license = "MIT"
13
+ s.email = "lancejpollard@gmail.com"
14
+ s.rubyforge_project = "guard-post"
15
+ s.platform = Gem::Platform::RUBY
16
+ s.files = %w(Rakefile) + Dir["{lib}/**/*"]
17
+ s.require_path = "lib"
18
+ end
19
+
20
+ Rake::GemPackageTask.new(spec) do |pkg|
21
+ pkg.gem_spec = spec
22
+ end
23
+
24
+ desc 'run unit tests'
25
+ task :test do
26
+ Dir["test/**/*"].each do |file|
27
+ next unless File.basename(file) =~ /test_/
28
+ next unless File.extname(file) == ".rb"
29
+ system "ruby #{file}"
30
+ end
31
+ end
32
+
33
+ desc "Create .gemspec file (useful for github)"
34
+ task :gemspec do
35
+ File.open("#{spec.name}.gemspec", "w") do |f|
36
+ f.puts spec.to_ruby
37
+ end
38
+ end
39
+
40
+ desc "Build the gem into the current directory"
41
+ task :gem => :gemspec do
42
+ `gem build #{spec.name}.gemspec`
43
+ end
44
+
45
+ desc "Publish gem to rubygems"
46
+ task :publish => [:package] do
47
+ %x[gem push #{spec.name}-#{spec.version}.gem]
48
+ end
49
+
50
+ desc "Print a list of the files to be put into the gem"
51
+ task :manifest do
52
+ File.open("Manifest", "w") do |f|
53
+ spec.files.each do |file|
54
+ f.puts file
55
+ end
56
+ end
57
+ end
58
+
59
+ desc "Install the gem locally"
60
+ task :install => [:package] do
61
+ File.mkdir("pkg") unless File.exists?("pkg")
62
+ command = "gem install pkg/#{spec.name}-#{spec.version} --no-ri --no-rdoc"
63
+ command = "sudo #{command}" if ENV["SUDO"] == true
64
+ sh %{#{command}}
65
+ end
66
+
67
+ desc "Generate the rdoc"
68
+ Rake::RDocTask.new do |rdoc|
69
+ files = ["README.md", "lib/**/*.rb"]
70
+ rdoc.rdoc_files.add(files)
71
+ rdoc.main = "README.md"
72
+ rdoc.title = spec.summary
73
+ end
74
+
75
+ task :yank do
76
+ `gem yank #{spec.name} -v #{spec.version}`
77
+ end
@@ -0,0 +1,58 @@
1
+ require 'guard'
2
+ require 'guard/guard'
3
+ require 'guard/watcher'
4
+
5
+ module ::Guard
6
+ class Post < ::Guard::Guard
7
+ def initialize(watchers = [], options = {}, &block)
8
+ super
9
+ @options = {
10
+ :all_on_start => true,
11
+ :rails => false
12
+ }.update(options)
13
+ end
14
+
15
+ def start
16
+ if @options[:rails] == true
17
+ ::Guard::UI.info "-> Loading Rails...", :reset => true
18
+ require File.expand_path("../config/environment", __FILE__)
19
+ ::Guard::UI.info "-> Loaded Rails '#{Rails.env.to_s}' environment", :reset => true
20
+ end
21
+ true
22
+ end
23
+
24
+ def run_all
25
+ run_on_change(Watcher.match_files(self, Dir.glob(File.join('**', '*.*'))))
26
+ end
27
+
28
+ def run_on_change(paths)
29
+ trap("SIGINT") { exit! }
30
+ changed_files = paths.reject { |f| ignored?(f) }.map do |file|
31
+ begin
32
+ expanded = ::File.expand_path(file)
33
+ ::Guard::UI.info "-> updating '#{file}'...", :reset => true
34
+ update_file(file)
35
+ ::Guard::UI.info "-> updated '#{file}'", :reset => true
36
+ file
37
+ rescue Exception => e
38
+ puts e.backtrace.join("\n")
39
+ puts e.inspect
40
+ end
41
+ file
42
+ end.compact
43
+ end
44
+
45
+ def update_file(file)
46
+ case @options[:update]
47
+ when ::Symbol
48
+ Object.send(@options[:update], file)
49
+ else
50
+ @options[:update].call(file)
51
+ end
52
+ end
53
+
54
+ def ignored?(path)
55
+ File.basename(path)[0] == "_"
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,3 @@
1
+ guard 'post', :rails => false, :update => lambda { |file| Post.save_from_file!(file) } do
2
+ watch(%r{^app/documents/(.+\.md)})
3
+ end
@@ -0,0 +1,5 @@
1
+ module Guard
2
+ module PostVersion
3
+ VERSION = "0.5.0"
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,57 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: guard-post
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.5.0
6
+ platform: ruby
7
+ authors:
8
+ - Lance Pollard
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-09-19 00:00:00 Z
14
+ dependencies: []
15
+
16
+ description: Watch documents update, save them to MongoDB, MySQL, etc.
17
+ email: lancejpollard@gmail.com
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files: []
23
+
24
+ files:
25
+ - Rakefile
26
+ - lib/guard/post/templates/Guardfile
27
+ - lib/guard/post/version.rb
28
+ - lib/guard/post.rb
29
+ homepage: http://github.com/viatropos/guard-post
30
+ licenses:
31
+ - MIT
32
+ post_install_message:
33
+ rdoc_options: []
34
+
35
+ require_paths:
36
+ - lib
37
+ required_ruby_version: !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: "0"
43
+ required_rubygems_version: !ruby/object:Gem::Requirement
44
+ none: false
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: "0"
49
+ requirements: []
50
+
51
+ rubyforge_project: guard-post
52
+ rubygems_version: 1.8.10
53
+ signing_key:
54
+ specification_version: 3
55
+ summary: Watch documents update, save them to MongoDB, MySQL, etc.
56
+ test_files: []
57
+