nimbu 0.2.13 → 0.2.14

Sign up to get free protection for your applications and to get access to all the features.
@@ -20,6 +20,7 @@ class Nimbu::Command::Server < Nimbu::Command::Base
20
20
  else
21
21
  no_haml = args.include?("--no-haml")
22
22
  no_compass = args.include?("--no-compass")
23
+ Nimbu.debug = args.include?("--debug")
23
24
 
24
25
  if !(File.exists?(File.join(Dir.pwd,'haml')) && File.directory?(File.join(Dir.pwd,'haml')))
25
26
  no_haml = true
@@ -3,6 +3,7 @@ require "sinatra/reloader"
3
3
  require "sinatra/multi_route"
4
4
  require "vendor/nimbu/okjson"
5
5
  require 'term/ansicolor'
6
+ require "base64"
6
7
 
7
8
  module Nimbu
8
9
  module Server
@@ -43,39 +44,45 @@ module Nimbu
43
44
  # end
44
45
 
45
46
  route :get, :post, :put, :delete, '*' do
46
- verb = (
47
- if request.get? then "GET"
48
- elsif request.post? then "POST"
49
- elsif request.put? then "PUT"
50
- elsif request.delete? then "DELETE"
47
+
48
+ method = (
49
+ if request.get? then "get"
50
+ elsif request.post? then "post"
51
+ elsif request.put? then "put"
52
+ elsif request.delete? then "delete"
51
53
  end
52
54
  )
53
- puts green("#{verb} #{request.fullpath}")
55
+ puts green("#{method.upcase} #{request.fullpath}")
56
+
54
57
  if request.post? || request.put? || request.delete?
55
58
  path = request.path == "/" ? request.path : request.path.gsub(/\/$/,'')
56
59
  begin
57
- method = "post" if request.post?
58
- method = "put" if request.put?
59
- method = "delete" if request.delete?
60
-
61
- result = json_decode(nimbu.post_request({:path => path, :extra => params, :session => session, :method => method, :logged_in => session[:logged_in]}))
60
+ response = nimbu.post_request({:path => path, :extra => params, :method => method, :client_session => session })
61
+ puts "RESPONSE: #{response}" if Nimbu.debug
62
+ result = json_decode(response)
63
+ puts result if Nimbu.debug
64
+ parse_session(result)
62
65
  rescue Exception => e
63
- return e.http_body
66
+ if e.respond_to?(:http_body)
67
+ return e.http_body
68
+ else
69
+ raise e
70
+ end
64
71
  end
65
72
 
66
- session[:logged_in] = true if result["logged_in"]
67
73
  session[:flash] = result["flash"] if result["flash"]
68
74
  redirect result["redirect_to"] and return if result["redirect_to"]
69
75
  else
70
76
  # First get the template name and necessary subtemplates
71
77
  path = request.path == "/" ? request.path : request.path.gsub(/\/$/,'')
72
78
  begin
73
- result = json_decode(nimbu.get_template({:path => path, :extra => params, :method => "get", :extra => params, :logged_in => session[:logged_in]}))
79
+ result = json_decode(nimbu.get_template({:path => path, :extra => params, :method => "get", :extra => params, :client_session => session }))
80
+ puts result if Nimbu.debug
81
+ parse_session(result)
74
82
  rescue Exception => e
75
83
  return e.http_body
76
84
  end
77
85
 
78
- session[:logged_in] = result["logged_in"] if result.has_key?("logged_in")
79
86
  redirect result["redirect_to"] and return if result["redirect_to"]
80
87
  end
81
88
 
@@ -117,8 +124,9 @@ module Nimbu
117
124
 
118
125
  # Send the templates to the browser
119
126
  begin
120
- response = nimbu.get_request({:path => path, :template => template_code, :layout => layout_code, :extra => params, :logged_in => session[:logged_in], :method => request.post? ? "post" : "get"})
121
- results = json_decode(response)
127
+ results = json_decode(nimbu.get_request({:path => path, :template => template_code, :layout => layout_code, :extra => params, :method => method, :client_session => session }))
128
+ puts result if Nimbu.debug
129
+ parse_session(results)
122
130
  return "#{results["result"]}"
123
131
  rescue RestClient::Exception => error
124
132
  return error.http_body
@@ -176,6 +184,20 @@ module Nimbu
176
184
  Nimbu::Auth.client
177
185
  end
178
186
 
187
+ def parse_session(response)
188
+ if !response["client_session"].nil?
189
+ response["client_session"].each do |key,value|
190
+ session[key.to_sym] = value
191
+ puts "Session: :#{key} => #{value}" if Nimbu.debug
192
+ end
193
+ session.each do |key,value|
194
+ if !response["client_session"].has_key?(key.to_s)
195
+ session.delete(key)
196
+ end
197
+ end
198
+ end
199
+ end
200
+
179
201
  end
180
202
  end
181
203
  end
data/lib/nimbu/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Nimbu
2
- VERSION = "0.2.13"
2
+ VERSION = "0.2.14"
3
3
  end
data/lib/nimbu.rb CHANGED
@@ -2,5 +2,11 @@ require "nimbu/version"
2
2
  require "nimbu/client"
3
3
 
4
4
  module Nimbu
5
- # Your code goes here...
5
+ def self.debug=(value)
6
+ @@debug = value
7
+ end
8
+
9
+ def self.debug
10
+ @@debug
11
+ end
6
12
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nimbu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.13
4
+ version: 0.2.14
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-13 00:00:00.000000000 Z
12
+ date: 2012-05-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: term-ansicolor
16
- requirement: &70164889209320 !ruby/object:Gem::Requirement
16
+ requirement: &70351799835960 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.0.5
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70164889209320
24
+ version_requirements: *70351799835960
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rest-client
27
- requirement: &70164889208820 !ruby/object:Gem::Requirement
27
+ requirement: &70351799835460 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.6.1
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70164889208820
35
+ version_requirements: *70351799835460
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: launchy
38
- requirement: &70164889208360 !ruby/object:Gem::Requirement
38
+ requirement: &70351799835000 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.3.2
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70164889208360
46
+ version_requirements: *70351799835000
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rubyzip
49
- requirement: &70164889207980 !ruby/object:Gem::Requirement
49
+ requirement: &70351799834620 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70164889207980
57
+ version_requirements: *70351799834620
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: sinatra
60
- requirement: &70164889207520 !ruby/object:Gem::Requirement
60
+ requirement: &70351799834160 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70164889207520
68
+ version_requirements: *70351799834160
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sinatra-contrib
71
- requirement: &70164889207100 !ruby/object:Gem::Requirement
71
+ requirement: &70351799833740 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70164889207100
79
+ version_requirements: *70351799833740
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: compass
82
- requirement: &70164889206680 !ruby/object:Gem::Requirement
82
+ requirement: &70351799833320 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *70164889206680
90
+ version_requirements: *70351799833320
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: haml
93
- requirement: &70164889206260 !ruby/object:Gem::Requirement
93
+ requirement: &70351799832900 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *70164889206260
101
+ version_requirements: *70351799832900
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: fssm
104
- requirement: &70164889205840 !ruby/object:Gem::Requirement
104
+ requirement: &70351799832480 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :runtime
111
111
  prerelease: false
112
- version_requirements: *70164889205840
112
+ version_requirements: *70351799832480
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: thin
115
- requirement: &70164889205420 !ruby/object:Gem::Requirement
115
+ requirement: &70351799832060 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,7 +120,7 @@ dependencies:
120
120
  version: '0'
121
121
  type: :runtime
122
122
  prerelease: false
123
- version_requirements: *70164889205420
123
+ version_requirements: *70351799832060
124
124
  description: Client library and command-line tool to design and manage websites on
125
125
  the Nimbu platform.
126
126
  email: