Project

bin_script

0.0
No commit activity in last 3 years
No release in over 3 years
Gem for easy writing and executing scripts in Rails Application. For my purposes much better than Rake, Thor and Rails Runner.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
>= 0

Runtime

 Project Readme

Rails BinScript

Gem for easy writing and executing scripts in Rails Application. For my purposes much better than Rake, Thor and Rails Runner.

Features:

  1. Each bin is a class
  2. Easy writing tests
  3. Custom lock file
  4. Custom logger with formatter for each script
  5. Can be daemonized

Tested on Rails 2.3 and 3.2

gem 'bin_script'
rails generate bin:bin bla

Call like:

$ cd project && ./bin/bla -e production --test -d "2012-04-07" -u "asdf"

Call examples:

$ ./bin/bla -h
$ ./bin/bla -e production
$ ./bin/bla -e production -L ./locks/bla.lock
$ ./bin/bla -e production -l ./log/bla.log
$ ./bin/bla -e production --daemonize --pidfile ./tmp/bla.pid

Example Bin

app/bins/bla_script.rb

class BlaScript < BinScript
  optional :u, "Update string"
  required :d, :description => "Date in format YYYY-MM-DD or YYYY-MM", :default => "2012-04-01"
  noarg    :t, :decription => "Test run", :alias => 'test'

  self.description = "Super Bla script"

  def test?
    params(:t)
  end

  def do!
    if test?
      logger.info "update string #{params(:u)}"
    else
      logger.info "data #{params(:d)}"
    end
  end
end

Options

class BlaScript < BinScript
  self.log_level = Logger::DEBUG
  self.enable_locking = false
  self.enable_logging = false
end

Custom exception notifier (create initializer with:)

class BinScript
  def notify_about_error(exception)
    Mailter.some_notification(exception)...
  end
end