lib/card/format/context_names.rb in card-1.94.1 vs lib/card/format/context_names.rb in card-1.95.0

- old
+ new

@@ -1,24 +1,26 @@ class Card class Format module ContextNames - def context_names @context_names ||= initial_context_names end def initial_context_names - @initial_context_names ||= - parent ? context_names_from_parent : context_names_from_params + @initial_context_names ||= relevant_context_names do + parent ? parent.context_names : context_names_from_params + end end - def context_names_from_parent + def relevant_context_names part_keys = @card.name.part_names.map(&:key) - parent.context_names.reject { |n| !part_keys.include? n.key } + yield.reject { |n| !part_keys.include? n.key } end + # "slot[name_context]" param is a string; + # @context_names is an array def context_names_from_params - return [] unless (name_list = Card::Env.slot_opts[:name_context]) + return [] unless (name_list = Card::Env.slot_opts.delete(:name_context)) name_list.to_s.split(",").map(&:to_name) end def context_names_to_params return if context_names.empty?