spiderfw 0.5.17 → 0.5.18
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +6 -2
- data/VERSION +1 -1
- data/apps/soap/lib/soap.rb +2 -0
- data/lib/spiderfw/app.rb +5 -1
- data/lib/spiderfw/cmd/commands/console.rb +27 -7
- data/lib/spiderfw/model/base_model.rb +11 -28
- data/lib/spiderfw/model/integrated_element.rb +1 -1
- data/lib/spiderfw/model/mappers/db_mapper.rb +15 -9
- data/lib/spiderfw/model/mappers/mapper.rb +9 -6
- data/lib/spiderfw/model/model.rb +1 -0
- data/spider.gemspec +3 -0
- metadata +56 -8
data/CHANGELOG
CHANGED
@@ -1,10 +1,14 @@
|
|
1
|
+
= 0.5.18
|
2
|
+
== 23 December, 2010
|
3
|
+
* Ripl for spider console
|
4
|
+
* Ruby 1.9.2 support
|
5
|
+
* Bugfixes
|
6
|
+
|
1
7
|
= 0.5.17
|
2
8
|
== 20 December, 2010
|
3
9
|
* Better assets compression; assets profiles
|
4
10
|
* Bugfixes
|
5
11
|
|
6
|
-
|
7
|
-
|
8
12
|
= 0.5.16
|
9
13
|
== 07 December, 2010
|
10
14
|
* Added app update command
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.18
|
data/apps/soap/lib/soap.rb
CHANGED
data/lib/spiderfw/app.rb
CHANGED
@@ -55,7 +55,11 @@ module Spider
|
|
55
55
|
|
56
56
|
def http_url(action=nil)
|
57
57
|
if u = Spider.conf.get("#{@dotted_name}.http_url")
|
58
|
-
|
58
|
+
if action
|
59
|
+
u += '/' if u[-1].chr != '/'
|
60
|
+
u += action
|
61
|
+
end
|
62
|
+
return u
|
59
63
|
end
|
60
64
|
return nil unless Spider.site
|
61
65
|
u = "http://#{Spider.site.domain}"
|
@@ -5,20 +5,40 @@ class ConsoleCommand < CmdParse::Command
|
|
5
5
|
super( 'console', false )
|
6
6
|
@short_desc = _("Open a console")
|
7
7
|
# @description = _("")
|
8
|
-
@opts = {
|
8
|
+
@opts = {}
|
9
9
|
|
10
10
|
self.options = CmdParse::OptionParserWrapper.new do |opt|
|
11
|
-
opt.on("--irb",
|
12
|
-
_("
|
11
|
+
opt.on("--irb [IRB]",
|
12
|
+
_("Use irb instead of ripl (use given executable if supplied)"),
|
13
13
|
"-i"){ |irb|
|
14
|
-
@opts[:irb] = irb
|
14
|
+
@opts[:irb] = irb ? irb : 'irb'
|
15
15
|
}
|
16
16
|
end
|
17
17
|
|
18
18
|
set_execution_block do
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
unless @opts[:irb]
|
20
|
+
begin
|
21
|
+
require 'rubygems'
|
22
|
+
require 'ripl'
|
23
|
+
rescue LoadError
|
24
|
+
@opts[:irb] = 'irb'
|
25
|
+
end
|
26
|
+
end
|
27
|
+
if @opts[:irb]
|
28
|
+
ENV['SPIDER_RUNMODE'] = $SPIDER_RUNMODE if ($SPIDER_RUNMODE)
|
29
|
+
ENV['SPIDER_CONFIG_SETS'] = $SPIDER_CONFIG_SETS.join(',') if ($SPIDER_CONFIG_SETS)
|
30
|
+
exec("#{@opts[:irb]} -I #{$SPIDER_LIB} -r spiderfw")
|
31
|
+
else
|
32
|
+
require 'ripl/irb'
|
33
|
+
require 'ripl/multi_line'
|
34
|
+
|
35
|
+
Ripl.config[:irb_verbose] = false
|
36
|
+
Ripl::Runner.load_rc(Ripl.config[:riplrc])
|
37
|
+
|
38
|
+
require 'spiderfw'
|
39
|
+
Object.send(:remove_const, :IRB) if Object.const_defined?(:IRB)
|
40
|
+
Ripl.shell.loop
|
41
|
+
end
|
22
42
|
end
|
23
43
|
|
24
44
|
|
@@ -97,7 +97,6 @@ module Spider; module Model
|
|
97
97
|
each_element do |el|
|
98
98
|
subclass.add_element(el.clone) unless el.attributes[:local_pk]
|
99
99
|
end
|
100
|
-
subclass.instance_variable_set("@mapper_procs_subclass", @mapper_procs_subclass.clone) if @mapper_procs_subclass
|
101
100
|
subclass.instance_variable_set("@mapper_modules", @mapper_modules.clone) if @mapper_modules
|
102
101
|
subclass.instance_variable_set("@extended_models", @extended_models.clone) if @extended_models
|
103
102
|
em = subclass.const_set(:ElementMethods, Module.new)
|
@@ -968,6 +967,7 @@ module Spider; module Model
|
|
968
967
|
end
|
969
968
|
|
970
969
|
def self.mapper_include_for(params, mod)
|
970
|
+
params = [params] unless params.is_a?(Array)
|
971
971
|
@mapper_modules_for ||= []
|
972
972
|
@mapper_modules_for << [params, mod]
|
973
973
|
end
|
@@ -975,25 +975,21 @@ module Spider; module Model
|
|
975
975
|
# The given proc will be mixed in the mapper used by this class
|
976
976
|
# Note that the proc will be converted to a Module, so any overridden methods will still have
|
977
977
|
# access to the super method.
|
978
|
-
def self.with_mapper(
|
979
|
-
|
980
|
-
|
981
|
-
mod
|
978
|
+
def self.with_mapper(&proc)
|
979
|
+
mod = Module.new
|
980
|
+
mod.send(:include, Spider::Model::MapperIncludeModule)
|
981
|
+
mod.module_eval(&proc)
|
982
982
|
mapper_include(mod)
|
983
983
|
end
|
984
|
-
|
985
|
-
# FIXME: remove
|
986
|
-
def self.with_mapper_subclasses(*params, &proc) #:nodoc:
|
987
|
-
@mapper_procs_subclass ||= []
|
988
|
-
@mapper_procs_subclass << proc
|
989
|
-
end
|
990
|
-
|
984
|
+
|
991
985
|
# Like #with_mapper, but will mixin the block only if the mapper matches params.
|
992
986
|
# Possible params are:
|
993
987
|
# - a String, matching the class' use_storage
|
994
988
|
def self.with_mapper_for(*params, &proc)
|
995
|
-
|
996
|
-
|
989
|
+
mod = Module.new
|
990
|
+
mod.send(:include, Spider::Model::MapperIncludeModule)
|
991
|
+
mod.module_eval(&proc)
|
992
|
+
mapper_include_for(params, mod)
|
997
993
|
end
|
998
994
|
|
999
995
|
# Sets the url or the name of the storage to use
|
@@ -1050,24 +1046,11 @@ module Spider; module Model
|
|
1050
1046
|
end
|
1051
1047
|
if (@mapper_modules_for)
|
1052
1048
|
@mapper_modules_for.each do |params, mod|
|
1053
|
-
if params.is_a?(String)
|
1054
|
-
mapper.extend(mod) if self.use_storage == params
|
1055
|
-
end
|
1056
|
-
end
|
1057
|
-
end
|
1058
|
-
if (@mapper_procs)
|
1059
|
-
@mapper_procs.each{ |proc| mapper.instance_eval(&proc) }
|
1060
|
-
end
|
1061
|
-
if (@mapper_procs_for)
|
1062
|
-
@mapper_procs_for.each do |params, proc|
|
1063
1049
|
if (params.length == 1 && params[0].class == String)
|
1064
|
-
mapper.
|
1050
|
+
mapper.extend(mod) if self.use_storage == params[0]
|
1065
1051
|
end
|
1066
1052
|
end
|
1067
1053
|
end
|
1068
|
-
if (@mapper_procs_subclass)
|
1069
|
-
@mapper_procs_subclass.each{ |proc| mapper.instance_eval(&proc) }
|
1070
|
-
end
|
1071
1054
|
return mapper
|
1072
1055
|
end
|
1073
1056
|
|
@@ -20,7 +20,7 @@ module Spider; module Model
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def target_element
|
23
|
-
@owner.elements[@integrated_element].type.elements[@integrated_element_element]
|
23
|
+
@target_element ||= @owner.elements[@integrated_element].type.elements[@integrated_element_element]
|
24
24
|
end
|
25
25
|
|
26
26
|
def type
|
@@ -923,14 +923,16 @@ module Spider; module Model; module Mappers
|
|
923
923
|
|
924
924
|
# Extend schema. Given block will be instance_eval'd after schema auto generation.
|
925
925
|
# See also #define_schema.
|
926
|
-
def with_schema(
|
927
|
-
@
|
926
|
+
def with_schema(&proc)
|
927
|
+
@schema_procs ||= []
|
928
|
+
@schema_procs << proc
|
928
929
|
end
|
929
930
|
|
930
931
|
# Define schema. Given block will be instance_eval'd before schema auto generation.
|
931
932
|
# See also #with_schema.
|
932
|
-
def define_schema(
|
933
|
-
@
|
933
|
+
def define_schema(&proc)
|
934
|
+
@schema_define_procs ||= []
|
935
|
+
@schema_define_procs << proc
|
934
936
|
end
|
935
937
|
|
936
938
|
# Returns @schema, or creates one.
|
@@ -942,13 +944,17 @@ module Spider; module Model; module Mappers
|
|
942
944
|
# Returns the schema, as defined or autogenerated.
|
943
945
|
def get_schema
|
944
946
|
schema = @model.superclass.mapper.get_schema() if (@model.attributes[:inherit_storage])
|
945
|
-
if
|
947
|
+
if @schema_define_procs
|
946
948
|
schema = DbSchema.new
|
947
|
-
|
949
|
+
@schema_define_procs.each do |schema_proc|
|
950
|
+
schema.instance_eval(&schema_proc)
|
951
|
+
end
|
948
952
|
end
|
949
953
|
schema = generate_schema(schema)
|
950
|
-
if
|
951
|
-
|
954
|
+
if @schema_procs
|
955
|
+
@schema_procs.each do |schema_proc|
|
956
|
+
schema.instance_eval(&schema_proc)
|
957
|
+
end
|
952
958
|
end
|
953
959
|
return schema
|
954
960
|
end
|
@@ -996,7 +1002,7 @@ module Spider; module Model; module Mappers
|
|
996
1002
|
column.primary_key = true if element.primary_key?
|
997
1003
|
schema.set_column(element.name, column)
|
998
1004
|
elsif (true) # FIXME: must have condition element.storage == @storage in some of the subcases
|
999
|
-
if (!element.multiple? && !element.attributes[:junction]) # 1/n <-> 1
|
1005
|
+
if (!element.multiple? && !element.attributes[:junction] && !element.attributes[:condition]) # 1/n <-> 1
|
1000
1006
|
current_schema = schema.foreign_keys[element.name] || {}
|
1001
1007
|
foreign_key_constraints = {}
|
1002
1008
|
element.type.primary_keys.each do |key|
|
@@ -1074,18 +1074,21 @@ module Spider; module Model
|
|
1074
1074
|
|
1075
1075
|
module MapperIncludeModule
|
1076
1076
|
|
1077
|
-
def self.extended(klass)
|
1078
|
-
klass.define_schema(&@schema_define_proc) if @schema_define_proc
|
1079
|
-
klass.with_schema(&@schema_proc) if @schema_proc
|
1080
|
-
super
|
1081
|
-
end
|
1082
|
-
|
1083
1077
|
def self.included(mod)
|
1084
1078
|
mod.extend(ModuleMethods)
|
1085
1079
|
end
|
1086
1080
|
|
1087
1081
|
module ModuleMethods
|
1088
1082
|
|
1083
|
+
def extended(obj)
|
1084
|
+
obj.define_schema &@schema_define_proc if @schema_define_proc
|
1085
|
+
obj.with_schema &@schema_proc if @schema_proc
|
1086
|
+
end
|
1087
|
+
|
1088
|
+
def no_map(*els)
|
1089
|
+
@no_map_elements ||= {}
|
1090
|
+
els.each{ |el| @no_map_elements[el] = true }
|
1091
|
+
end
|
1089
1092
|
|
1090
1093
|
|
1091
1094
|
def define_schema(&proc)
|
data/lib/spiderfw/model/model.rb
CHANGED
@@ -347,6 +347,7 @@ end
|
|
347
347
|
|
348
348
|
require 'spiderfw/model/query_funcs'
|
349
349
|
require 'spiderfw/model/base_model'
|
350
|
+
require 'spiderfw/model/mappers/mapper'
|
350
351
|
require 'spiderfw/model/mixins/mixins'
|
351
352
|
require 'spiderfw/model/extended_models/managed'
|
352
353
|
require 'spiderfw/model/inline_model'
|
data/spider.gemspec
CHANGED
@@ -39,6 +39,9 @@ Gem::Specification.new do |s|
|
|
39
39
|
s.add_dependency("locale", ["> 2.0"])
|
40
40
|
s.add_dependency("builder", ["> 2.1"])
|
41
41
|
s.add_dependency("macaddr", [">= 1.0.0"])
|
42
|
+
s.add_dependency("ripl", [">= 0.2.8"])
|
43
|
+
s.add_dependency("ripl-irb", [">= 0.2.1"])
|
44
|
+
s.add_dependency("ripl-multi_line", [">= 0.2.1"])
|
42
45
|
s.add_development_dependency("rake", ["> 0.7.3"])
|
43
46
|
s.add_development_dependency("ruby-debug", ["> 0.9.3"])
|
44
47
|
s.requirements << "Optional dependencies: json, openssl, sqlite3, webrick, mongrel, ruby-oci8 >2.0, mysql, yui-compressor, home_run, cldr"
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spiderfw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 47
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 5
|
9
|
-
-
|
10
|
-
version: 0.5.
|
9
|
+
- 18
|
10
|
+
version: 0.5.18
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ivan Pirlik
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-12-
|
18
|
+
date: 2010-12-23 00:00:00 +01:00
|
19
19
|
default_executable: spider
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -172,9 +172,57 @@ dependencies:
|
|
172
172
|
type: :runtime
|
173
173
|
version_requirements: *id010
|
174
174
|
- !ruby/object:Gem::Dependency
|
175
|
-
name:
|
175
|
+
name: ripl
|
176
176
|
prerelease: false
|
177
177
|
requirement: &id011 !ruby/object:Gem::Requirement
|
178
|
+
none: false
|
179
|
+
requirements:
|
180
|
+
- - ">="
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
hash: 7
|
183
|
+
segments:
|
184
|
+
- 0
|
185
|
+
- 2
|
186
|
+
- 8
|
187
|
+
version: 0.2.8
|
188
|
+
type: :runtime
|
189
|
+
version_requirements: *id011
|
190
|
+
- !ruby/object:Gem::Dependency
|
191
|
+
name: ripl-irb
|
192
|
+
prerelease: false
|
193
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
194
|
+
none: false
|
195
|
+
requirements:
|
196
|
+
- - ">="
|
197
|
+
- !ruby/object:Gem::Version
|
198
|
+
hash: 21
|
199
|
+
segments:
|
200
|
+
- 0
|
201
|
+
- 2
|
202
|
+
- 1
|
203
|
+
version: 0.2.1
|
204
|
+
type: :runtime
|
205
|
+
version_requirements: *id012
|
206
|
+
- !ruby/object:Gem::Dependency
|
207
|
+
name: ripl-multi_line
|
208
|
+
prerelease: false
|
209
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
210
|
+
none: false
|
211
|
+
requirements:
|
212
|
+
- - ">="
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
hash: 21
|
215
|
+
segments:
|
216
|
+
- 0
|
217
|
+
- 2
|
218
|
+
- 1
|
219
|
+
version: 0.2.1
|
220
|
+
type: :runtime
|
221
|
+
version_requirements: *id013
|
222
|
+
- !ruby/object:Gem::Dependency
|
223
|
+
name: rake
|
224
|
+
prerelease: false
|
225
|
+
requirement: &id014 !ruby/object:Gem::Requirement
|
178
226
|
none: false
|
179
227
|
requirements:
|
180
228
|
- - ">"
|
@@ -186,11 +234,11 @@ dependencies:
|
|
186
234
|
- 3
|
187
235
|
version: 0.7.3
|
188
236
|
type: :development
|
189
|
-
version_requirements: *
|
237
|
+
version_requirements: *id014
|
190
238
|
- !ruby/object:Gem::Dependency
|
191
239
|
name: ruby-debug
|
192
240
|
prerelease: false
|
193
|
-
requirement: &
|
241
|
+
requirement: &id015 !ruby/object:Gem::Requirement
|
194
242
|
none: false
|
195
243
|
requirements:
|
196
244
|
- - ">"
|
@@ -202,7 +250,7 @@ dependencies:
|
|
202
250
|
- 3
|
203
251
|
version: 0.9.3
|
204
252
|
type: :development
|
205
|
-
version_requirements: *
|
253
|
+
version_requirements: *id015
|
206
254
|
description: Spider is yet another Ruby framework.
|
207
255
|
email: abmajor7@gmail.com
|
208
256
|
executables:
|