herbert 0.0.3 → 0.0.5
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/lib/herbert.rb +1 -1
- data/lib/herbert/ApplicationError.rb +12 -12
- data/lib/herbert/Configurator.rb +15 -8
- data/lib/herbert/Jsonify.rb +7 -1
- data/lib/herbert/Services.rb +1 -1
- data/lib/herbert/Utils.rb +17 -2
- data/lib/herbert/loader.rb +5 -4
- data/lib/herbert/version.rb +1 -1
- metadata +3 -3
data/lib/herbert.rb
CHANGED
@@ -9,21 +9,21 @@ module Herbert
|
|
9
9
|
|
10
10
|
# Code to text translation
|
11
11
|
Translation = {
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
12
|
+
1000 => ["Malformated JSON", 400],
|
13
|
+
1001 => ["Non-unicode encoding",400],
|
14
|
+
1002 => ["Non-acceptable Accept header", 406],
|
15
|
+
1003 => ["Not found", 404],
|
16
|
+
1010 => ["Missing request body", 400],
|
17
|
+
1011 => ["Missign required parameter", 400],
|
18
|
+
1012 => ["Invalid request body", 400],
|
19
|
+
1020 => ["Unspecified error occured", 500]
|
20
20
|
}
|
21
21
|
|
22
22
|
def initialize(errno, http_code = nil, errors = [])
|
23
|
-
raise ArgumentError, "Unknown error code: #{errno}" unless Translation.has_key?(errno.
|
24
|
-
@code = errno
|
25
|
-
@message = Translation[@code
|
26
|
-
@http_code = (http_code || Translation[@code
|
23
|
+
raise ArgumentError, "Unknown error code: #{errno}" unless Translation.has_key?(errno.to_i)
|
24
|
+
@code = errno.to_i
|
25
|
+
@message = Translation[@code][0]
|
26
|
+
@http_code = (http_code || Translation[@code][1])
|
27
27
|
@errors = errors.to_a
|
28
28
|
end
|
29
29
|
|
data/lib/herbert/Configurator.rb
CHANGED
@@ -7,9 +7,15 @@ module Herbert
|
|
7
7
|
#
|
8
8
|
def self.registered(app)
|
9
9
|
# Enable envs such as development;debug, where debug is herberts debug flag
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
if ENV['RACK_ENV'] === nil then
|
11
|
+
app.set :environment, :test
|
12
|
+
ENV['HERBERT_DEBUG'] = '1'
|
13
|
+
end
|
14
|
+
if ! app.test? then
|
15
|
+
env = ENV['RACK_ENV'].split(';')
|
16
|
+
ENV['RACK_ENV'], ENV['HERBERT_DEBUG'] = (env[0].empty? ? 'development' : env[0]), (env[1] == 'debug' ? 1:0).to_s
|
17
|
+
app.set :environment, ENV['RACK_ENV'].downcase.to_sym
|
18
|
+
end
|
13
19
|
end
|
14
20
|
end
|
15
21
|
|
@@ -19,7 +25,7 @@ module Herbert
|
|
19
25
|
end
|
20
26
|
|
21
27
|
def development?
|
22
|
-
ENV['RACK_ENV'] == 'development' || (ENV['RACK_ENV']
|
28
|
+
ENV['RACK_ENV'] == 'development' || (ENV['RACK_ENV']===nil)
|
23
29
|
end
|
24
30
|
|
25
31
|
def debug?
|
@@ -30,6 +36,7 @@ module Herbert
|
|
30
36
|
def self.registered(app)
|
31
37
|
app.enable :logging if app.development?
|
32
38
|
#Assume loading by rackup...
|
39
|
+
puts app.settings.root
|
33
40
|
app.settings.root ||= File.join(Dir.getwd, 'lib')
|
34
41
|
path = File.join(app.settings.root, 'config')
|
35
42
|
# Load and evaluate common.rb and appropriate settings
|
@@ -43,10 +50,10 @@ module Herbert
|
|
43
50
|
log.h_warn("Configuration file #{cpath} not found")
|
44
51
|
end
|
45
52
|
end
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
53
|
+
# So, we have all our settings... Please note that configure
|
54
|
+
# block inside an App can overwrite our settings, but Herbert's
|
55
|
+
# services are being created right now, so they only take in account
|
56
|
+
# previous declarations
|
50
57
|
end
|
51
58
|
|
52
59
|
end
|
data/lib/herbert/Jsonify.rb
CHANGED
data/lib/herbert/Services.rb
CHANGED
@@ -59,7 +59,7 @@ module Sinatra
|
|
59
59
|
Dir.new(resource_dir).each do |verb|
|
60
60
|
next if %w{.. .}.include? verb
|
61
61
|
# And create the <schema_root>::<resource>::<verb_schema> constant
|
62
|
-
validation_module.const_get(resource_name).const_set(
|
62
|
+
validation_module.const_get(resource_name).const_set(/^(\w+)(\.yaml|\.yml)/.match(verb)[1].capitalize, ::YAML.load_file(File.join(resource_dir, verb)))
|
63
63
|
end
|
64
64
|
end
|
65
65
|
end
|
data/lib/herbert/Utils.rb
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
class Hash
|
2
|
+
def delete_all(*names)
|
3
|
+
names.each {|name| delete(name)}
|
4
|
+
self
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
|
1
9
|
module Herbert
|
2
10
|
module Utils
|
3
11
|
# Assert v<major>.<minor>.<etc> tags
|
@@ -12,8 +20,15 @@ module Herbert
|
|
12
20
|
Utils.version
|
13
21
|
end
|
14
22
|
|
15
|
-
|
16
|
-
|
23
|
+
Range = [('0'..'9').to_a,('a'..'z').to_a].flatten
|
24
|
+
def nonce(length = 16)
|
25
|
+
res = ''
|
26
|
+
length.times {res += Range[rand(36)]}
|
27
|
+
res
|
28
|
+
end
|
29
|
+
|
30
|
+
def db_id(source)
|
31
|
+
BSON::ObjectId.from_string(source.to_s)
|
17
32
|
end
|
18
33
|
end
|
19
34
|
end
|
data/lib/herbert/loader.rb
CHANGED
@@ -2,6 +2,7 @@ require 'logger'
|
|
2
2
|
require 'mongo'
|
3
3
|
require 'memcache'
|
4
4
|
require 'kwalify'
|
5
|
+
require 'yaml'
|
5
6
|
$:.unshift(File.dirname(__FILE__))
|
6
7
|
require 'version'
|
7
8
|
|
@@ -42,12 +43,12 @@ module Herbert
|
|
42
43
|
app.enable :append_log_id # If logs go to Mongo, IDs will be appended to responses
|
43
44
|
## register the ;debug flag patch first to enable proper logging
|
44
45
|
app.register Herbert::Configurator::Prepatch
|
46
|
+
app.register Herbert::Configurator::Helpers
|
47
|
+
app.helpers Herbert::Configurator::Helpers
|
45
48
|
# the logger
|
46
|
-
log.level = app.
|
49
|
+
log.level = app.debug? ? Logger::DEBUG : Logger::INFO
|
47
50
|
# the extensions
|
48
51
|
app.register Herbert::Configurator
|
49
|
-
app.register Herbert::Configurator::Helpers
|
50
|
-
app.helpers Herbert::Configurator::Helpers
|
51
52
|
app.register Herbert::Error
|
52
53
|
app.helpers Herbert::Error::Helpers
|
53
54
|
app.register Sinatra::Jsonify
|
@@ -63,7 +64,7 @@ module Herbert
|
|
63
64
|
app.helpers Sinatra::Log
|
64
65
|
app.register Sinatra::Log::Extension
|
65
66
|
app.register Herbert::ResourceLoader if app.respond_to?(:resources) && app.resources
|
66
|
-
app.
|
67
|
+
app.helpers Herbert::Utils::Helpers
|
67
68
|
end
|
68
69
|
end
|
69
70
|
end
|
data/lib/herbert/version.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 5
|
9
|
+
version: 0.0.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Pavel Kalvoda
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-
|
17
|
+
date: 2011-07-01 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|