herbert 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,7 +9,7 @@ require 'active_support'
9
9
  class Sinatra::Base
10
10
  def call(env)
11
11
  begin
12
- call!(env)
12
+ dup.call!(env)
13
13
  rescue => e
14
14
  res = [500,{},[]]
15
15
  if (ENV['HERBERT_DEBUG'].to_i==1) || (ENV['RACK_ENV'] =~ /debug/) then
@@ -9,21 +9,21 @@ module Herbert
9
9
 
10
10
  # Code to text translation
11
11
  Translation = {
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]
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.to_s)
24
- @code = errno
25
- @message = Translation[@code.to_s][0]
26
- @http_code = (http_code || Translation[@code.to_s][1])
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
 
@@ -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
- env = ENV['RACK_ENV'].split(';')
11
- ENV['RACK_ENV'], ENV['HERBERT_DEBUG'] = (env[0].empty? ? 'development' : env[0]), (env[1] == 'debug' ? 1:0).to_s
12
- app.set :environment, ENV['RACK_ENV'].downcase.to_sym
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'].empty?)
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
- # So, we have all our settings... Please note that configure
47
- # block inside an App can overwrite our settings, but Herbert's
48
- # services are being created right now, so they only take in account
49
- # previous declarations
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
@@ -1,9 +1,15 @@
1
1
  class True
2
- def to_json
2
+ def as_json
3
3
  return 1
4
4
  end
5
5
  end
6
6
 
7
+ class BSON::ObjectId
8
+ def as_json(*a)
9
+ to_s
10
+ end
11
+ end
12
+
7
13
  module Sinatra
8
14
 
9
15
  # Makes JSON the default DDL of HTTP communication
@@ -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(/(\w+)(\.yaml|\.yml)/.match(verb)[1].capitalize, YAML.load_file(File.join(resource_dir, verb)))
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
@@ -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
- def nonce(length = 8)
16
- ActiveSupport::SecureRandom.hex(length)
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
@@ -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.development? ? Logger::DEBUG : Logger::INFO
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.register Herbert::Utils::Helpers
67
+ app.helpers Herbert::Utils::Helpers
67
68
  end
68
69
  end
69
70
  end
@@ -1,3 +1,3 @@
1
1
  module Herbert
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 3
9
- version: 0.0.3
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-06-25 00:00:00 +02:00
17
+ date: 2011-07-01 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency