Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
cj committed Sep 23, 2014
0 parents commit 1d92148
Show file tree
Hide file tree
Showing 10 changed files with 186 additions and 0 deletions.
14 changes: 14 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/.bundle/
/.yardoc
/Gemfile.lock
/_yardoc/
/coverage/
/doc/
/pkg/
/spec/reports/
/tmp/
*.bundle
*.so
*.o
*.a
mkmf.log
4 changes: 4 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
source 'https://rubygems.org'

# Specify your gem's dependencies in roda-bin.gemspec
gemspec
22 changes: 22 additions & 0 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
Copyright (c) 2014 cj

MIT License

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 changes: 31 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Roda::Bin

TODO: Write a gem description

## Installation

Add this line to your application's Gemfile:

```ruby
gem 'roda-bin'
```

And then execute:

$ bundle

Or install it yourself as:

$ gem install roda-bin

## Usage

TODO: Write usage instructions here

## Contributing

1. Fork it ( https://github.com/[my-github-username]/roda-bin/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request
2 changes: 2 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
require "bundler/gem_tasks"

36 changes: 36 additions & 0 deletions bin/roda
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#!/usr/bin/env ruby
# encoding: utf-8

ENV['RACK_ENV'] ||= 'development'

if ARGV.empty?
puts "usage: roda server"
exit
end

require "clap"
$LOAD_PATH << File.expand_path(File.join(File.dirname(__FILE__), "../lib"))
require 'roda/bin/cli'

env = '.env'
rack_env = "#{env}.#{ENV['RACK_ENV']}"

if File.file? env
File.foreach env do |line|
key, value = line.split "=", 2
ENV[key] = value.gsub('\n', '').strip
end
end

if File.file? rack_env
File.foreach rack_env do |line|
key, value = line.split "=", 2
ENV[key] = value.gsub('\n', '').strip
end
end

Gem.clear_paths

Clap.run ARGV,
"server" => -> { Roda::Bin.server },
"s" => -> { Roda::Bin.server }
6 changes: 6 additions & 0 deletions lib/roda/bin.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
require "roda/bin/version"

class Roda
module BIN
end
end
39 changes: 39 additions & 0 deletions lib/roda/bin/cli.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
require 'rerun'

class BIN
module CLI
extend self

def server
args = [
'thin', 'start', '--threaded', '--max-persistent-conns', '300',
"--max-conns", "400", "-p", "8080"
].concat(argv)

options = {
cmd: args.join(' '),
signal: 'TERM',
growl: true,
name: 'BrowserIO',
ignore: [],
dir: ["."],
pattern: "**/*.{rb,js,coffee,css,scss,sass,styl,erb,html,haml,ru,yml,slim,md}"
}

Rerun::Runner.keep_running(options[:cmd], options)
end

def envs
@envs ||= {}
end

private

def argv
@argv ||= begin
ARGV.shift
ARGV
end
end
end
end
5 changes: 5 additions & 0 deletions lib/roda/bin/version.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
class Roda
module BIN
VERSION = "0.0.1"
end
end
27 changes: 27 additions & 0 deletions roda-bin.gemspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# coding: utf-8
lib = File.expand_path('../lib', __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'roda/bin/version'

Gem::Specification.new do |spec|
spec.name = "roda-bin"
spec.version = Roda::BIN::VERSION
spec.authors = ["cj"]
spec.email = ["cjlazell@gmail.com"]
spec.summary = %q{a bin for roda}
spec.description = %q{allows you to run roda server/console etc...}
spec.homepage = ""
spec.license = "MIT"

spec.files = `git ls-files -z`.split("\x0")
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
spec.require_paths = ["lib"]

spec.add_dependency "roda"
spec.add_dependency "clap"
spec.add_dependency "rerun"
spec.add_dependency "thin"
spec.add_development_dependency "bundler", "~> 1.7"
spec.add_development_dependency "rake", "~> 10.0"
end

0 comments on commit 1d92148

Please sign in to comment.