Skip to content

Commit 845c4b3

Browse files
Graham BouvierHarmony Bouvier
authored andcommitted
Utilize configuration object for translatable fields
Previously, translatable fields were hard-coded in the various decorators. With this change, they can be overridden with configuration in the client application using similar configuration patterns to other solidus extensions.
1 parent c8caf17 commit 845c4b3

11 files changed

+53
-26
lines changed

app/decorators/models/solidus_globalize/spree/option_type_decorator.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ module SolidusGlobalize
44
module Spree
55
module OptionTypeDecorator
66
def self.prepended(base)
7+
translatable_fields = ::SolidusGlobalize::Config.translatable_fields[base.to_s]
78
base.class_eval do
8-
translates :name, :presentation, fallbacks_for_empty_translations: true
9+
translates(*translatable_fields, fallbacks_for_empty_translations: true)
910
include SolidusGlobalize::Translatable
1011
end
1112
end

app/decorators/models/solidus_globalize/spree/option_value_decorator.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ module SolidusGlobalize
44
module Spree
55
module OptionValueDecorator
66
def self.prepended(base)
7+
translatable_fields = ::SolidusGlobalize::Config.translatable_fields[base.to_s]
78
base.class_eval do
8-
translates :name, :presentation, fallbacks_for_empty_translations: true
9+
translates(*translatable_fields, fallbacks_for_empty_translations: true)
910
include SolidusGlobalize::Translatable
1011
end
1112
end

app/decorators/models/solidus_globalize/spree/product_decorator.rb

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,9 @@ module SolidusGlobalize
44
module Spree
55
module ProductDecorator
66
def self.prepended(base)
7+
translatable_fields = ::SolidusGlobalize::Config.translatable_fields[base.to_s]
78
base.class_eval do
8-
translates :name,
9-
:description,
10-
:meta_description,
11-
:meta_keywords,
12-
:meta_title,
13-
:slug,
14-
fallbacks_for_empty_translations: true
9+
translates(*translatable_fields, fallbacks_for_empty_translations: true)
1510

1611
friendly_id :slug_candidates, use: [:history, :globalize]
1712

app/decorators/models/solidus_globalize/spree/product_property_decorator.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ module SolidusGlobalize
44
module Spree
55
module ProductPropertyDecorator
66
def self.prepended(base)
7+
translatable_fields = ::SolidusGlobalize::Config.translatable_fields[base.to_s]
78
base.class_eval do
8-
translates :value, fallbacks_for_empty_translations: true
9+
translates(*translatable_fields, fallbacks_for_empty_translations: true)
910
include SolidusGlobalize::Translatable
1011
end
1112
end

app/decorators/models/solidus_globalize/spree/promotion_decorator.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ module SolidusGlobalize
44
module Spree
55
module PromotionDecorator
66
def self.prepended(base)
7+
translatable_fields = ::SolidusGlobalize::Config.translatable_fields[base.to_s]
78
base.class_eval do
8-
translates :name, :description, fallbacks_for_empty_translations: true
9+
translates(*translatable_fields, fallbacks_for_empty_translations: true)
910
include SolidusGlobalize::Translatable
1011
end
1112
end

app/decorators/models/solidus_globalize/spree/property_decorator.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ module SolidusGlobalize
44
module Spree
55
module PropertyDecorator
66
def self.prepended(base)
7+
translatable_fields = ::SolidusGlobalize::Config.translatable_fields[base.to_s]
78
base.class_eval do
8-
translates :name, :presentation, fallbacks_for_empty_translations: true
9+
translates(*translatable_fields, fallbacks_for_empty_translations: true)
910
include SolidusGlobalize::Translatable
1011
end
1112
end

app/decorators/models/solidus_globalize/spree/shipping_method_decorator.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ module SolidusGlobalize
44
module Spree
55
module ShippingMethodDecorator
66
def self.prepended(base)
7+
translatable_fields = ::SolidusGlobalize::Config.translatable_fields[base.to_s]
78
base.class_eval do
8-
translates :name, fallbacks_for_empty_translations: true
9+
translates(*translatable_fields, fallbacks_for_empty_translations: true)
910
include SolidusGlobalize::Translatable
1011
end
1112
end

app/decorators/models/solidus_globalize/spree/store_decorator.rb

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,9 @@ module SolidusGlobalize
44
module Spree
55
module StoreDecorator
66
def self.prepended(base)
7+
translatable_fields = ::SolidusGlobalize::Config.translatable_fields[base.to_s]
78
base.class_eval do
8-
translates :name,
9-
:meta_description,
10-
:meta_keywords,
11-
:seo_title,
12-
fallbacks_for_empty_translations: true
9+
translates(*translatable_fields, fallbacks_for_empty_translations: true)
1310
include SolidusGlobalize::Translatable
1411
end
1512
end

app/decorators/models/solidus_globalize/spree/taxon_decorator.rb

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,9 @@ module SolidusGlobalize
44
module Spree
55
module TaxonDecorator
66
def self.prepended(base)
7+
translatable_fields = ::SolidusGlobalize::Config.translatable_fields[base.to_s]
78
base.class_eval do
8-
translates :name,
9-
:description,
10-
:meta_title,
11-
:meta_description,
12-
:meta_keywords,
13-
:permalink,
14-
fallbacks_for_empty_translations: true
9+
translates(*translatable_fields, fallbacks_for_empty_translations: true)
1510
include SolidusGlobalize::Translatable
1611
end
1712
end

app/decorators/models/solidus_globalize/spree/taxonomy_decorator.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ module SolidusGlobalize
44
module Spree
55
module TaxonomyDecorator
66
def self.prepended(base)
7+
translatable_fields = ::SolidusGlobalize::Config.translatable_fields[base.to_s]
78
base.class_eval do
8-
translates :name, fallbacks_for_empty_translations: true
9+
translates(*translatable_fields, fallbacks_for_empty_translations: true)
910
include SolidusGlobalize::Translatable
1011
end
1112
end

0 commit comments

Comments
 (0)