rumx 0.0.6 → 0.0.7

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/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