Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove i18n code #2167

Merged
merged 42 commits into from Nov 27, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
f1c774d
Fix script to work with both i18n & ERB
chrisroos Nov 26, 2015
d07abf2
Remove convert-question-i18n-yaml-to-erb-templates.rb
chrisroos Nov 25, 2015
c801235
Default to using ERB templates for questions
chrisroos Nov 25, 2015
d6f5c1f
Avoid using use_erb_templates_for_questions in test flows
chrisroos Nov 25, 2015
9c5d56f
Avoid using use_erb_templates_for_questions in flows
chrisroos Nov 25, 2015
2981a2c
Remove Flow#use_erb_templates_for_questions
chrisroos Nov 25, 2015
cbbb71f
Remove support for i18n question templates in FlowRegistrationPresenter
chrisroos Nov 25, 2015
d65924c
Rename flow_registration_presenter_with_erb_renderer_test
chrisroos Nov 25, 2015
21e25a5
Remove graph_presenter_test
chrisroos Nov 26, 2015
74f783b
Rename graph_presenter_with_erb_renderer_test
chrisroos Nov 26, 2015
2b58972
Remove question_presenter_test
chrisroos Nov 26, 2015
23e5551
Rename question_presenter_with_erb_renderer_test
chrisroos Nov 26, 2015
904ca61
Remove Flow#use_i18n_templates_for_questions
chrisroos Nov 26, 2015
a51df13
Hard code Question::Base#use_erb_template? to return true
chrisroos Nov 26, 2015
0947062
Move #use_erb_template? to QuestionPresenter
chrisroos Nov 26, 2015
b325ed2
Remove else condition in QuestionPresenter#initialize
chrisroos Nov 26, 2015
8e4cb1c
Remove else condition in QuestionPresenter#title
chrisroos Nov 26, 2015
72b58a9
Remove else condition in QuestionPresenter#error_message_for
chrisroos Nov 26, 2015
74545b6
Remove else condition in QuestionPresenter#hint
chrisroos Nov 26, 2015
27c9b08
Remove else condition in QuestionPresenter#label
chrisroos Nov 26, 2015
451041d
Remove else condition in QuestionPresenter#suffix_label
chrisroos Nov 26, 2015
88458e7
Remove else condition in QuestionPresenter#body
chrisroos Nov 26, 2015
66c925f
Remove else condition in QuestionPresenter#post_body
chrisroos Nov 26, 2015
c08c198
Remove else condition in QuestionPresenter#render_option
chrisroos Nov 26, 2015
719b345
Remove QuestionPresenter#use_erb_template?
chrisroos Nov 26, 2015
757f7a8
Avoid delegating to renderer from QuestionPresenter
chrisroos Nov 26, 2015
2683fa8
Remove I18nRenderer
chrisroos Nov 26, 2015
e8b875e
Stop passing i18n_prefix to StartNodePresenter
chrisroos Nov 26, 2015
8ce553a
Stop passing i18n_prefix to OutcomePresenter
chrisroos Nov 26, 2015
b63cb97
Stop passing i18n_prefix to QuestionPresenter
chrisroos Nov 26, 2015
c9b7d44
Stop passing i18n_prefix to NodePresenter
chrisroos Nov 26, 2015
35f52ac
Remove unused variable from legalisation-document-checker
chrisroos Nov 26, 2015
56b01cf
Remove i18n_prefix from presenters and tests
chrisroos Nov 26, 2015
4eb1b80
Don't add smart_answer_flows/locales to i18n load path
chrisroos Nov 26, 2015
96bdb0d
Avoid rescuing i18n errors in script
chrisroos Nov 26, 2015
1d7f0db
Remove unused i18n helper
chrisroos Nov 26, 2015
a6d71a3
Remove unused error messages from en.yml
chrisroos Nov 26, 2015
32389f3
Add QuestionPresenter#default_error_message
chrisroos Nov 26, 2015
234ef0f
Avoid using i18n to format dates
chrisroos Nov 26, 2015
5560d5c
Remove "phraselist" from integration test names
chrisroos Nov 26, 2015
f5eae19
Remove assert_phrase_list test helper method
chrisroos Nov 26, 2015
8590043
Remove PhraseList class and tests
chrisroos Nov 26, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 2 additions & 2 deletions app/presenters/date_question_presenter.rb
Expand Up @@ -3,9 +3,9 @@ class DateQuestionPresenter < QuestionPresenter

def response_label(value)
if only_display_day_and_month?(value)
I18n.localize(value, format: :day_and_month)
value.strftime("%e %B")
else
I18n.localize(value, format: :long)
value.strftime("%e %B %Y")
end
end

Expand Down
12 changes: 3 additions & 9 deletions app/presenters/flow_registration_presenter.rb
Expand Up @@ -2,7 +2,6 @@ class FlowRegistrationPresenter

def initialize(flow)
@flow = flow
@i18n_prefix = "flow.#{@flow.name}"
end

def slug
Expand Down Expand Up @@ -44,14 +43,9 @@ def method_missing(method, *args, &block)
def indexable_content
HTMLEntities.new.decode(
text = @flow.questions.inject([start_node.body]) { |acc, node|
pres = QuestionPresenter.new(@i18n_prefix, node, nil, helpers: [MethodMissingHelper])
pres = QuestionPresenter.new(node, nil, helpers: [MethodMissingHelper])
acc.concat(NODE_PRESENTER_METHODS.map { |method|
begin
pres.send(method)
rescue I18n::MissingInterpolationArgument
# We can't do much about this, so we ignore these text nodes
nil
end
pres.send(method)
})
}.compact.join(" ").gsub(/(?:<[^>]+>|\s)+/, " ")
)
Expand All @@ -65,6 +59,6 @@ def state

def start_node
node = SmartAnswer::Node.new(@flow, @flow.name.underscore.to_sym)
StartNodePresenter.new(@i18n_prefix, node)
StartNodePresenter.new(node)
end
end
3 changes: 1 addition & 2 deletions app/presenters/node_presenter.rb
Expand Up @@ -2,8 +2,7 @@ class NodePresenter
extend Forwardable
delegate [:outcome?] => :@node

def initialize(i18n_prefix, node, state = nil)
@i18n_prefix = i18n_prefix
def initialize(node, state = nil)
@node = node
@state = state || SmartAnswer::State.new(nil)
end
Expand Down
4 changes: 2 additions & 2 deletions app/presenters/outcome_presenter.rb
@@ -1,6 +1,6 @@
class OutcomePresenter < NodePresenter
def initialize(i18n_prefix, node, state = nil, options = {})
super(i18n_prefix, node, state)
def initialize(node, state = nil, options = {})
super(node, state)
@renderer = options[:renderer] || SmartAnswer::ErbRenderer.new(
template_directory: @node.template_directory.join('outcomes'),
template_name: @node.name.to_s,
Expand Down
89 changes: 22 additions & 67 deletions app/presenters/question_presenter.rb
@@ -1,98 +1,53 @@
class QuestionPresenter < NodePresenter
extend Forwardable
delegate [
:translate!,
:translate_and_render,
:translate_option
] => :@renderer

delegate use_erb_template?: :@node

def initialize(i18n_prefix, node, state = nil, options = {})
super(i18n_prefix, node, state)
def initialize(node, state = nil, options = {})
super(node, state)
@renderer = options[:renderer]
helpers = options[:helpers] || []
if use_erb_template?
@renderer ||= SmartAnswer::ErbRenderer.new(
template_directory: @node.template_directory.join('questions'),
template_name: @node.filesystem_friendly_name,
locals: @state.to_hash,
helpers: [SmartAnswer::FormattingHelper] + helpers
)
else
@renderer ||= SmartAnswer::I18nRenderer.new(
i18n_prefix: @i18n_prefix,
node: @node,
state: @state
)
end
@renderer ||= SmartAnswer::ErbRenderer.new(
template_directory: @node.template_directory.join('questions'),
template_name: @node.filesystem_friendly_name,
locals: @state.to_hash,
helpers: [SmartAnswer::FormattingHelper] + helpers
)
end

def title
if use_erb_template?
@renderer.single_line_of_content_for(:title)
else
translate!('title', rescue_exception: false)
end
@renderer.single_line_of_content_for(:title)
end

def error
if @state.error.present?
error_message_for(@state.error) || error_message_for('error_message') || I18n.translate('flow.defaults.error_message')
error_message_for(@state.error) || error_message_for('error_message') || default_error_message
end
end

def error_message_for(key)
if use_erb_template?
message = @renderer.single_line_of_content_for(key.to_sym)
message.blank? ? nil : message
else
translate!(key)
end
message = @renderer.single_line_of_content_for(key.to_sym)
message.blank? ? nil : message
end

def hint
if use_erb_template?
@renderer.single_line_of_content_for(:hint)
else
translate!('hint')
end
@renderer.single_line_of_content_for(:hint)
end

def label
if use_erb_template?
@renderer.single_line_of_content_for(:label)
else
translate!('label')
end
@renderer.single_line_of_content_for(:label)
end

def suffix_label
if use_erb_template?
@renderer.single_line_of_content_for(:suffix_label)
else
translate!('suffix_label')
end
@renderer.single_line_of_content_for(:suffix_label)
end

def has_labels?
label.present? || suffix_label.present?
end

def body(html: true)
if use_erb_template?
@renderer.content_for(:body, html: html)
else
translate_and_render('body', html: html)
end
@renderer.content_for(:body, html: html)
end

def post_body
if use_erb_template?
@renderer.content_for(:post_body, html: true)
else
translate_and_render('post_body', html: true)
end
@renderer.content_for(:post_body, html: true)
end

def options
Expand All @@ -102,11 +57,7 @@ def options
end

def render_option(key)
if use_erb_template?
@renderer.option_text(key.to_sym)
else
translate_option(key)
end
@renderer.option_text(key.to_sym)
end

def to_response(input)
Expand All @@ -124,4 +75,8 @@ def partial_template_name
def multiple_responses?
false
end

def default_error_message
"Please answer this question"
end
end
8 changes: 2 additions & 6 deletions app/presenters/smart_answer_presenter.rb
Expand Up @@ -22,10 +22,6 @@ def artefact
{}
end

def i18n_prefix
"flow.#{@flow.name}"
end

def title
start_node.title
end
Expand Down Expand Up @@ -80,7 +76,7 @@ def presenter_for(node)
OutcomePresenter
else NodePresenter
end
presenter_class.new(i18n_prefix, node, current_state)
presenter_class.new(node, current_state)
end

def current_question_number
Expand All @@ -97,7 +93,7 @@ def current_node

def start_node
node = SmartAnswer::Node.new(@flow, @flow.name.underscore.to_sym)
StartNodePresenter.new(i18n_prefix, node)
StartNodePresenter.new(node)
end

def change_collapsed_question_link(question_number)
Expand Down
4 changes: 2 additions & 2 deletions app/presenters/start_node_presenter.rb
@@ -1,6 +1,6 @@
class StartNodePresenter < NodePresenter
def initialize(i18n_prefix, node, state = nil, options = {})
super(i18n_prefix, node, state)
def initialize(node, state = nil, options = {})
super(node, state)
@renderer = options[:renderer] || SmartAnswer::ErbRenderer.new(
template_directory: @node.template_directory,
template_name: @node.name.to_s
Expand Down
1 change: 0 additions & 1 deletion config/application.rb
Expand Up @@ -31,7 +31,6 @@ class Application < Rails::Application

# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
config.i18n.enforce_available_locales = false
config.i18n.load_path += Dir[Rails.root.join(*%w{lib smart_answer_flows locales * *.{rb,yml}}).to_s]
config.i18n.default_locale = :"en-GB"

# Configure the default encoding used in templates for Ruby 1.9.
Expand Down
1 change: 0 additions & 1 deletion config/initializers/flow_preview.rb
Expand Up @@ -9,4 +9,3 @@
# Uncomment the following to run smartanswers with the test flows instead of the real ones
#
#FLOW_REGISTRY_OPTIONS[:load_path] = Rails.root.join('test', 'fixtures', 'flows')
#I18n.load_path += Dir[Rails.root.join(*%w{test fixtures flows locales * *.{rb,yml}})]
11 changes: 0 additions & 11 deletions config/locales/en.yml
Expand Up @@ -2,14 +2,3 @@
# See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.

en-GB:
date:
formats:
day_and_month: "%e %B"
long: "%e %B %Y"
flow:
defaults:
error_message: Please answer this question
holiday_pay:
error_messages:
invalid_hours: Please enter a valid amount of hours per week.
invalid_days: Please enter a valid amount of days per week.
3 changes: 1 addition & 2 deletions lib/graph_presenter.rb
@@ -1,7 +1,6 @@
class GraphPresenter
def initialize(flow)
@flow = flow
@i18n_prefix = "flow.#{@flow.name}"
end

def labels
Expand Down Expand Up @@ -79,7 +78,7 @@ def method_missing(method, *args, &block)
end

def node_title(node)
presenter = QuestionPresenter.new(@i18n_prefix, node, {}, helpers: [MethodMissingHelper])
presenter = QuestionPresenter.new(node, {}, helpers: [MethodMissingHelper])
presenter.title
end

Expand Down
5 changes: 0 additions & 5 deletions lib/smart_answer/flow.rb
Expand Up @@ -48,10 +48,6 @@ def status(s = nil)
@status
end

def use_erb_templates_for_questions
@use_erb_templates_for_questions = true
end

def multiple_choice(name, options = {}, &block)
add_question(Question::MultipleChoice, name, options, &block)
end
Expand Down Expand Up @@ -136,7 +132,6 @@ class InvalidStatus < StandardError; end
private

def add_question(klass, name, options = {}, &block)
options.reverse_merge!(use_erb_template: @use_erb_templates_for_questions)
add_node klass.new(self, name, options, &block)
end

Expand Down
63 changes: 0 additions & 63 deletions lib/smart_answer/i18n_renderer.rb

This file was deleted.

23 changes: 0 additions & 23 deletions lib/smart_answer/phrase_list.rb

This file was deleted.