boned 0.2.6 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -0
- data/README.md +6 -4
- data/Rakefile +45 -38
- data/VERSION.yml +4 -0
- data/api/api-set.rb +31 -30
- data/api/api.rb +49 -49
- data/app.ru +36 -0
- data/bin/boned +6 -71
- data/boned.gemspec +68 -46
- data/config/redis-server.conf +149 -131
- data/lib/boned/api/base.rb +163 -0
- data/lib/boned/api.rb +76 -69
- data/lib/boned/app.rb +0 -0
- data/lib/boned.rb +33 -165
- data/try/10_basics_try.rb +37 -0
- data/try/11_signature_try.rb +11 -0
- data/try/20_keys_try.rb +34 -0
- metadata +72 -30
- data/config.ru +0 -31
- data/lib/boned/api/debug.rb +0 -21
- data/lib/boned/api/redis.rb +0 -44
- data/lib/boned/api/service.rb +0 -86
- data/lib/boned/cli.rb +0 -62
- data/lib/boned/models/bone.rb +0 -112
- data/lib/boned/models.rb +0 -34
- data/lib/boned/server.rb +0 -67
- data/try/10_bone_model.rb +0 -21
data/.gitignore
ADDED
data/README.md
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
## Boned - 0.
|
1
|
+
## Boned - 0.3 ##
|
2
2
|
|
3
|
-
**
|
3
|
+
**Remote environment variables**
|
4
4
|
|
5
5
|
|
6
6
|
## Running
|
7
7
|
|
8
8
|
$ redis-server config/redis-server.conf
|
9
|
-
$ export
|
9
|
+
$ export BONED_SOURCE=redis://localhost:8045/
|
10
10
|
$ boned start
|
11
11
|
|
12
12
|
|
@@ -19,10 +19,12 @@ You also need to install [redis](http://code.google.com/p/redis/).
|
|
19
19
|
|
20
20
|
## More Information
|
21
21
|
|
22
|
+
See [bone](https://github.com/solutious/bone).
|
23
|
+
|
22
24
|
|
23
25
|
## Credits
|
24
26
|
|
25
|
-
* Delano Mandelbaum
|
27
|
+
* [Delano Mandelbaum](http://solutious.com)
|
26
28
|
|
27
29
|
|
28
30
|
## Thanks
|
data/Rakefile
CHANGED
@@ -1,59 +1,66 @@
|
|
1
|
-
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require '
|
5
|
-
require 'rake/runtest'
|
6
|
-
require 'fileutils'
|
7
|
-
include FileUtils
|
1
|
+
require "rubygems"
|
2
|
+
require "rake"
|
3
|
+
require "rake/clean"
|
4
|
+
require 'yaml'
|
8
5
|
|
9
6
|
begin
|
10
7
|
require 'hanna/rdoctask'
|
11
8
|
rescue LoadError
|
12
9
|
require 'rake/rdoctask'
|
13
10
|
end
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
# PACKAGE =============================================================
|
19
|
-
|
11
|
+
|
12
|
+
config = YAML.load_file("VERSION.yml")
|
13
|
+
task :default => ["build"]
|
14
|
+
CLEAN.include [ 'pkg', 'doc' ]
|
20
15
|
name = "boned"
|
21
|
-
load "#{name}.gemspec"
|
22
|
-
|
23
|
-
version = @spec.version
|
24
16
|
|
25
|
-
|
26
|
-
|
17
|
+
begin
|
18
|
+
require "jeweler"
|
19
|
+
Jeweler::Tasks.new do |gem|
|
20
|
+
gem.version = "#{config[:MAJOR]}.#{config[:MINOR]}.#{config[:PATCH]}"
|
21
|
+
gem.name = name
|
22
|
+
gem.rubyforge_project = gem.name
|
23
|
+
gem.summary = "HTTP server companion for Bone (remote environment variables)"
|
24
|
+
gem.description = gem.summary
|
25
|
+
gem.email = "delano@solutious.com"
|
26
|
+
gem.homepage = "https://github.com/solutious/boned"
|
27
|
+
gem.authors = ["Delano Mandelbaum"]
|
28
|
+
gem.add_dependency("bone", ">= 0.3.0")
|
29
|
+
gem.add_dependency("sinatra", ">= 1.0.0")
|
30
|
+
gem.add_dependency("thin")
|
31
|
+
end
|
32
|
+
Jeweler::GemcutterTasks.new
|
33
|
+
rescue LoadError
|
34
|
+
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
27
35
|
end
|
28
36
|
|
29
|
-
task :test do
|
30
|
-
puts "Success!"
|
31
|
-
end
|
32
37
|
|
33
|
-
|
34
|
-
|
38
|
+
Rake::RDocTask.new do |rdoc|
|
39
|
+
version = "#{config[:MAJOR]}.#{config[:MINOR]}.#{config[:PATCH]}.#{config[:BUILD]}"
|
40
|
+
rdoc.rdoc_dir = "doc"
|
41
|
+
rdoc.title = "#{name} #{version}"
|
42
|
+
rdoc.rdoc_files.include("README*")
|
43
|
+
rdoc.rdoc_files.include("LICENSE.txt")
|
44
|
+
rdoc.rdoc_files.include("bin/*.rb")
|
45
|
+
rdoc.rdoc_files.include("lib/**/*.rb")
|
35
46
|
end
|
36
47
|
|
37
|
-
task :uninstall => [ :clean ] do
|
38
|
-
sh %{sudo gem uninstall #{name}}
|
39
|
-
end
|
40
48
|
|
49
|
+
# Rubyforge Release / Publish Tasks ==================================
|
41
50
|
|
51
|
+
#about 'Publish website to rubyforge'
|
52
|
+
task 'publish:rdoc' => 'doc/index.html' do
|
53
|
+
#sh "scp -rp doc/* rubyforge.org:/var/www/gforge-projects/#{name}/"
|
54
|
+
end
|
42
55
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
t.rdoc_files.include('README.md')
|
50
|
-
t.rdoc_files.include('CHANGES.txt')
|
51
|
-
#t.rdoc_files.include('Rudyfile') # why is the formatting f'd?
|
52
|
-
t.rdoc_files.include('bin/*')
|
53
|
-
t.rdoc_files.include('lib/**/*.rb')
|
56
|
+
#about 'Public release to rubyforge'
|
57
|
+
task 'publish:gem' => [:package] do |t|
|
58
|
+
sh <<-end
|
59
|
+
rubyforge add_release -o Any -a CHANGES.txt -f -n README.md #{name} #{name} #{@spec.version} pkg/#{name}-#{@spec.version}.gem &&
|
60
|
+
rubyforge add_file -o Any -a CHANGES.txt -f -n README.md #{name} #{name} #{@spec.version} pkg/#{name}-#{@spec.version}.tgz
|
61
|
+
end
|
54
62
|
end
|
55
63
|
|
56
|
-
CLEAN.include [ 'pkg', '*.gem', '.config', 'doc', 'coverage*' ]
|
57
64
|
|
58
65
|
|
59
66
|
|
data/VERSION.yml
ADDED
data/api/api-set.rb
CHANGED
@@ -1,32 +1,33 @@
|
|
1
1
|
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
set :
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
param :
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
param :
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
3
|
+
|
4
|
+
#usecase "Set" do
|
5
|
+
# set :key => :simple
|
6
|
+
# set :token => '1901484c41b8752d61863e323c743abe2c6e90f8841bbdfa789e1d70bc6f4899'
|
7
|
+
#
|
8
|
+
# get "/v1/set/:key" do
|
9
|
+
# set :value => (rand*100000).to_i
|
10
|
+
# param :token => resource(:token)
|
11
|
+
# param :value => resource(:value)
|
12
|
+
# end
|
13
|
+
#
|
14
|
+
# get "/v1/get/:key" do
|
15
|
+
# param :token => resource(:token)
|
16
|
+
# response 200 do
|
17
|
+
# p [resource(:value), body.to_i]
|
18
|
+
# end
|
19
|
+
# end
|
20
|
+
#
|
21
|
+
# get "/v1/set/:key" do
|
22
|
+
# param :key => rand(1000).to_i
|
23
|
+
# set :value => (rand*100000).to_i
|
24
|
+
# param :token => resource(:token)
|
25
|
+
# param :value => resource(:value)
|
26
|
+
# end
|
27
|
+
#
|
28
|
+
# xpost "/v1/set/:key" do
|
29
|
+
# param :key => :file
|
30
|
+
# body file('/tmp/file')
|
31
|
+
# end
|
32
|
+
#
|
33
|
+
#end
|
data/api/api.rb
CHANGED
@@ -1,51 +1,51 @@
|
|
1
1
|
|
2
2
|
|
3
|
-
usecase do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
end
|
3
|
+
# usecase do
|
4
|
+
# set :token => '1901484c41b8752d61863e323c743abe2c6e90f8841bbdfa789e1d70bc6f4899'
|
5
|
+
# set :key => :simple
|
6
|
+
#
|
7
|
+
# post "/v1/set/:key" do
|
8
|
+
# set :value => (rand*100000).to_i
|
9
|
+
# param :token => resource(:token)
|
10
|
+
# param :value => resource(:value)
|
11
|
+
# end
|
12
|
+
#
|
13
|
+
# get "/v1/get/:key" do
|
14
|
+
# param :token => resource(:token)
|
15
|
+
# response 200 do
|
16
|
+
# p [resource(:value), body.to_i]
|
17
|
+
# end
|
18
|
+
# end
|
19
|
+
#
|
20
|
+
# post "/v1/set/:key" do
|
21
|
+
# param :key => 'rand(1000).to_i'
|
22
|
+
# set :value => (rand*100000).to_i
|
23
|
+
# param :token => resource(:token)
|
24
|
+
# param :value => resource(:value)
|
25
|
+
# end
|
26
|
+
#
|
27
|
+
# xpost "/v1/set/:key" do
|
28
|
+
# param :key => :file
|
29
|
+
# body file('/tmp/file')
|
30
|
+
# end
|
31
|
+
#
|
32
|
+
# get "/v1/keys/:key" do
|
33
|
+
# param :token => resource(:token)
|
34
|
+
# end
|
35
|
+
#
|
36
|
+
# get "/v1/keys" do
|
37
|
+
# param :token => resource(:token)
|
38
|
+
# end
|
39
|
+
#
|
40
|
+
# delete "/v1/del/:key" do
|
41
|
+
# header :'X-BONE-TOKEN' => resource(:token)
|
42
|
+
# end
|
43
|
+
#
|
44
|
+
# get "/v1/get/:key" do
|
45
|
+
# param :token => resource(:token)
|
46
|
+
# response 404 do
|
47
|
+
# # This is the correct response so don't fail
|
48
|
+
# end
|
49
|
+
# end
|
50
|
+
#
|
51
|
+
# end
|
data/app.ru
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
# Rackup - Boned
|
2
|
+
# 2009-12-11
|
3
|
+
|
4
|
+
# bin/boned -e dev start
|
5
|
+
|
6
|
+
ENV['RACK_ENV'] ||= 'production'
|
7
|
+
ENV['APP_ROOT'] = ::File.expand_path(::File.join(::File.dirname(__FILE__)))
|
8
|
+
$:.unshift(::File.join(ENV['APP_ROOT'], 'app'))
|
9
|
+
$:.unshift(::File.join(ENV['APP_ROOT'], 'lib'))
|
10
|
+
|
11
|
+
require 'sinatra'
|
12
|
+
|
13
|
+
require 'boned/api'
|
14
|
+
|
15
|
+
disable :run # disable sinatra's auto-application starting
|
16
|
+
|
17
|
+
configure :prod, :proto, :status do
|
18
|
+
Bone.info "arrested #{ENV['RACK_ENV']}"
|
19
|
+
Bone.debug = false
|
20
|
+
set :show_exceptions, false
|
21
|
+
set :dump_errors, false
|
22
|
+
set :reload_templates, false
|
23
|
+
map("/#{Bone::APIVERSION}") { run Boned::API }
|
24
|
+
end
|
25
|
+
|
26
|
+
configure :dev do
|
27
|
+
Bone.info "arrested #{ENV['RACK_ENV']}"
|
28
|
+
Bone.debug = true
|
29
|
+
set :show_exceptions, true
|
30
|
+
set :dump_errors, true
|
31
|
+
set :reload_templates, true
|
32
|
+
map("/#{Bone::APIVERSION}") { run Boned::API }
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
|
data/bin/boned
CHANGED
@@ -1,74 +1,9 @@
|
|
1
|
-
#!/
|
1
|
+
#!/bin/sh
|
2
2
|
|
3
|
-
# = Boned
|
4
|
-
#
|
5
|
-
#
|
6
3
|
# Usage:
|
7
|
-
#
|
8
|
-
# $ boned -h
|
9
|
-
# $ boned [-d] start-master
|
10
4
|
#
|
11
|
-
|
12
|
-
|
13
|
-
#
|
14
|
-
|
15
|
-
|
16
|
-
$:.unshift lib_dir
|
17
|
-
#$:.unshift '/Users/delano/Projects/opensource/drydock/lib'
|
18
|
-
|
19
|
-
require 'rubygems'
|
20
|
-
require 'drydock'
|
21
|
-
require 'boned'
|
22
|
-
require 'boned/cli'
|
23
|
-
|
24
|
-
# Command-line interface for bin/stella
|
25
|
-
class Boned::CLI::Definition
|
26
|
-
extend Drydock
|
27
|
-
|
28
|
-
debug :off
|
29
|
-
|
30
|
-
default :info
|
31
|
-
|
32
|
-
global :V, :version, "Display version" do
|
33
|
-
puts "Boned: #{Boned::VERSION} (api: #{Boned::APIVERSION})"
|
34
|
-
exit
|
35
|
-
end
|
36
|
-
|
37
|
-
global :R, :rackup, String, "Specify a rackup file"
|
38
|
-
global :e, :environment, String, "Rack environment"
|
39
|
-
global :v, :verbose, "Increase output" do; 1 end
|
40
|
-
global :d, :daemon, "Run as a daemon"
|
41
|
-
global :p, :port, Integer, "Port to run on"
|
42
|
-
global :D, :debug do
|
43
|
-
Drydock.debug true
|
44
|
-
Boned.enable_debug
|
45
|
-
end
|
46
|
-
|
47
|
-
command :start => Boned::CLI
|
48
|
-
command :stop => Boned::CLI
|
49
|
-
command :stop_redis => Boned::CLI
|
50
|
-
command :info => Boned::CLI
|
51
|
-
|
52
|
-
end
|
53
|
-
|
54
|
-
|
55
|
-
begin
|
56
|
-
Drydock.run!(ARGV, STDIN) if Drydock.run? && !Drydock.has_run?
|
57
|
-
rescue Boned::Problem => ex
|
58
|
-
STDERR.puts ex.message
|
59
|
-
STDERR.puts ex.backtrace if Drydock.debug?
|
60
|
-
exit 1
|
61
|
-
rescue Drydock::ArgError, Drydock::OptError => ex
|
62
|
-
STDERR.puts ex.message
|
63
|
-
STDERR.puts ex.usage
|
64
|
-
rescue Drydock::InvalidArgument => ex
|
65
|
-
STDERR.puts ex.message
|
66
|
-
rescue Drydock::UnknownCommand => ex
|
67
|
-
STDERR.puts "Unknown command: %s" % ex.name
|
68
|
-
rescue Interrupt
|
69
|
-
puts $/, "Exiting... "
|
70
|
-
exit 1
|
71
|
-
rescue => ex
|
72
|
-
STDERR.puts "ERROR (#{ex.class.to_s}): #{ex.message}"
|
73
|
-
STDERR.puts ex.backtrace if Drydock.debug?
|
74
|
-
end
|
5
|
+
# bin/boned -e dev start
|
6
|
+
# bin/boned -e prod -d start
|
7
|
+
# bin/boned -e prod stop
|
8
|
+
#
|
9
|
+
thin -p 3073 -P /tmp/boned.pid --rackup app.ru -l /tmp/boned.log $*
|
data/boned.gemspec
CHANGED
@@ -1,48 +1,70 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
s.summary = "The bone daemon"
|
6
|
-
s.description = s.summary
|
7
|
-
s.author = "Delano Mandelbaum"
|
8
|
-
s.email = "delano@solutious.com"
|
9
|
-
s.homepage = "http://github.com/solutious/boned"
|
10
|
-
|
11
|
-
s.extra_rdoc_files = %w[README.md LICENSE.txt CHANGES.txt]
|
12
|
-
s.has_rdoc = true
|
13
|
-
s.rdoc_options = ["--line-numbers", "--title", s.summary, "--main", "README.md"]
|
14
|
-
s.require_paths = %w[lib]
|
15
|
-
|
16
|
-
s.add_dependency 'bone', '= 0.2.6'
|
17
|
-
|
18
|
-
s.executables = %w[boned]
|
19
|
-
|
20
|
-
# = MANIFEST =
|
21
|
-
# git ls-files
|
22
|
-
s.files = %w(
|
23
|
-
CHANGES.txt
|
24
|
-
LICENSE.txt
|
25
|
-
README.md
|
26
|
-
Rakefile
|
27
|
-
api/api-set.rb
|
28
|
-
api/api.rb
|
29
|
-
bin/boned
|
30
|
-
boned.gemspec
|
31
|
-
config.ru
|
32
|
-
config/redis-server.conf
|
33
|
-
lib/boned.rb
|
34
|
-
lib/boned/api.rb
|
35
|
-
lib/boned/api/debug.rb
|
36
|
-
lib/boned/api/redis.rb
|
37
|
-
lib/boned/api/service.rb
|
38
|
-
lib/boned/cli.rb
|
39
|
-
lib/boned/models.rb
|
40
|
-
lib/boned/models/bone.rb
|
41
|
-
lib/boned/server.rb
|
42
|
-
public/index.html
|
43
|
-
try/10_bone_model.rb
|
44
|
-
views/redisviewer/keys.erb
|
45
|
-
)
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
46
5
|
|
47
|
-
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{boned}
|
8
|
+
s.version = "0.3.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Delano Mandelbaum"]
|
12
|
+
s.date = %q{2010-12-17}
|
13
|
+
s.default_executable = %q{boned}
|
14
|
+
s.description = %q{HTTP server companion for Bone (remote environment variables)}
|
15
|
+
s.email = %q{delano@solutious.com}
|
16
|
+
s.executables = ["boned"]
|
17
|
+
s.extra_rdoc_files = [
|
18
|
+
"LICENSE.txt",
|
19
|
+
"README.md"
|
20
|
+
]
|
21
|
+
s.files = [
|
22
|
+
".gitignore",
|
23
|
+
"CHANGES.txt",
|
24
|
+
"LICENSE.txt",
|
25
|
+
"README.md",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION.yml",
|
28
|
+
"api/api-set.rb",
|
29
|
+
"api/api.rb",
|
30
|
+
"app.ru",
|
31
|
+
"bin/boned",
|
32
|
+
"boned.gemspec",
|
33
|
+
"config/redis-server.conf",
|
34
|
+
"lib/boned.rb",
|
35
|
+
"lib/boned/api.rb",
|
36
|
+
"lib/boned/api/base.rb",
|
37
|
+
"lib/boned/app.rb",
|
38
|
+
"public/index.html",
|
39
|
+
"try/10_basics_try.rb",
|
40
|
+
"try/11_signature_try.rb",
|
41
|
+
"try/20_keys_try.rb",
|
42
|
+
"views/redisviewer/keys.erb"
|
43
|
+
]
|
44
|
+
s.homepage = %q{https://github.com/solutious/boned}
|
45
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
46
|
+
s.require_paths = ["lib"]
|
47
|
+
s.rubyforge_project = %q{boned}
|
48
|
+
s.rubygems_version = %q{1.3.7}
|
49
|
+
s.summary = %q{HTTP server companion for Bone (remote environment variables)}
|
50
|
+
|
51
|
+
if s.respond_to? :specification_version then
|
52
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
53
|
+
s.specification_version = 3
|
54
|
+
|
55
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
56
|
+
s.add_runtime_dependency(%q<bone>, [">= 0.3.0"])
|
57
|
+
s.add_runtime_dependency(%q<sinatra>, [">= 1.0.0"])
|
58
|
+
s.add_runtime_dependency(%q<thin>, [">= 0"])
|
59
|
+
else
|
60
|
+
s.add_dependency(%q<bone>, [">= 0.3.0"])
|
61
|
+
s.add_dependency(%q<sinatra>, [">= 1.0.0"])
|
62
|
+
s.add_dependency(%q<thin>, [">= 0"])
|
63
|
+
end
|
64
|
+
else
|
65
|
+
s.add_dependency(%q<bone>, [">= 0.3.0"])
|
66
|
+
s.add_dependency(%q<sinatra>, [">= 1.0.0"])
|
67
|
+
s.add_dependency(%q<thin>, [">= 0"])
|
68
|
+
end
|
48
69
|
end
|
70
|
+
|