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.
@@ -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