Sha256: da6112f67da8bf3c8f3a9c4fbda7d6c4b098be69bbfef988bb0d7bef821bb386

Contents?: true

Size: 1.5 KB

Versions: 1

Compression:

Stored size: 1.5 KB

Contents

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

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

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

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

### Custom exception notifier (create initializer with:)

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


Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bin_script-0.1.8 README.md