Project

General

Profile

« Previous | Next » 

Revision 4c969e21

Added by Marc Dequènes over 13 years ago

  • ID 4c969e21f0acc2a3d27c1c707dbc2a7917caf455

[evol] select and record I18n locale in DSL Task (future use)

View differences:

lib/cyborghood/cyborg/dsl.rb
#++
require 'active_support/basic_object'
require 'http_headers'
require 'set'
......
end
class TaskBase < BaseDSL
attr_reader :bot, :name, :errors, :results
attr_reader :bot, :name, :errors, :results, :preferred_locales, :locale
@@task_wip = 0
......
@results = {}.freeze
@notification_name = "task/#{@name}"
@preferred_locales = nil
@locale = nil
_setup
_start_dsl &block
end
def set_preferred_locales(prefs)
_add_subtask("setting/preferred_locales") do |subtask|
logger.debug "Task '#{@name}': setting preferred locales"
lang_chooser = HTTPHeaders::AcceptLanguage.parse(prefs)
if lang_chooser
@preferred_locales = prefs
ordered_list = lang_chooser.reduce(I18nController.instance.available_locales)
@locale = ordered_list.empty? ? I18nController::DEFAULT_LOCALE : ordered_list.first.range
logger.debug "Task '#{@name}': locale chosen: #{@locale}"
else
@errors << CyberError.new(:unrecoverable, "botnet/client/dsl", _("unparsable preferred locales"))
end
subtask.finish
end
end
# may return a Hash of results
def schedule(&job)
_add_subtask("job/#{job.hash}") do |subtask|

Also available in: Unified diff