diff --git a/app/helpers/alchemy/elements_block_helper.rb b/app/helpers/alchemy/elements_block_helper.rb index 90dadfad20..b93b93a13b 100644 --- a/app/helpers/alchemy/elements_block_helper.rb +++ b/app/helpers/alchemy/elements_block_helper.rb @@ -125,13 +125,21 @@ def ingredient_by_role(role) # @option options :tags_formatter # A lambda used for formatting the element's tags (see Alchemy::ElementsHelper::element_tags_attributes). Set to +false+ to not include tags in the wrapper element. # - def element_view_for(element, options = {}) + def element_view_for(element, opts = {}) options = { tag: :div, id: "#{element.name}_#{element.id}", class: element.name, tags_formatter: ->(tags) { tags.join(" ") }, - }.merge(options) + }.merge(opts) + + if opts[:id].nil? + Alchemy::Deprecation.warn( + "Relying on the default DOM ID for your '#{element.name}' element is deprecated and will be removed from Alchemy 6.1. " \ + "If you do not need a DOM ID on your '#{element.name}' element you can just ignore this message. " \ + "But if you NEED a DOM ID on your element, please pass the desired DOM ID as `id` option into `element_view_for`." + ) + end # capture inner template block output = capture do diff --git a/spec/helpers/alchemy/elements_block_helper_spec.rb b/spec/helpers/alchemy/elements_block_helper_spec.rb index 74c200063f..1e5d3c3836 100644 --- a/spec/helpers/alchemy/elements_block_helper_spec.rb +++ b/spec/helpers/alchemy/elements_block_helper_spec.rb @@ -11,6 +11,12 @@ module Alchemy let(:expected_wrapper_tag) { "div.#{element.name}##{element.name}_#{element.id}" } describe "#element_view_for" do + around do |exmple| + Alchemy::Deprecation.silence do + exmple.run + end + end + it "should yield an instance of ElementViewHelper" do expect { |b| element_view_for(element, &b) }. to yield_with_args(ElementsBlockHelper::ElementViewHelper) diff --git a/spec/helpers/alchemy/elements_helper_spec.rb b/spec/helpers/alchemy/elements_helper_spec.rb index 4b3cfe23e4..30e451bd6f 100644 --- a/spec/helpers/alchemy/elements_helper_spec.rb +++ b/spec/helpers/alchemy/elements_helper_spec.rb @@ -13,6 +13,12 @@ module Alchemy end describe "#render_element" do + around do |example| + Alchemy::Deprecation.silence do + example.run + end + end + subject { render_element(element) } context "with nil element" do @@ -79,6 +85,12 @@ module Alchemy end describe "#render_elements" do + around do |example| + Alchemy::Deprecation.silence do + example.run + end + end + subject { helper.render_elements(options) } let(:page) { create(:alchemy_page, :public) }