kangaroo 0.0.3 → 0.1.0.alpha1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. data/.gitignore +6 -1
  2. data/Gemfile +11 -0
  3. data/README.md +23 -132
  4. data/Rakefile +0 -8
  5. data/bin/kang +5 -64
  6. data/bin/kangdoc +21 -0
  7. data/bin/kangviz +21 -0
  8. data/config/kangaroo.yml.sample +12 -2
  9. data/docs/Architecture.md +1 -0
  10. data/docs/Classes.md +67 -0
  11. data/docs/Installation.md +2 -1
  12. data/docs/Usage.md +1 -0
  13. data/kangaroo.gemspec +8 -8
  14. data/lib/kangaroo.rb +3 -2
  15. data/lib/kangaroo/commands/base.rb +123 -0
  16. data/lib/kangaroo/commands/cli.rb +65 -0
  17. data/lib/kangaroo/commands/doc.rb +44 -0
  18. data/lib/kangaroo/commands/endpoint.rb +33 -0
  19. data/lib/kangaroo/commands/viz.rb +58 -0
  20. data/lib/kangaroo/doc.rb +2 -0
  21. data/lib/kangaroo/exception.rb +3 -0
  22. data/lib/kangaroo/hirb.rb +2 -1
  23. data/lib/kangaroo/model/associations.rb +33 -0
  24. data/lib/kangaroo/model/associations/many2one.rb +43 -0
  25. data/lib/kangaroo/model/associations/one2many.rb +41 -0
  26. data/lib/kangaroo/model/attributes.rb +88 -93
  27. data/lib/kangaroo/model/base.rb +44 -15
  28. data/lib/kangaroo/model/condition_normalizer.rb +7 -7
  29. data/lib/kangaroo/model/data_import.rb +28 -0
  30. data/lib/kangaroo/model/default_attributes.rb +20 -14
  31. data/lib/kangaroo/model/dynamic_finder.rb +42 -0
  32. data/lib/kangaroo/model/field.rb +52 -1
  33. data/lib/kangaroo/model/field/readonly.rb +39 -0
  34. data/lib/kangaroo/model/finder.rb +6 -2
  35. data/lib/kangaroo/model/inspector.rb +1 -4
  36. data/lib/kangaroo/model/mass_import.rb +42 -0
  37. data/lib/kangaroo/model/open_object_orm.rb +51 -5
  38. data/lib/kangaroo/model/persistence.rb +43 -19
  39. data/lib/kangaroo/model/readonly_attributes.rb +43 -0
  40. data/lib/kangaroo/model/relation.rb +40 -9
  41. data/lib/kangaroo/model/remote_execute.rb +1 -1
  42. data/lib/kangaroo/model/required_attributes.rb +26 -0
  43. data/lib/kangaroo/railtie.rb +13 -3
  44. data/lib/kangaroo/ruby_adapter/base.rb +2 -1
  45. data/lib/kangaroo/ruby_adapter/class_definition.rb +18 -3
  46. data/lib/kangaroo/ruby_adapter/fields.rb +27 -2
  47. data/lib/kangaroo/ruby_adapter/many2one.rb +38 -0
  48. data/lib/kangaroo/ruby_adapter/one2many.rb +31 -0
  49. data/lib/kangaroo/util/client.rb +29 -4
  50. data/lib/kangaroo/util/configuration.rb +15 -10
  51. data/lib/kangaroo/util/database.rb +8 -8
  52. data/lib/kangaroo/util/loader.rb +18 -22
  53. data/lib/kangaroo/util/loader/information_repository.rb +56 -0
  54. data/lib/kangaroo/util/loader/namespace.rb +1 -1
  55. data/lib/kangaroo/util/loader/reflection.rb +61 -0
  56. data/lib/kangaroo/util/loader/root_namespace.rb +12 -21
  57. data/lib/kangaroo/util/proxy.rb +9 -0
  58. data/lib/kangaroo/util/proxy/common.rb +28 -4
  59. data/lib/kangaroo/util/proxy/db.rb +14 -0
  60. data/lib/kangaroo/util/proxy/object.rb +40 -1
  61. data/lib/kangaroo/util/proxy/superadmin.rb +13 -0
  62. data/lib/kangaroo/version.rb +1 -1
  63. data/lib/kangaroo/viz.rb +1 -0
  64. data/lib/kangaroo/viz/base.rb +92 -0
  65. data/spec/commands/base_spec.rb +42 -0
  66. data/spec/functional/associations/many2one_spec.rb +72 -0
  67. data/spec/functional/associations/one2many_spec.rb +65 -0
  68. data/spec/functional/common_service_spec.rb +25 -0
  69. data/spec/functional/data_import_spec.rb +48 -0
  70. data/spec/functional/dynamic_finder_spec.rb +35 -0
  71. data/spec/functional/exception_handling_spec.rb +18 -0
  72. data/spec/functional/identity_spec.rb +48 -0
  73. data/spec/functional/import_export_spec.rb +39 -0
  74. data/spec/functional/lazy_loading_spec.rb +18 -11
  75. data/spec/functional/ordering_spec.rb +33 -0
  76. data/spec/functional/readonly_attributes_spec.rb +37 -0
  77. data/spec/functional/required_attributes_spec.rb +37 -0
  78. data/spec/functional/root_namespace_spec.rb +19 -0
  79. data/spec/functional/select_relation_spec.rb +26 -0
  80. data/spec/model/attributes_spec.rb +1 -0
  81. data/spec/model/base_spec.rb +1 -0
  82. data/spec/model/default_attributes_spec.rb +3 -1
  83. data/spec/model/finder_spec.rb +2 -1
  84. data/spec/model/inspector_spec.rb +1 -0
  85. data/spec/model/open_object_orm_spec.rb +5 -2
  86. data/spec/model/persistence_spec.rb +1 -0
  87. data/spec/model/relation_spec.rb +2 -2
  88. data/spec/ruby_adapter/class_definition_spec.rb +1 -0
  89. data/spec/server_helper.rb +0 -1
  90. data/spec/spec_helper.rb +4 -1
  91. data/spec/util/loader_spec.rb +6 -6
  92. metadata +152 -159
  93. data/Gemfile.lock +0 -69
  94. data/features/configuration.feature +0 -10
  95. data/features/env.rb +0 -8
  96. data/features/step_definitions/basic_steps.rb +0 -18
  97. data/features/step_definitions/configuration_steps.rb +0 -21
  98. data/features/support/test.yml +0 -11
  99. data/features/utility_services.feature +0 -33
@@ -12,6 +12,7 @@ module Kangaroo
12
12
  oo_model.stub_chain(:class, :namespace).and_return(Oo)
13
13
  oo_model.stub_chain(:class, :database)
14
14
  oo_model.stub!('model_class_name').and_return(name)
15
+ oo_model.stub!(:model)
15
16
  oo_model
16
17
  end
17
18
 
@@ -7,7 +7,6 @@ require 'webrick'
7
7
  module TestServices
8
8
  class ObjectService
9
9
  def execute *args
10
- puts args.inspect
11
10
  xmlrpc_call 'execute', *args
12
11
  end
13
12
 
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,9 @@
1
1
  require 'rubygems'
2
2
  require 'bundler/setup'
3
3
 
4
+ require 'simplecov'
5
+ SimpleCov.start
6
+
4
7
  require 'kangaroo'
5
8
 
6
9
  module SpecHelper
@@ -11,4 +14,4 @@ end
11
14
 
12
15
  RSpec.configure do |config|
13
16
  # some (optional) config here
14
- end
17
+ end
@@ -11,10 +11,10 @@ module Kangaroo
11
11
  def config_file
12
12
  File.join File.dirname(__FILE__), '..', 'test_env', 'test.yml'
13
13
  end
14
-
14
+
15
15
  it "replaces wildcards in model names" do
16
16
  loader = Loader.new ['res.*'], nil
17
-
17
+
18
18
  loader.model_names.should == ['res.%']
19
19
  end
20
20
 
@@ -24,11 +24,11 @@ module Kangaroo
24
24
  loader.model_names.should == ['%']
25
25
  end
26
26
 
27
- it 'raises error if model_names = nil or empty' do
28
- lambda { Loader.new nil, nil }.should raise_error
29
- lambda { Loader.new [], nil }.should raise_error
27
+ it 'it ignores empty models' do
28
+ loader = Loader.new nil, nil
29
+
30
+ loader.model_names.should be_empty
30
31
  end
31
-
32
32
  end
33
33
  end
34
34
  end
metadata CHANGED
@@ -1,210 +1,189 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: kangaroo
3
- version: !ruby/object:Gem::Version
4
- hash: 25
5
- prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 3
10
- version: 0.0.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0.alpha1
5
+ prerelease: 6
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Michael Eickenberg
14
9
  - Marian Theisen
15
10
  autorequire:
16
11
  bindir: bin
17
12
  cert_chain: []
18
-
19
- date: 2011-04-16 00:00:00 +02:00
20
- default_executable:
21
- dependencies:
22
- - !ruby/object:Gem::Dependency
13
+ date: 2011-11-09 00:00:00.000000000Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
23
16
  name: rapuncel
24
- prerelease: false
25
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &70186633527040 !ruby/object:Gem::Requirement
26
18
  none: false
27
- requirements:
19
+ requirements:
28
20
  - - ~>
29
- - !ruby/object:Gem::Version
30
- hash: 27
31
- segments:
32
- - 0
33
- - 0
34
- - 2
35
- version: 0.0.2
21
+ - !ruby/object:Gem::Version
22
+ version: 0.0.5.RC1
36
23
  type: :runtime
37
- version_requirements: *id001
38
- - !ruby/object:Gem::Dependency
39
- name: activerecord
40
24
  prerelease: false
41
- requirement: &id002 !ruby/object:Gem::Requirement
25
+ version_requirements: *70186633527040
26
+ - !ruby/object:Gem::Dependency
27
+ name: activemodel
28
+ requirement: &70186633526100 !ruby/object:Gem::Requirement
42
29
  none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- hash: 7
47
- segments:
48
- - 3
49
- - 0
50
- - 0
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
51
33
  version: 3.0.0
52
34
  type: :runtime
53
- version_requirements: *id002
54
- - !ruby/object:Gem::Dependency
55
- name: activesupport
56
35
  prerelease: false
57
- requirement: &id003 !ruby/object:Gem::Requirement
36
+ version_requirements: *70186633526100
37
+ - !ruby/object:Gem::Dependency
38
+ name: activesupport
39
+ requirement: &70186633524700 !ruby/object:Gem::Requirement
58
40
  none: false
59
- requirements:
60
- - - ">="
61
- - !ruby/object:Gem::Version
62
- hash: 7
63
- segments:
64
- - 3
65
- - 0
66
- - 0
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
67
44
  version: 3.0.0
68
45
  type: :runtime
69
- version_requirements: *id003
70
- - !ruby/object:Gem::Dependency
71
- name: hirb
72
46
  prerelease: false
73
- requirement: &id004 !ruby/object:Gem::Requirement
47
+ version_requirements: *70186633524700
48
+ - !ruby/object:Gem::Dependency
49
+ name: hirb
50
+ requirement: &70186633524320 !ruby/object:Gem::Requirement
74
51
  none: false
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- hash: 3
79
- segments:
80
- - 0
81
- version: "0"
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
82
56
  type: :runtime
83
- version_requirements: *id004
84
- - !ruby/object:Gem::Dependency
85
- name: yard
86
57
  prerelease: false
87
- requirement: &id005 !ruby/object:Gem::Requirement
58
+ version_requirements: *70186633524320
59
+ - !ruby/object:Gem::Dependency
60
+ name: highline
61
+ requirement: &70186633523780 !ruby/object:Gem::Requirement
88
62
  none: false
89
- requirements:
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- hash: 3
93
- segments:
94
- - 0
95
- version: "0"
96
- type: :development
97
- version_requirements: *id005
98
- - !ruby/object:Gem::Dependency
99
- name: rspec
63
+ requirements:
64
+ - - ! '>='
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ type: :runtime
100
68
  prerelease: false
101
- requirement: &id006 !ruby/object:Gem::Requirement
69
+ version_requirements: *70186633523780
70
+ - !ruby/object:Gem::Dependency
71
+ name: ruby-graphviz
72
+ requirement: &70186633522700 !ruby/object:Gem::Requirement
102
73
  none: false
103
- requirements:
104
- - - ">="
105
- - !ruby/object:Gem::Version
106
- hash: 3
107
- segments:
108
- - 0
109
- version: "0"
110
- type: :development
111
- version_requirements: *id006
112
- - !ruby/object:Gem::Dependency
113
- name: ruby-debug
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 1.0.0
78
+ type: :runtime
114
79
  prerelease: false
115
- requirement: &id007 !ruby/object:Gem::Requirement
80
+ version_requirements: *70186633522700
81
+ - !ruby/object:Gem::Dependency
82
+ name: yard
83
+ requirement: &70186633522040 !ruby/object:Gem::Requirement
116
84
  none: false
117
- requirements:
118
- - - ">="
119
- - !ruby/object:Gem::Version
120
- hash: 3
121
- segments:
122
- - 0
123
- version: "0"
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
124
89
  type: :development
125
- version_requirements: *id007
126
- - !ruby/object:Gem::Dependency
127
- name: cucumber
128
90
  prerelease: false
129
- requirement: &id008 !ruby/object:Gem::Requirement
91
+ version_requirements: *70186633522040
92
+ - !ruby/object:Gem::Dependency
93
+ name: rspec
94
+ requirement: &70186633521340 !ruby/object:Gem::Requirement
130
95
  none: false
131
- requirements:
132
- - - ">="
133
- - !ruby/object:Gem::Version
134
- hash: 3
135
- segments:
136
- - 0
137
- version: "0"
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
138
100
  type: :development
139
- version_requirements: *id008
140
- - !ruby/object:Gem::Dependency
141
- name: bundler
142
101
  prerelease: false
143
- requirement: &id009 !ruby/object:Gem::Requirement
102
+ version_requirements: *70186633521340
103
+ - !ruby/object:Gem::Dependency
104
+ name: bundler
105
+ requirement: &70186633520420 !ruby/object:Gem::Requirement
144
106
  none: false
145
- requirements:
146
- - - ">="
147
- - !ruby/object:Gem::Version
148
- hash: 3
149
- segments:
150
- - 0
151
- version: "0"
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
152
111
  type: :development
153
- version_requirements: *id009
112
+ prerelease: false
113
+ version_requirements: *70186633520420
154
114
  description: ActiveRecord-ish OpenObject Wrapper
155
115
  email: marian@cice-online.net
156
- executables:
116
+ executables:
157
117
  - kang
118
+ - kangdoc
119
+ - kangviz
158
120
  extensions: []
159
-
160
121
  extra_rdoc_files: []
161
-
162
- files:
122
+ files:
163
123
  - .gitignore
164
124
  - .rspec
165
125
  - .yardopts
166
126
  - Gemfile
167
- - Gemfile.lock
168
127
  - LICENSE
169
128
  - README.md
170
129
  - Rakefile
171
130
  - bin/kang
131
+ - bin/kangdoc
132
+ - bin/kangviz
172
133
  - config/kangaroo.yml.sample
173
134
  - docs/AdditionalServices.md
174
135
  - docs/Architecture.md
136
+ - docs/Classes.md
175
137
  - docs/Installation.md
176
138
  - docs/Usage.md
177
- - features/configuration.feature
178
- - features/env.rb
179
- - features/step_definitions/basic_steps.rb
180
- - features/step_definitions/configuration_steps.rb
181
- - features/support/test.yml
182
- - features/utility_services.feature
183
139
  - kangaroo.gemspec
184
140
  - lib/kangaroo.rb
141
+ - lib/kangaroo/commands/base.rb
142
+ - lib/kangaroo/commands/cli.rb
143
+ - lib/kangaroo/commands/doc.rb
144
+ - lib/kangaroo/commands/endpoint.rb
145
+ - lib/kangaroo/commands/viz.rb
146
+ - lib/kangaroo/doc.rb
147
+ - lib/kangaroo/doc/base.rb
148
+ - lib/kangaroo/doc/klass.rb
149
+ - lib/kangaroo/doc/namespace.rb
150
+ - lib/kangaroo/doc/root_namespace.rb
185
151
  - lib/kangaroo/exception.rb
186
152
  - lib/kangaroo/hirb.rb
153
+ - lib/kangaroo/model/associations.rb
154
+ - lib/kangaroo/model/associations/many2one.rb
155
+ - lib/kangaroo/model/associations/one2many.rb
187
156
  - lib/kangaroo/model/attributes.rb
188
157
  - lib/kangaroo/model/base.rb
189
158
  - lib/kangaroo/model/condition_normalizer.rb
159
+ - lib/kangaroo/model/data_import.rb
190
160
  - lib/kangaroo/model/default_attributes.rb
161
+ - lib/kangaroo/model/dynamic_finder.rb
191
162
  - lib/kangaroo/model/field.rb
163
+ - lib/kangaroo/model/field/readonly.rb
192
164
  - lib/kangaroo/model/finder.rb
193
165
  - lib/kangaroo/model/inspector.rb
166
+ - lib/kangaroo/model/mass_import.rb
194
167
  - lib/kangaroo/model/open_object_orm.rb
195
168
  - lib/kangaroo/model/persistence.rb
169
+ - lib/kangaroo/model/readonly_attributes.rb
196
170
  - lib/kangaroo/model/relation.rb
197
171
  - lib/kangaroo/model/remote_execute.rb
172
+ - lib/kangaroo/model/required_attributes.rb
198
173
  - lib/kangaroo/railtie.rb
199
174
  - lib/kangaroo/ruby_adapter/base.rb
200
175
  - lib/kangaroo/ruby_adapter/class_definition.rb
201
176
  - lib/kangaroo/ruby_adapter/fields.rb
177
+ - lib/kangaroo/ruby_adapter/many2one.rb
178
+ - lib/kangaroo/ruby_adapter/one2many.rb
202
179
  - lib/kangaroo/util/client.rb
203
180
  - lib/kangaroo/util/configuration.rb
204
181
  - lib/kangaroo/util/database.rb
205
182
  - lib/kangaroo/util/loader.rb
183
+ - lib/kangaroo/util/loader/information_repository.rb
206
184
  - lib/kangaroo/util/loader/model.rb
207
185
  - lib/kangaroo/util/loader/namespace.rb
186
+ - lib/kangaroo/util/loader/reflection.rb
208
187
  - lib/kangaroo/util/loader/root_namespace.rb
209
188
  - lib/kangaroo/util/proxy.rb
210
189
  - lib/kangaroo/util/proxy/common.rb
@@ -215,7 +194,23 @@ files:
215
194
  - lib/kangaroo/util/proxy/wizard.rb
216
195
  - lib/kangaroo/util/proxy/workflow.rb
217
196
  - lib/kangaroo/version.rb
197
+ - lib/kangaroo/viz.rb
198
+ - lib/kangaroo/viz/base.rb
199
+ - spec/commands/base_spec.rb
200
+ - spec/functional/associations/many2one_spec.rb
201
+ - spec/functional/associations/one2many_spec.rb
202
+ - spec/functional/common_service_spec.rb
203
+ - spec/functional/data_import_spec.rb
204
+ - spec/functional/dynamic_finder_spec.rb
205
+ - spec/functional/exception_handling_spec.rb
206
+ - spec/functional/identity_spec.rb
207
+ - spec/functional/import_export_spec.rb
218
208
  - spec/functional/lazy_loading_spec.rb
209
+ - spec/functional/ordering_spec.rb
210
+ - spec/functional/readonly_attributes_spec.rb
211
+ - spec/functional/required_attributes_spec.rb
212
+ - spec/functional/root_namespace_spec.rb
213
+ - spec/functional/select_relation_spec.rb
219
214
  - spec/model/attributes_spec.rb
220
215
  - spec/model/base_spec.rb
221
216
  - spec/model/default_attributes_spec.rb
@@ -231,48 +226,46 @@ files:
231
226
  - spec/util/configuration_spec.rb
232
227
  - spec/util/loader_spec.rb
233
228
  - spec/util/proxy_spec.rb
234
- has_rdoc: true
235
- homepage: http://github.com/cice/kangARoo
229
+ homepage: http://github.com/kayoom/kangaroo
236
230
  licenses: []
237
-
238
231
  post_install_message:
239
232
  rdoc_options: []
240
-
241
- require_paths:
233
+ require_paths:
242
234
  - lib
243
- required_ruby_version: !ruby/object:Gem::Requirement
235
+ required_ruby_version: !ruby/object:Gem::Requirement
244
236
  none: false
245
- requirements:
246
- - - ">="
247
- - !ruby/object:Gem::Version
248
- hash: 3
249
- segments:
250
- - 0
251
- version: "0"
252
- required_rubygems_version: !ruby/object:Gem::Requirement
237
+ requirements:
238
+ - - ! '>='
239
+ - !ruby/object:Gem::Version
240
+ version: '0'
241
+ required_rubygems_version: !ruby/object:Gem::Requirement
253
242
  none: false
254
- requirements:
255
- - - ">="
256
- - !ruby/object:Gem::Version
257
- hash: 3
258
- segments:
259
- - 0
260
- version: "0"
243
+ requirements:
244
+ - - ! '>'
245
+ - !ruby/object:Gem::Version
246
+ version: 1.3.1
261
247
  requirements: []
262
-
263
248
  rubyforge_project:
264
- rubygems_version: 1.5.0
249
+ rubygems_version: 1.8.11
265
250
  signing_key:
266
251
  specification_version: 3
267
252
  summary: Kang! ActiveRecord-ish OpenObject
268
- test_files:
269
- - features/configuration.feature
270
- - features/env.rb
271
- - features/step_definitions/basic_steps.rb
272
- - features/step_definitions/configuration_steps.rb
273
- - features/support/test.yml
274
- - features/utility_services.feature
253
+ test_files:
254
+ - spec/commands/base_spec.rb
255
+ - spec/functional/associations/many2one_spec.rb
256
+ - spec/functional/associations/one2many_spec.rb
257
+ - spec/functional/common_service_spec.rb
258
+ - spec/functional/data_import_spec.rb
259
+ - spec/functional/dynamic_finder_spec.rb
260
+ - spec/functional/exception_handling_spec.rb
261
+ - spec/functional/identity_spec.rb
262
+ - spec/functional/import_export_spec.rb
275
263
  - spec/functional/lazy_loading_spec.rb
264
+ - spec/functional/ordering_spec.rb
265
+ - spec/functional/readonly_attributes_spec.rb
266
+ - spec/functional/required_attributes_spec.rb
267
+ - spec/functional/root_namespace_spec.rb
268
+ - spec/functional/select_relation_spec.rb
276
269
  - spec/model/attributes_spec.rb
277
270
  - spec/model/base_spec.rb
278
271
  - spec/model/default_attributes_spec.rb