spiderfw 0.5.17 → 0.5.18
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/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:
|