rhodes 0.1.0 → 0.1.1
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.txt +3 -0
- data/Rakefile +3 -0
- data/generators/templates/application/application.rb +1 -1
- data/lib/rho/render.rb +3 -0
- data/lib/rho/renderME.rb +3 -0
- data/lib/rho/rho.rb +22 -2
- data/lib/rhodes.rb +2 -2
- data/lib/rhom/rhom_object_factory.rb +1 -1
- data/spec/rho_spec.rb +17 -1
- data/spec/rhom_object_factory_spec.rb +10 -24
- data/spec/spec_helper.rb +28 -1
- metadata +32 -2
data/History.txt
CHANGED
data/Rakefile
CHANGED
data/lib/rho/render.rb
CHANGED
data/lib/rho/renderME.rb
CHANGED
data/lib/rho/rho.rb
CHANGED
@@ -1,4 +1,9 @@
|
|
1
1
|
require 'time'
|
2
|
+
if defined? RHO_ME
|
3
|
+
require 'rho/renderME'
|
4
|
+
else
|
5
|
+
require 'rho/render'
|
6
|
+
end
|
2
7
|
require 'rho/rhoapplication'
|
3
8
|
require 'rhom'
|
4
9
|
require 'rhofsconnector'
|
@@ -32,10 +37,10 @@ module Rho
|
|
32
37
|
|
33
38
|
# setup the sources table and model attributes for all applications
|
34
39
|
def init_sources
|
35
|
-
|
40
|
+
puts 'sources initialized? ' + self.sources_initialized?.inspect
|
41
|
+
if defined? Rho::RhoConfig::sources and not self.sources_initialized?
|
36
42
|
Rhom::RhomDbAdapter::delete_all_from_table('sources')
|
37
43
|
src_attribs = []
|
38
|
-
attribs_empty = false
|
39
44
|
|
40
45
|
# quick and dirty way to get unique array of hashes
|
41
46
|
uniq_sources = Rho::RhoConfig::sources.values.inject([]) { |result,h|
|
@@ -51,6 +56,10 @@ module Rho
|
|
51
56
|
end
|
52
57
|
end
|
53
58
|
end
|
59
|
+
|
60
|
+
def sources_initialized?
|
61
|
+
Rhom::RhomDbAdapter::select_from_table('sources','*').size > 0 ? true : false
|
62
|
+
end
|
54
63
|
|
55
64
|
def get_app(appname)
|
56
65
|
if (APPLICATIONS[appname].nil?)
|
@@ -82,6 +91,17 @@ module Rho
|
|
82
91
|
end
|
83
92
|
end
|
84
93
|
|
94
|
+
def serve_index(index_name)
|
95
|
+
begin
|
96
|
+
puts 'inside RHO.serve_index: ' + index_name
|
97
|
+
res = init_response
|
98
|
+
res['request-body'] = RhoController::renderfile(index_name)
|
99
|
+
return send_response(res)
|
100
|
+
rescue Exception => e
|
101
|
+
return send_error(e.message,500,true)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
85
105
|
def init_response(status=200,message="OK",body="")
|
86
106
|
res = Hash.new
|
87
107
|
res['status'] = status
|
data/lib/rhodes.rb
CHANGED
data/spec/rho_spec.rb
CHANGED
@@ -21,8 +21,24 @@ $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
21
21
|
require File.dirname(__FILE__) + "/spec_helper"
|
22
22
|
|
23
23
|
describe "Rho" do
|
24
|
+
|
25
|
+
it_should_behave_like "rho initializer"
|
24
26
|
|
25
27
|
it "should populate configuration in sources table" do
|
26
|
-
|
28
|
+
sources = Rhom::RhomDbAdapter::select_from_table('sources','*')
|
29
|
+
puts 'sources: ' + sources.inspect
|
30
|
+
|
31
|
+
sources.size.should == 3
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should initialize configuration only once" do
|
35
|
+
Rhom::RhomDbAdapter::delete_all_from_table('sources')
|
36
|
+
@rho.sources_initialized?.should == false
|
37
|
+
@rho.init_sources
|
38
|
+
@rho.sources_initialized?.should == true
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should serve request" do
|
42
|
+
pending "need to mock request"
|
27
43
|
end
|
28
44
|
end
|
@@ -19,19 +19,8 @@
|
|
19
19
|
require File.dirname(__FILE__) + "/spec_helper"
|
20
20
|
|
21
21
|
describe "RhomObjectFactory" do
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
before(:all) do
|
26
|
-
FileUtils.mkdir_p('build')
|
27
|
-
FileUtils.cp_r('spec/syncdbtest.sqlite','build/syncdbtest.sqlite')
|
28
|
-
Rho::RhoConfig::add_source("Account", {"url"=>"http://rhosync.rhomobile.com/sources/1", "source_id"=>1})
|
29
|
-
Rho::RhoConfig::add_source("Case", {"url"=>"http://rhosync.rhomobile.com/sources/1", "source_id"=>2})
|
30
|
-
Rho::RhoConfig::add_source("Employee", {"url"=>"http://rhosync.rhomobile.com/sources/1", "source_id"=>3})
|
31
|
-
Object::const_set("SYNC_DB_FILE", "../../build/syncdbtest.sqlite") unless defined? SYNC_DB_FILE
|
32
|
-
@rho = Rho::RHO.new(File.dirname(__FILE__) + "/../../../apps/")
|
33
|
-
@rhom = Rhom::RhomObjectFactory.new
|
34
|
-
end
|
22
|
+
|
23
|
+
it_should_behave_like "rho initializer"
|
35
24
|
|
36
25
|
before(:each) do
|
37
26
|
FileUtils.cp_r('spec/syncdbtest.sqlite','build/syncdbtest.sqlite')
|
@@ -42,16 +31,6 @@ describe "RhomObjectFactory" do
|
|
42
31
|
@rhom = nil
|
43
32
|
end
|
44
33
|
|
45
|
-
after(:all) do
|
46
|
-
FileUtils.rm_rf('build')
|
47
|
-
end
|
48
|
-
|
49
|
-
def array_print(arr)
|
50
|
-
arr.each_with_index do |x,i|
|
51
|
-
puts "arr[#{i}] = #{x.inspect}"
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
34
|
it "should set source_id attributes" do
|
56
35
|
"1".should == Account.get_source_id
|
57
36
|
"2".should == Case.get_source_id
|
@@ -93,6 +72,13 @@ describe "RhomObjectFactory" do
|
|
93
72
|
"Mirapath".should == results[4].name
|
94
73
|
end
|
95
74
|
|
75
|
+
it "should have correct number of attributes" do
|
76
|
+
@account = Account.find(:all).first
|
77
|
+
|
78
|
+
# expecting name, industry, update_type, object, source_id
|
79
|
+
@account.instance_variables.size.should == 5
|
80
|
+
end
|
81
|
+
|
96
82
|
it "should calculate same djb_hash" do
|
97
83
|
vars = {"name"=>"foobarthree", "industry"=>"entertainment"}
|
98
84
|
account = Account.new(vars)
|
@@ -104,7 +90,7 @@ describe "RhomObjectFactory" do
|
|
104
90
|
@account1 = Account.new(vars)
|
105
91
|
new_id = @account1.object
|
106
92
|
@account1.save
|
107
|
-
@account2 = Account.find(new_id)
|
93
|
+
@account2 = Account.find(new_id)
|
108
94
|
@account2.object.should =="{#{@account1.object}}"
|
109
95
|
@account2.name.should == vars['name']
|
110
96
|
@account2.industry.should == vars['industry']
|
data/spec/spec_helper.rb
CHANGED
@@ -11,4 +11,31 @@ $:.unshift(File.join(File.dirname(__FILE__), '..'))
|
|
11
11
|
# Use the rubygem for local testing
|
12
12
|
require 'spec/stubs'
|
13
13
|
require 'rho/rho'
|
14
|
-
require '
|
14
|
+
require 'rho/settings_controller'
|
15
|
+
require 'rhom/rhom'
|
16
|
+
|
17
|
+
describe "rho initializer", :shared => true do
|
18
|
+
|
19
|
+
attr_accessor :rhom, :rho
|
20
|
+
|
21
|
+
before(:all) do
|
22
|
+
FileUtils.mkdir_p('build')
|
23
|
+
FileUtils.cp_r('spec/syncdbtest.sqlite','build/syncdbtest.sqlite')
|
24
|
+
Rho::RhoConfig::add_source("Account", {"url"=>"http://rhosync.rhohub.com/sources/1", "source_id"=>1})
|
25
|
+
Rho::RhoConfig::add_source("Case", {"url"=>"http://rhosync.rhohub.com/sources/2", "source_id"=>2})
|
26
|
+
Rho::RhoConfig::add_source("Employee", {"url"=>"http://rhosync.rhohub.com/sources/3", "source_id"=>3})
|
27
|
+
Object::const_set("SYNC_DB_FILE", "../../build/syncdbtest.sqlite") unless defined? SYNC_DB_FILE
|
28
|
+
@rho = Rho::RHO.new(File.dirname(__FILE__) + "/../../../apps/")
|
29
|
+
@rhom = Rhom::RhomObjectFactory.new
|
30
|
+
end
|
31
|
+
|
32
|
+
after(:all) do
|
33
|
+
FileUtils.rm_rf('build')
|
34
|
+
end
|
35
|
+
|
36
|
+
def array_print(arr)
|
37
|
+
arr.each_with_index do |x,i|
|
38
|
+
puts "arr[#{i}] = #{x.inspect}"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rhodes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rhomobile Dev
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-12-05 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -42,6 +42,36 @@ dependencies:
|
|
42
42
|
- !ruby/object:Gem::Version
|
43
43
|
version: "0"
|
44
44
|
version:
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: templater
|
47
|
+
type: :runtime
|
48
|
+
version_requirement:
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: "0"
|
54
|
+
version:
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: diff-lcs
|
57
|
+
type: :runtime
|
58
|
+
version_requirement:
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: "0"
|
64
|
+
version:
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: extlib
|
67
|
+
type: :runtime
|
68
|
+
version_requirement:
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: "0"
|
74
|
+
version:
|
45
75
|
- !ruby/object:Gem::Dependency
|
46
76
|
name: newgem
|
47
77
|
type: :development
|