boned 0.2.6 → 0.3.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.
- 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
|
+
|