Commit db9b5366c4a1007eb41f2d56f8c35d242de3fed8
1 parent
a1bd9d6f
Exists in
colab
and in
4 other branches
Better organization for CompoundMetricConfiguration translations
Cretated helper t_hint for easy hint translation retrieval Signed off by: Daniel Miranda <danielkza2@gmail.com>
Showing
12 changed files
with
125 additions
and
37 deletions
Show diff stats
app/helpers/application_helper.rb
app/helpers/compound_metric_configurations_helper.rb
| ... | ... | @@ -2,4 +2,13 @@ module CompoundMetricConfigurationsHelper |
| 2 | 2 | def scope_options |
| 3 | 3 | [[t("scopes.METHOD"),"METHOD"], [t("scopes.CLASS"), "CLASS"], [t("scopes.PACKAGE"), "PACKAGE"], [t("scopes.SOFTWARE"), "SOFTWARE"]] |
| 4 | 4 | end |
| 5 | + | |
| 6 | + def compound_metric_human_name(count=1) | |
| 7 | + key = count > 1 ? 'other': 'one' | |
| 8 | + t("activemodel.models.compound_metric_configuration.#{key}") | |
| 9 | + end | |
| 10 | + | |
| 11 | + def compound_metric_human_attribute_name(attribute_key) | |
| 12 | + t("activemodel.attributes.compound_metric_configuration.#{attribute_key}") | |
| 13 | + end | |
| 5 | 14 | end | ... | ... |
app/views/compound_metric_configurations/_form.html.erb
| ... | ... | @@ -8,7 +8,7 @@ |
| 8 | 8 | |
| 9 | 9 | <div class="form-row"> |
| 10 | 10 | <div class="field-container"> |
| 11 | - <%= f.label :weight, t('weight'), class: 'control-label' %> | |
| 11 | + <%= f.label :weight, compound_metric_human_attribute_name('weight'), class: 'control-label' %> | |
| 12 | 12 | <%= f.text_field :weight, :required => true, class: 'text-field form-control' %> |
| 13 | 13 | </div> |
| 14 | 14 | <div class="help-container"> |
| ... | ... | @@ -25,7 +25,7 @@ |
| 25 | 25 | <% else %> |
| 26 | 26 | <div class="form-row"> |
| 27 | 27 | <div class="field-container"> |
| 28 | - <%= f.label :reading_group_id, t('reading_group'), class: 'control-label' %> | |
| 28 | + <%= f.label :reading_group_id, ReadingGroup.model_name.human, class: 'control-label' %> | |
| 29 | 29 | <%= f.select( :reading_group_id, reading_group_options, {class: 'form-control'} ) %> |
| 30 | 30 | </div> |
| 31 | 31 | <div class="help-container"> | ... | ... |
app/views/compound_metric_configurations/_metric_options.html.erb
| 1 | 1 | <div class="form-row"> |
| 2 | 2 | <div class="field-container"> |
| 3 | - <%= f.label :name, t('name'), class: 'control-label' %> | |
| 3 | + <%= f.label :name, compound_metric_human_attribute_name('name'), class: 'control-label' %> | |
| 4 | 4 | <%= f.text_field :name, :required => true, class: 'text-field form-control', value: (metric.name unless metric.nil?) %> |
| 5 | 5 | </div> |
| 6 | 6 | <div class="help-container"> |
| 7 | 7 | <p> |
| 8 | - <%= t('body1_compound_metric_options') %> | |
| 8 | + <%= t_hint(:name) %> | |
| 9 | 9 | </p> |
| 10 | 10 | </div> |
| 11 | 11 | </div> |
| 12 | 12 | |
| 13 | 13 | <div class="form-row"> |
| 14 | 14 | <div class="field-container"> |
| 15 | - <%= f.label :description, t('description'), class: 'control-label' %> | |
| 15 | + <%= f.label :description, compound_metric_human_attribute_name('description'), class: 'control-label' %> | |
| 16 | 16 | <%= f.text_field :description, class: 'text-field form-control', value: (metric.description unless metric.nil?) %> |
| 17 | 17 | </div> |
| 18 | 18 | <div class="help-container"> |
| 19 | 19 | <p> |
| 20 | - <%= t('body2_compound_metric_options') %> | |
| 20 | + <%= t_hint(:description) %> | |
| 21 | 21 | </p> |
| 22 | 22 | </div> |
| 23 | 23 | </div> |
| 24 | 24 | |
| 25 | 25 | <div class="form-row"> |
| 26 | 26 | <div class="field-container"> |
| 27 | - <%= f.label :script, t('script'), class: 'control-label' %> | |
| 27 | + <%= f.label :script, compound_metric_human_attribute_name('script'), class: 'control-label' %> | |
| 28 | 28 | <%= f.text_area :script, :required => true, class: 'text-area form-control', value: (metric.script unless metric.nil?) %> |
| 29 | 29 | </div> |
| 30 | 30 | <div class="help-container"> |
| 31 | 31 | <p> |
| 32 | - <%= t('body3_compound_metric_options') %> | |
| 32 | + <%= t_hint(:script) %> | |
| 33 | 33 | </p> |
| 34 | 34 | </div> |
| 35 | 35 | </div> |
| 36 | 36 | |
| 37 | 37 | <div class="form-row"> |
| 38 | 38 | <div class="field-container"> |
| 39 | - <%= f.label :scope, t('scope'), class: 'control-label' %> | |
| 39 | + <%= f.label :scope, compound_metric_human_attribute_name('scope'), class: 'control-label' %> | |
| 40 | 40 | <%= f.select( :scope, scope_options, {class: 'form-control', selected: (metric.scope unless metric.nil?)} ) %> |
| 41 | 41 | </div> |
| 42 | 42 | <div class="help-container"> |
| ... | ... | @@ -48,16 +48,16 @@ |
| 48 | 48 | |
| 49 | 49 | <div class="form-row"> |
| 50 | 50 | <div class="field-container"> |
| 51 | - <%= f.label :code, t('code'), class: 'control-label' %> | |
| 51 | + <%= f.label :code, compound_metric_human_attribute_name('code'), class: 'control-label' %> | |
| 52 | 52 | <%= f.text_field :code, :required => true, class: 'text-field form-control' %> |
| 53 | 53 | </div> |
| 54 | 54 | <div class="help-container"> |
| 55 | 55 | <p> |
| 56 | - <%= t('body1_compound_form') %> | |
| 56 | + <%= t_hint('code.description') %> | |
| 57 | 57 | </p> |
| 58 | 58 | <br> |
| 59 | 59 | <p> |
| 60 | - <%= t('body1_compound_form_example') %> | |
| 60 | + <%= t_hint('code.example') %> | |
| 61 | 61 | </p> |
| 62 | 62 | </div> |
| 63 | 63 | </div> | ... | ... |
app/views/compound_metric_configurations/edit.html.erb
app/views/compound_metric_configurations/new.html.erb
config/locales/views/compound_metric_configuration/en.yml
| 1 | 1 | en: |
| 2 | - body1_compound_form: "A variable that holds the value of a metric calculation. It can be used in the script of another compound metric." | |
| 3 | - body2_compound_form: " It is used to calculate the weighted average of a" | |
| 4 | - body1_compound_form_example: "Example: Code foo := 10" | |
| 5 | - body1_compound_metric_options: "A custom name for your compound metric." | |
| 6 | - body2_compound_metric_options: "A short description of your compound metric." | |
| 7 | - body3_compound_metric_options: "A mathematical expression (in javascript) to calculate your compound metric. It needs a return statement. The codes of already created metrics can be used inside the script." | |
| 8 | - title_compound_edit: "Edit Compound Metric Configuration" | |
| 9 | - title_compound_new: "New Compound Metric Configuration" | |
| 10 | - compound_metric: "Compound Metric" | |
| 11 | - | |
| 2 | + activemodel: | |
| 3 | + models: | |
| 4 | + compound_metric_configuration: | |
| 5 | + one: "Compound Metric Configuration" | |
| 6 | + other: "Compound Metric Configurations" | |
| 7 | + attributes: | |
| 8 | + compound_metric_configuration: | |
| 9 | + name: "Name" | |
| 10 | + description: "Description" | |
| 11 | + script: "Script" | |
| 12 | + scope: "Scope" | |
| 13 | + code: "Code" | |
| 14 | + weight: "Weight" | |
| 15 | + hints: | |
| 16 | + compound_metric_configuration: | |
| 17 | + name: "A custom name for your compound metric." | |
| 18 | + description: "A short description of your compound metric." | |
| 19 | + script: "A mathematical expression (in javascript) to calculate your compound metric. It needs a return statement. The codes of already created metrics can be used inside the script." | |
| 20 | + code: | |
| 21 | + description: "A variable that holds the value of a metric calculation. It can be used in the script of another compound metric." | |
| 22 | + example: "Example: Code foo := 10" | |
| 23 | + weight: "It is used to calculate the weighted average of a" | ... | ... |
config/locales/views/compound_metric_configuration/pt.yml
| 1 | 1 | pt: |
| 2 | - body1_compound_form: "Uma variável que contém o valor de um cálculo de métrica. Ele pode ser utilizado no script de outra métrica composta." | |
| 3 | - body1_compound_form_example: "Exemplo: Código foo := 10" | |
| 4 | - body1_compound_metric_options: "Um nome personalizado para a sua métrica composta." | |
| 5 | - body2_compound_metric_options: "Uma breve descrição de sua métrica composta." | |
| 6 | - body3_compound_metric_options: "A expressão matemática (em javascript) para calcular a sua métrica composta. Ela precisa de uma instrução de retorno (por exemplo, 'return resultado;'). Os códigos de métricas já criadas podem ser usados dentro do script." | |
| 7 | - title_compound_edit: "Editar Configuração de Métrica Composta" | |
| 8 | - title_compound_new: "Nova Configuração de Métrica Composta" | |
| 9 | - compound_metric: "Métrica Composta" | |
| 2 | + activemodel: | |
| 3 | + models: | |
| 4 | + compound_metric_configuration: | |
| 5 | + one: "Configuração de Métrica Composta" | |
| 6 | + other: "Configurações de Métricas Compostas" | |
| 7 | + attributes: | |
| 8 | + compound_metric_configuration: | |
| 9 | + name: "Nome" | |
| 10 | + description: "Descrição" | |
| 11 | + script: "Script" | |
| 12 | + scope: "Escopo" | |
| 13 | + code: "Código" | |
| 14 | + weight: "Peso" | |
| 15 | + hints: | |
| 16 | + compound_metric_configuration: | |
| 17 | + name: "Um nome personalizado para sua métrica composta." | |
| 18 | + description: "Uma descrição curta de sua métrica composta." | |
| 19 | + script: "Uma expressão matemática (em JavaScript) para calcular sua métrica composta. Ela precisa de uma cláusula de retorno. O código de suas demais métricas pode ser utilizado dentro deste script." | |
| 20 | + code: | |
| 21 | + description: "Uma variável que contém o valor do cálculo da métrica. Ela pode ser usada no script de outra métrica composa." | |
| 22 | + example: "Examplo: Código foo := 10" | |
| 23 | + weight: "ele é usado para o cálculo de uma média ponderada de um" | ... | ... |
features/compound_metric_configuration/create.feature
| ... | ... | @@ -13,18 +13,18 @@ Feature: Compound Metric Configuration Creation |
| 13 | 13 | And I am at the Sample Configuration page |
| 14 | 14 | And I click the Add Metric link |
| 15 | 15 | And I click the Compound Metric link |
| 16 | - When I click the "Created Metrics" h3 | |
| 17 | 16 | Then I see the sample metric configuration name |
| 18 | 17 | And I see the sample metric configuration code |
| 19 | 18 | When I fill the Name field with "My Compound Metric" |
| 20 | 19 | And I fill the Description field with "Some description" |
| 21 | 20 | And I fill the Code field with "mcm" |
| 22 | - And I fill the Script field with "8*8;" | |
| 21 | + And I fill the Script field with "return 8*8;" | |
| 23 | 22 | And I fill the Weight field with "8" |
| 24 | 23 | And I set the select field "Scope" as "Class" |
| 25 | 24 | And I set the select field "Reading Group" as "Scholar" |
| 26 | 25 | And I press the Save button |
| 27 | - When I click the show link of "My Compound Metric" | |
| 26 | + Then I should see "Compound Metric Configuration was successfully created." | |
| 27 | + And I click the show link of "My Compound Metric" | |
| 28 | 28 | Then I should see "My Compound Metric" |
| 29 | 29 | And I should see "mcm" |
| 30 | 30 | And I should see "8" | ... | ... |
features/step_definitions/user_steps.rb
| ... | ... | @@ -7,11 +7,11 @@ When(/^I press the (.+) button$/) do |text| |
| 7 | 7 | end |
| 8 | 8 | |
| 9 | 9 | When(/^I fill the (.+) field with "(.+)"$/) do |field, text| |
| 10 | - fill_in I18n.t(field.gsub(" ", "_").downcase), :with => text | |
| 10 | + fill_in field, :with => text | |
| 11 | 11 | end |
| 12 | 12 | |
| 13 | 13 | Then(/^the field "(.*?)" should be filled with "(.*?)"$/) do |field, value| |
| 14 | - expect(page.find_field(I18n.t(field.gsub(" ", "_").downcase)).value).to eq(value) | |
| 14 | + expect(page.find_field(field).value).to eq(value) | |
| 15 | 15 | end |
| 16 | 16 | |
| 17 | 17 | Then(/^my name should have changed to (.+)$/) do |text| | ... | ... |
| ... | ... | @@ -0,0 +1,26 @@ |
| 1 | +require 'rails_helper' | |
| 2 | + | |
| 3 | +describe ApplicationHelper, :type => :helper do | |
| 4 | + describe 't_hint' do | |
| 5 | + let(:class_key) { :compound_metric_configuration } | |
| 6 | + let(:attribute_key) { :script } | |
| 7 | + | |
| 8 | + context 'without class_key' do | |
| 9 | + let!(:translation) { "translated test" } | |
| 10 | + | |
| 11 | + before :each do | |
| 12 | + helper.expects(:t).with("activemodel.hints.#{helper.controller_name}.#{attribute_key}").returns(translation) | |
| 13 | + end | |
| 14 | + | |
| 15 | + it 'is expected to return the hint for the given attribute' do | |
| 16 | + expect(helper.t_hint(attribute_key)).to eq(translation) | |
| 17 | + end | |
| 18 | + end | |
| 19 | + | |
| 20 | + context 'with class_key' do | |
| 21 | + it 'is expected to return the hint for the given attribute' do | |
| 22 | + expect(helper.t_hint(attribute_key, class_key)).to eq(I18n.t("activemodel.hints.#{class_key}.#{attribute_key}")) | |
| 23 | + end | |
| 24 | + end | |
| 25 | + end | |
| 26 | +end | |
| 0 | 27 | \ No newline at end of file | ... | ... |
spec/helpers/compound_metric_configurations_helper_spec.rb
| ... | ... | @@ -6,4 +6,27 @@ describe CompoundMetricConfigurationsHelper, :type => :helper do |
| 6 | 6 | expect(helper.scope_options).to eq [["Method","METHOD"], ["Class", "CLASS"], ["Package", "PACKAGE"], ["Software", "SOFTWARE"]] |
| 7 | 7 | end |
| 8 | 8 | end |
| 9 | + | |
| 10 | + describe 'compound_metric_human_name' do | |
| 11 | + context 'with one' do | |
| 12 | + it 'is expected to return the class name internationalized' do | |
| 13 | + expect(helper.compound_metric_human_name).to eq(I18n.t('activemodel.models.compound_metric_configuration.one')) | |
| 14 | + end | |
| 15 | + end | |
| 16 | + | |
| 17 | + context 'with more than one' do | |
| 18 | + it 'is expected to return the class name internationalized and pluralized' do | |
| 19 | + expect(helper.compound_metric_human_name(2)).to eq(I18n.t('activemodel.models.compound_metric_configuration.other')) | |
| 20 | + expect(helper.compound_metric_human_name(50)).to eq(I18n.t('activemodel.models.compound_metric_configuration.other')) | |
| 21 | + end | |
| 22 | + end | |
| 23 | + end | |
| 24 | + | |
| 25 | + describe 'compound_metric_human_attribute_name' do | |
| 26 | + let(:attribute) { :name } | |
| 27 | + | |
| 28 | + it 'is expected to return the attribute name internationalized' do | |
| 29 | + expect(helper.compound_metric_human_attribute_name(attribute)).to eq(I18n.t("activemodel.attributes.compound_metric_configuration.#{attribute}")) | |
| 30 | + end | |
| 31 | + end | |
| 9 | 32 | end | ... | ... |