spiderfw 0.6.8 → 0.6.9
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 +5 -0
- data/VERSION +1 -1
- data/apps/core/auth/models/mixins/rbac_provider.rb +2 -2
- data/apps/core/components/widgets/admin/admin.rb +0 -1
- data/apps/master/models/server.rb +1 -1
- data/lib/spiderfw/config/configuration_editor.rb +1 -1
- data/lib/spiderfw/controller/http_controller.rb +4 -0
- data/lib/spiderfw/controller/mixins/http_mixin.rb +1 -1
- data/lib/spiderfw/controller/mixins/visual.rb +7 -5
- data/lib/spiderfw/create.rb +5 -5
- data/lib/spiderfw/i18n/gettext.rb +23 -7
- data/lib/spiderfw/model/base_model.rb +25 -4
- data/lib/spiderfw/model/element.rb +11 -1
- data/lib/spiderfw/model/inline_model.rb +5 -3
- data/lib/spiderfw/model/integrated_element.rb +3 -1
- data/lib/spiderfw/setup/app_manager.rb +25 -22
- data/lib/spiderfw/spider.rb +5 -6
- data/lib/spiderfw/widget/widget.rb +42 -28
- data/spider.gemspec +1 -1
- metadata +10 -10
data/CHANGELOG
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.6.
|
1
|
+
0.6.9
|
@@ -89,8 +89,8 @@ module Spider; module Auth
|
|
89
89
|
model_name = parts[i..-2].join('_')+'_'
|
90
90
|
self_name = self_parts[i..-2].join('_')+'_'
|
91
91
|
end
|
92
|
-
model_name += model.
|
93
|
-
self_name += self.
|
92
|
+
model_name += model.label_plural_
|
93
|
+
self_name += self.label_plural_
|
94
94
|
model_name.downcase!
|
95
95
|
self_name.downcase!
|
96
96
|
break
|
@@ -44,7 +44,6 @@ module Spider; module Components
|
|
44
44
|
crud.table_widget = @custom_widgets[model][:table] if @custom_widgets[model][:table]
|
45
45
|
crud.form_widget = @custom_widgets[model][:form] if @custom_widgets[model][:form]
|
46
46
|
end
|
47
|
-
|
48
47
|
@widgets[:switcher].add(model.label_plural, crud, _('Manage Data'))
|
49
48
|
end
|
50
49
|
if (@request.respond_to?(:user) && @request.user)
|
@@ -13,7 +13,7 @@ module Spider; module Master
|
|
13
13
|
many :commands, Master::Command, :add_reverse => :server
|
14
14
|
element_query :pending_commands, :commands, :condition => Spider::Model::Condition.new{ |c| c.status == 'pending' }
|
15
15
|
many :resources, Master::Resource, :delete_cascade => true
|
16
|
-
choice :customer, Master::Customer, :add_multiple_reverse => :
|
16
|
+
choice :customer, Master::Customer, :add_multiple_reverse => :servers
|
17
17
|
element :scout_plan_changed, DateTime, :hidden => true
|
18
18
|
multiple_choice :admins, Master::Admin, :add_multiple_reverse => :server do
|
19
19
|
element :receive_notifications, Bool, :default => true
|
@@ -90,6 +90,10 @@ module Spider
|
|
90
90
|
Locale.init(:driver => :cgi)
|
91
91
|
Locale.set_request(@request.params['lang'], @request.cookies['lang'], @request.env['HTTP_ACCEPT_LANGUAGE'], @request.env['HTTP_ACCEPT_CHARSET'])
|
92
92
|
@request.locale = Locale.current[0]
|
93
|
+
l = @request.locale.to_s
|
94
|
+
l = $1 if l =~ /(\w\w)_+/
|
95
|
+
FastGettext.locale = l
|
96
|
+
FastGettext.text_domain = 'spider'
|
93
97
|
if (action =~ /(.+)\.(\w+)$/) # strip extension, set format
|
94
98
|
action = $1
|
95
99
|
@request.format = $2.to_sym
|
@@ -210,11 +210,13 @@ module Spider; module ControllerMixins
|
|
210
210
|
end
|
211
211
|
init_widgets(template, layout)
|
212
212
|
return template if done?
|
213
|
-
|
214
|
-
layout
|
215
|
-
|
216
|
-
|
217
|
-
|
213
|
+
Spider::GetText.in_domain(self.class.app.short_name){
|
214
|
+
if layout
|
215
|
+
layout.render(scene)
|
216
|
+
else
|
217
|
+
template.render(scene)
|
218
|
+
end
|
219
|
+
}
|
218
220
|
return template
|
219
221
|
end
|
220
222
|
|
data/lib/spiderfw/create.rb
CHANGED
@@ -34,21 +34,21 @@ module Spider
|
|
34
34
|
create(source_path, dest_path)
|
35
35
|
|
36
36
|
begin
|
37
|
-
require '
|
37
|
+
require 'git'
|
38
38
|
|
39
39
|
cwd = Dir.getwd
|
40
40
|
Dir.chdir(dest_path)
|
41
41
|
begin
|
42
|
-
repo =
|
43
|
-
repo.add('apps', 'config', 'init.rb', 'public')
|
42
|
+
repo = Git.init(dest_path)
|
43
|
+
repo.add(['apps', 'config', 'init.rb', 'public'])
|
44
44
|
repo.add('.gitignore')
|
45
|
-
repo.
|
45
|
+
repo.commit(_("Created repository"))
|
46
46
|
rescue => exc
|
47
47
|
puts "Unable to init Git repo, please init manually"
|
48
48
|
end
|
49
49
|
Dir.chdir(cwd)
|
50
50
|
rescue LoadError
|
51
|
-
puts "
|
51
|
+
puts "git gem not installed, cannot init repo"
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
@@ -1,8 +1,24 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
require 'fast_gettext'
|
2
|
+
require 'locale'
|
3
|
+
include FastGettext::Translation
|
4
|
+
FastGettext.add_text_domain('spider', :path => File.join($SPIDER_PATH, 'data', 'locale'))
|
5
|
+
FastGettext.text_domain = 'spider'
|
6
|
+
l = Locale.current[0].to_s
|
7
|
+
l = $1 if l =~ /(\w\w)_+/
|
8
|
+
FastGettext.locale = l
|
4
9
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
10
|
+
module Spider
|
11
|
+
|
12
|
+
module GetText
|
13
|
+
|
14
|
+
def self.in_domain(domain, &block)
|
15
|
+
prev_text_domain = FastGettext.text_domain
|
16
|
+
FastGettext.text_domain = domain if FastGettext.translation_repositories.key?(domain)
|
17
|
+
v = yield
|
18
|
+
FastGettext.text_domain = prev_text_domain
|
19
|
+
v
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
@@ -99,7 +99,11 @@ module Spider; module Model
|
|
99
99
|
@subclasses ||= []
|
100
100
|
@subclasses << subclass
|
101
101
|
each_element do |el|
|
102
|
-
|
102
|
+
unless el.attributes[:local_pk]
|
103
|
+
cl_el = el.clone
|
104
|
+
cl_el.definer_model = el.definer_model
|
105
|
+
subclass.add_element(cl_el)
|
106
|
+
end
|
103
107
|
end
|
104
108
|
subclass.instance_variable_set("@mapper_modules", @mapper_modules.clone) if @mapper_modules
|
105
109
|
subclass.instance_variable_set("@extended_models", @extended_models.clone) if @extended_models
|
@@ -116,7 +120,7 @@ module Spider; module Model
|
|
116
120
|
def self.app
|
117
121
|
return @app if @app
|
118
122
|
app = self
|
119
|
-
while
|
123
|
+
while !app.include?(Spider::App)
|
120
124
|
app = app.parent_module
|
121
125
|
end
|
122
126
|
@app = app
|
@@ -527,6 +531,7 @@ module Spider; module Model
|
|
527
531
|
def self.add_element(el)
|
528
532
|
@elements ||= {}
|
529
533
|
@elements[el.name] = el
|
534
|
+
el.definer_model ||= self
|
530
535
|
@elements_order ||= []
|
531
536
|
if (el.attributes[:element_position])
|
532
537
|
@elements_order.insert(el.attributes[:element_position], el.name)
|
@@ -880,13 +885,29 @@ module Spider; module Model
|
|
880
885
|
def self.label(sing=nil, plur=nil)
|
881
886
|
@label = sing if sing
|
882
887
|
@label_plural = plur if plur
|
883
|
-
|
888
|
+
unless sing
|
889
|
+
Spider::GetText.in_domain(self.app.short_name){
|
890
|
+
_(@label || self.name || '')
|
891
|
+
}
|
892
|
+
end
|
884
893
|
end
|
885
894
|
|
886
895
|
# Sets/retrieves the plural form for the label
|
887
896
|
def self.label_plural(val=nil)
|
888
897
|
@label_plural = val if (val)
|
889
|
-
|
898
|
+
unless val
|
899
|
+
Spider::GetText.in_domain(self.app.short_name){
|
900
|
+
_(@label_plural || self.name || '')
|
901
|
+
}
|
902
|
+
end
|
903
|
+
end
|
904
|
+
|
905
|
+
def self.label_
|
906
|
+
@label
|
907
|
+
end
|
908
|
+
|
909
|
+
def self.label_plural_
|
910
|
+
@label_plural
|
890
911
|
end
|
891
912
|
|
892
913
|
def self.auto_primary_keys?
|
@@ -7,6 +7,7 @@ module Spider; module Model
|
|
7
7
|
class Element
|
8
8
|
attr_reader :name
|
9
9
|
attr_accessor :attributes
|
10
|
+
attr_accessor :definer_model
|
10
11
|
|
11
12
|
def initialize(name, type, attributes={})
|
12
13
|
@name = name
|
@@ -145,7 +146,16 @@ module Spider; module Model
|
|
145
146
|
|
146
147
|
# Label. Will use the :label attribute, or return the name split by '_' with each word capitalized.
|
147
148
|
def label
|
148
|
-
|
149
|
+
prev_text_domain = nil
|
150
|
+
if @definer_model && @definer_model != Spider::Model::Managed
|
151
|
+
prev_text_domain = FastGettext.text_domain
|
152
|
+
FastGettext.text_domain = @definer_model.app.short_name
|
153
|
+
end
|
154
|
+
l = self.attributes[:label] ? _(self.attributes[:label]) : Inflector.underscore_to_upcasefirst(@name.to_s)
|
155
|
+
if prev_text_domain
|
156
|
+
FastGettext.text_domain = prev_text_domain
|
157
|
+
end
|
158
|
+
l
|
149
159
|
end
|
150
160
|
|
151
161
|
def to_s
|
@@ -18,9 +18,11 @@ module Spider; module Model
|
|
18
18
|
self.data = val if (val)
|
19
19
|
d = @data
|
20
20
|
if self.translate?
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
Spider::GetText.in_domain(self.app.short_name){
|
22
|
+
@data.each do |k, v|
|
23
|
+
d[k] = _(v)
|
24
|
+
end
|
25
|
+
}
|
24
26
|
end
|
25
27
|
d
|
26
28
|
end
|
@@ -6,11 +6,13 @@ module Spider; module Model
|
|
6
6
|
def initialize(name, owner, integrated_element, integrated_element_element, attributes={})
|
7
7
|
@name = name
|
8
8
|
@owner = owner
|
9
|
+
el = @owner.elements[integrated_element]
|
10
|
+
@definer_model = el.model.elements[integrated_element_element].definer_model
|
9
11
|
@integrated_element = integrated_element
|
10
12
|
@integrated_element_element = integrated_element_element
|
11
13
|
@attributes = ({
|
12
14
|
:integrated => true,
|
13
|
-
:integrated_from =>
|
15
|
+
:integrated_from => el,
|
14
16
|
:integrated_from_element => @integrated_element_element
|
15
17
|
}).merge(attributes)
|
16
18
|
end
|
@@ -34,11 +34,11 @@ module Spider
|
|
34
34
|
use_git = false
|
35
35
|
unless options[:no_git]
|
36
36
|
begin
|
37
|
-
require '
|
37
|
+
require 'git'
|
38
38
|
use_git = true
|
39
39
|
rescue => exc
|
40
40
|
puts exc.message
|
41
|
-
puts "
|
41
|
+
puts "git gem not available; install git gem for Git support"
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
@@ -74,7 +74,7 @@ module Spider
|
|
74
74
|
:no_optional_gems => options[:no_optional_gems]
|
75
75
|
}
|
76
76
|
i_options[:ssh_user] = options[:ssh_user] if options[:ssh_user]
|
77
|
-
inst_specs = specs.reject
|
77
|
+
inst_specs = specs.reject{ |s| existent.include? s.app_id }
|
78
78
|
Spider::AppManager.install(inst_specs, Dir.pwd, i_options)
|
79
79
|
unless options[:no_activate]
|
80
80
|
require 'spiderfw/spider'
|
@@ -93,10 +93,10 @@ module Spider
|
|
93
93
|
use_git = false
|
94
94
|
unless options[:no_git]
|
95
95
|
begin
|
96
|
-
require '
|
96
|
+
require 'git'
|
97
97
|
use_git = true
|
98
98
|
rescue
|
99
|
-
puts "
|
99
|
+
puts "git gem not available; install git gem for Git support"
|
100
100
|
end
|
101
101
|
end
|
102
102
|
if options[:all]
|
@@ -131,7 +131,8 @@ module Spider
|
|
131
131
|
def self.install(specs, home_path, options)
|
132
132
|
options[:use_git] = true unless options[:use_git] == false
|
133
133
|
options[:home_path] = home_path
|
134
|
-
specs = [specs]
|
134
|
+
specs = [specs] if specs && !specs.is_a?(Array)
|
135
|
+
specs ||= []
|
135
136
|
pre_setup(specs, options)
|
136
137
|
specs.each do |spec|
|
137
138
|
if spec.git_repo && options[:use_git]
|
@@ -144,22 +145,25 @@ module Spider
|
|
144
145
|
end
|
145
146
|
|
146
147
|
def self.git_install(spec, home_path, options={})
|
147
|
-
require '
|
148
|
+
require 'git'
|
148
149
|
if ::File.exist?("apps/#{spec.id}")
|
149
150
|
puts _("%s already installed, skipping") % spec.id
|
150
151
|
return
|
151
152
|
end
|
152
|
-
repo =
|
153
|
+
repo = Git.open(home_path)
|
153
154
|
puts _("Fetching %s from %s") % [spec.app_id, spec.git_repo]
|
154
155
|
repo_url = spec.git_repo
|
155
156
|
if options[:ssh_user] && repo_url =~ /ssh:\/\/([^@]+@)?(.+)/
|
156
157
|
repo_url = "ssh://#{options[:ssh_user]}@#{$2}"
|
157
158
|
end
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
159
|
+
|
160
|
+
Dir.chdir(home_path) do
|
161
|
+
`git submodule add #{repo_url} apps/#{spec.id}`
|
162
|
+
`git submodule init`
|
163
|
+
`git submodule update`
|
164
|
+
end
|
165
|
+
repo.add(['.gitmodules', "apps/#{spec.id}"])
|
166
|
+
repo.commit(_("Added app %s") % spec.id)
|
163
167
|
end
|
164
168
|
|
165
169
|
def self.pack_install(spec, home_path, options={})
|
@@ -223,30 +227,29 @@ module Spider
|
|
223
227
|
end
|
224
228
|
|
225
229
|
def self.git_update(spec, home_path, options={})
|
226
|
-
require '
|
227
|
-
home_repo =
|
230
|
+
require 'git'
|
231
|
+
home_repo = Git.open(home_path)
|
228
232
|
app_path = File.join(home_path, "apps/#{spec.id}")
|
229
|
-
app_repo =
|
233
|
+
app_repo = Git.open(app_path)
|
230
234
|
puts _("Updating %s from %s") % [spec.app_id, spec.git_repo]
|
231
235
|
Dir.chdir(app_path) do
|
232
|
-
app_repo.
|
236
|
+
app_repo.branch('master').checkout
|
233
237
|
end
|
234
|
-
cmd = "#{Grit::Git.git_binary} --git-dir='#{app_path}/.git' pull"
|
235
238
|
response = err = nil
|
236
239
|
Dir.chdir(app_path) do
|
237
|
-
|
240
|
+
`git --git-dir='#{app_path}/.git' pull origin master`
|
238
241
|
end
|
239
242
|
if response =~ /Aborting/
|
240
243
|
puts err
|
241
244
|
return
|
242
245
|
end
|
243
246
|
Dir.chdir(app_path) do
|
244
|
-
app_repo.
|
245
|
-
app_repo.
|
247
|
+
app_repo.reset('HEAD', :hard => true)
|
248
|
+
app_repo.branch('master').checkout
|
246
249
|
end
|
247
250
|
|
248
251
|
home_repo.add("apps/#{spec.id}")
|
249
|
-
home_repo.
|
252
|
+
home_repo.commit(_("Updated app %s") % spec.id)
|
250
253
|
end
|
251
254
|
|
252
255
|
def self.pack_update(spec, home_path, options={})
|
data/lib/spiderfw/spider.rb
CHANGED
@@ -83,15 +83,15 @@ module Spider
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def init_apps
|
86
|
-
@apps.each do |name, mod|
|
87
|
-
mod.app_init if mod.respond_to?(:app_init)
|
88
|
-
end
|
89
|
-
GetText::LocalePath.memoize_clear # since new paths have been added to GetText
|
90
86
|
@apps.each do |name, mod|
|
91
87
|
if File.directory?(File.join(mod.path, 'po'))
|
92
|
-
|
88
|
+
Spider.logger.debug("Adding text domain #{mod.short_name}")
|
89
|
+
FastGettext.add_text_domain(mod.short_name, :path => File.join(mod.path, 'data', 'locale'))
|
93
90
|
end
|
94
91
|
end
|
92
|
+
@apps.each do |name, mod|
|
93
|
+
mod.app_init if mod.respond_to?(:app_init)
|
94
|
+
end
|
95
95
|
end
|
96
96
|
|
97
97
|
def init_done?
|
@@ -365,7 +365,6 @@ module Spider
|
|
365
365
|
last_name = File.basename(path)
|
366
366
|
app_files = ['_init.rb', last_name+'.rb', 'cmd.rb']
|
367
367
|
app_files.each{ |f| require File.join(relative_path, f) if File.exist?(File.join(path, f)) }
|
368
|
-
GetText::LocalePath.add_default_rule(File.join(path, "data/locale/%{lang}/LC_MESSAGES/%{name}.mo"))
|
369
368
|
end
|
370
369
|
|
371
370
|
|
@@ -249,7 +249,9 @@ module Spider
|
|
249
249
|
super
|
250
250
|
@is_target = false
|
251
251
|
@widgets = {}
|
252
|
-
|
252
|
+
Spider::GetText.in_domain(self.class.app.short_name){
|
253
|
+
@attributes = WidgetAttributes.new(self)
|
254
|
+
}
|
253
255
|
@id_path = []
|
254
256
|
@widget_attributes = {}
|
255
257
|
locale = @request.locale.language
|
@@ -317,13 +319,15 @@ module Spider
|
|
317
319
|
end
|
318
320
|
|
319
321
|
def widget_before(action='')
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
322
|
+
Spider::GetText.in_domain(self.class.app.short_name){
|
323
|
+
widget_init(action)
|
324
|
+
if active?
|
325
|
+
prepare_scene(@scene)
|
326
|
+
prepare
|
327
|
+
@before_done = true
|
328
|
+
end
|
329
|
+
}
|
330
|
+
|
327
331
|
end
|
328
332
|
|
329
333
|
|
@@ -425,7 +429,7 @@ module Spider
|
|
425
429
|
|
426
430
|
# Instantiates this widget's own subwidgets.
|
427
431
|
def load_widgets(template=@template)
|
428
|
-
if
|
432
|
+
if self.class.scene_attributes
|
429
433
|
self.class.scene_attributes.each do |name|
|
430
434
|
@scene[name] = instance_variable_get("@#{name}")
|
431
435
|
end
|
@@ -472,7 +476,7 @@ module Spider
|
|
472
476
|
|
473
477
|
def run(action='')
|
474
478
|
@widgets.each do |wname, w|
|
475
|
-
w.
|
479
|
+
w.do_run if w.run?
|
476
480
|
end
|
477
481
|
if (@parent)
|
478
482
|
@parent.after_widget(@id.to_sym)
|
@@ -489,33 +493,43 @@ module Spider
|
|
489
493
|
end
|
490
494
|
|
491
495
|
def index
|
492
|
-
|
496
|
+
do_run
|
493
497
|
render
|
494
498
|
end
|
495
499
|
|
500
|
+
def do_run
|
501
|
+
Spider::GetText.in_domain(self.class.app.short_name){
|
502
|
+
run
|
503
|
+
}
|
504
|
+
end
|
505
|
+
|
496
506
|
def render
|
497
|
-
|
498
|
-
|
499
|
-
|
507
|
+
Spider::GetText.in_domain(self.class.app.short_name){
|
508
|
+
prepare_scene(@scene)
|
509
|
+
set_scene_vars(@scene)
|
510
|
+
@template.render(@scene) unless @is_target_ancestor && !@is_target
|
511
|
+
}
|
500
512
|
end
|
501
513
|
|
502
514
|
def execute(action='', *params)
|
503
515
|
Spider.logger.debug("Widget #{self} executing #{action}")
|
504
|
-
|
505
|
-
|
506
|
-
if (
|
507
|
-
|
516
|
+
Spider::GetText.in_domain(self.class.app.short_name){
|
517
|
+
widget_execute = @request.params['_we']
|
518
|
+
if (@is_target)
|
519
|
+
if (widget_execute)
|
520
|
+
super(widget_execute, *params)
|
521
|
+
else
|
522
|
+
do_run
|
523
|
+
render
|
524
|
+
end
|
525
|
+
elsif (@_widget)
|
526
|
+
@_widget.set_action(widget_execute)
|
527
|
+
@_widget.before(@_widget_rest, *params)
|
528
|
+
@_widget.execute(@_widget_rest, *params)
|
508
529
|
else
|
509
|
-
|
510
|
-
render
|
530
|
+
super
|
511
531
|
end
|
512
|
-
|
513
|
-
@_widget.set_action(widget_execute)
|
514
|
-
@_widget.before(@_widget_rest, *params)
|
515
|
-
@_widget.execute(@_widget_rest, *params)
|
516
|
-
else
|
517
|
-
super
|
518
|
-
end
|
532
|
+
}
|
519
533
|
end
|
520
534
|
|
521
535
|
def try_rescue(exc)
|
@@ -751,7 +765,7 @@ module Spider
|
|
751
765
|
end
|
752
766
|
|
753
767
|
def set_scene_vars(scene)
|
754
|
-
if
|
768
|
+
if self.class.scene_attributes # Repeat for new instance variables
|
755
769
|
self.class.scene_attributes.each do |name|
|
756
770
|
@scene[name] = instance_variable_get("@#{name}")
|
757
771
|
end
|
data/spider.gemspec
CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
|
|
28
28
|
s.executables = ['spider']
|
29
29
|
s.default_executable = 'spider'
|
30
30
|
s.add_dependency("cmdparse", ["> 2.0.0"])
|
31
|
-
s.add_dependency("
|
31
|
+
s.add_dependency("fast_gettext", [">= 0.5.13"])
|
32
32
|
s.add_dependency("hpricot", ["> 0.8"])
|
33
33
|
s.add_dependency("json_pure", ["> 1.1"])
|
34
34
|
s.add_dependency("uuidtools", ["> 2.1"])
|
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: 21
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 6
|
9
|
-
-
|
10
|
-
version: 0.6.
|
9
|
+
- 9
|
10
|
+
version: 0.6.9
|
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: 2011-07-
|
18
|
+
date: 2011-07-28 00:00:00 +02:00
|
19
19
|
default_executable: spider
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -35,19 +35,19 @@ dependencies:
|
|
35
35
|
type: :runtime
|
36
36
|
version_requirements: *id001
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
|
-
name:
|
38
|
+
name: fast_gettext
|
39
39
|
prerelease: false
|
40
40
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
|
-
- - "
|
43
|
+
- - ">="
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
hash:
|
45
|
+
hash: 17
|
46
46
|
segments:
|
47
|
-
- 2
|
48
|
-
- 0
|
49
47
|
- 0
|
50
|
-
|
48
|
+
- 5
|
49
|
+
- 13
|
50
|
+
version: 0.5.13
|
51
51
|
type: :runtime
|
52
52
|
version_requirements: *id002
|
53
53
|
- !ruby/object:Gem::Dependency
|