rumx 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
data/History.md CHANGED
@@ -1,12 +1,17 @@
1
1
  Rumx Changelog
2
2
  =====================
3
3
 
4
+ 0.0.7
5
+
6
+ - Add .properties format for brain-dead hyperic. Might as well allow extending while we're at it.
7
+
4
8
  0.0.6
5
9
 
6
10
  - Separate out error tracking from Timer bean. TimerAndError bean now includes what Timer bean used to bean.
7
11
  Timer and Error beans can be used to track time and errors individually.
8
12
  Apologies for the somewhat incompatible change if anyone is already using Rumx::Beans::Timer. Just rename
9
13
  to Rumx::Beans::TimerAndError if you want both.
14
+ - Fix bug where Rack mounted apps don't have the correct url.
10
15
 
11
16
  0.0.5
12
17
 
data/README.md CHANGED
@@ -87,6 +87,9 @@ Refer to the timer example for more information.
87
87
 
88
88
  ## TODO
89
89
 
90
+ Figure out the "NameError - uninitialized constant Rack::File:" error that occurs frequently on startup and seems related
91
+ to the tree not displaying correctly. Works okay with refresh.
92
+
90
93
  Api doc non-existent.
91
94
 
92
95
  Really needs some html/css love. Right now the sinatra pages are so ugly they'll make your eyes hurt but I don't do this stuff
@@ -102,7 +105,7 @@ New types :date and :datetime?
102
105
 
103
106
  Build in optional authentication or just let user extend Rumx::Server?
104
107
 
105
- Railtie it.
108
+ Railtie it?
106
109
 
107
110
  ## Author
108
111
 
@@ -14,10 +14,10 @@ class MyBean
14
14
  while true
15
15
  begin
16
16
  @timer.measure do
17
+ sleep @sleep_time
17
18
  if rand(100) < @percent_failure
18
19
  raise "Failure occurred with sleep_time=#{@sleep_time} and percent failure=#{@percent_failure}"
19
20
  end
20
- sleep @sleep_time
21
21
  end
22
22
  rescue Exception => e
23
23
  # Error handling...
data/lib/rumx/server.rb CHANGED
@@ -8,6 +8,7 @@ module Rumx
8
8
  configure do
9
9
  enable :logging
10
10
  mime_type :json, 'application/json'
11
+ mime_type :properties, 'text/plain'
11
12
  end
12
13
 
13
14
  set :root, File.join(File.dirname(__FILE__), 'server')
@@ -92,17 +93,36 @@ module Rumx
92
93
  partial :attribute_value_tag, :locals => {:attribute => attribute, :param_name => param_name, :value => value}
93
94
  end
94
95
 
95
- def name_value_hash(attribute_value_hash)
96
- hash = {}
97
- attribute_value_hash.each do |attribute, value|
98
- if attribute.kind_of?(Rumx::Attribute)
99
- hash[attribute.name] = value
100
- elsif attribute.kind_of?(String)
101
- # It's an embedded bean, attribute is actually the bean name and value is the hash of Attribute/values
102
- hash[attribute] = name_value_hash(value)
96
+ # Brain-dead hyperic doesn't know about json?
97
+ def to_properties(val, prefix=nil)
98
+ str = ''
99
+ new_prefix = (prefix + '.') if prefix
100
+ new_prefix = new_prefix || ''
101
+ if val.kind_of?(Hash)
102
+ val.each do |key, value|
103
+ str += to_properties(value, new_prefix + key.to_s)
103
104
  end
105
+ elsif val.kind_of?(Array)
106
+ val.each_with_index do |value, i|
107
+ str += to_properties(value, new_prefix + i.to_s)
108
+ end
109
+ else
110
+ str += "#{prefix}=#{val}\n"
104
111
  end
105
- hash
112
+ return str
113
+ end
114
+ end
115
+
116
+ def handle_attributes(attribute_hash, format)
117
+ case format
118
+ when 'json'
119
+ content_type :json
120
+ attribute_hash.to_json
121
+ when 'properties'
122
+ content_type :properties
123
+ to_properties(attribute_hash)
124
+ else
125
+ 404
106
126
  end
107
127
  end
108
128
 
@@ -115,8 +135,8 @@ module Rumx
115
135
  bean = Bean.find(path.split('/'))
116
136
  return 404 unless bean
117
137
  # For get we read, then write. post is the other way around.
118
- if params[:format] == 'json'
119
- bean.bean_get_and_set_attributes(params).to_json
138
+ if params[:format]
139
+ handle_attributes(bean.bean_get_and_set_attributes(params), params[:format])
120
140
  else
121
141
  haml_for_ajax :content_attributes, :locals => {:get_set_method => :bean_get_and_set_attributes, :params => params, :path => path, :bean => bean}
122
142
  end
@@ -128,8 +148,8 @@ module Rumx
128
148
  return 404 unless bean
129
149
  #puts "params=#{params.inspect}"
130
150
  # For post we write, then read. get is the other way around.
131
- if params[:format] == 'json'
132
- bean.bean_set_and_get_attributes(params).to_json
151
+ if params[:format]
152
+ handle_attributes(bean.bean_set_and_get_attributes(params), params[:format])
133
153
  else
134
154
  haml_for_ajax :content_attributes, :locals => {:get_set_method => :bean_set_and_get_attributes, :params => params, :path => path, :bean => bean}
135
155
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: rumx
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.6
5
+ version: 0.0.7
6
6
  platform: ruby
7
7
  authors:
8
8
  - Brad Pardee
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-12-12 00:00:00 Z
13
+ date: 2011-12-14 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: sinatra