diff options
author | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-10-22 16:03:57 +0000 |
---|---|---|
committer | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-10-22 16:03:57 +0000 |
commit | 847e461a89da2c4c750ef72adeafb5802d13aced (patch) | |
tree | 02fa443fef401cd141410133be83e22be20547bc /lib | |
parent | 7abfd65446c567da5c95350525c1bbf357fff332 (diff) | |
download | ruby-847e461a89da2c4c750ef72adeafb5802d13aced.tar.gz |
rss itunes: fix a bug that <itunes:explicit> value isn't fully supported
Fix GH-1725
<itunes:explicit> accepts "explicit", "yes", "true", "clean", "no" and
"false" as valid values.
Here is the <itunes:explicit>'s description in
https://help.apple.com/itc/podcasts_connect/#/itcb54353390:
> The <itunes:explicit> tag indicates whether your podcast contains
> explicit material. You can specify the following values:
>
> * Yes | Explicit | True. If you specify yes, explicit, or true,
> indicating the presence of explicit content, the iTunes Store
> displays an Explicit parental advisory graphic for your podcast.
>
> * Clean | No | False. If you specify clean, no, or false, indicating
> that none of your podcast episodes contain explicit language or
> adult content, the iTunes Store displays a Clean parental
> advisory graphic for your podcast.
I don't know whether <itunes:explicit> value is case sensitive or
insensitive. But the current implementation is case insensitive.
Reported by Valerie Woolard Srinivasan. Thanks!!!
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r-- | lib/rss/itunes.rb | 2 | ||||
-rw-r--r-- | lib/rss/maker/itunes.rb | 8 | ||||
-rw-r--r-- | lib/rss/rss.rb | 14 | ||||
-rw-r--r-- | lib/rss/utils.rb | 6 |
4 files changed, 15 insertions, 15 deletions
diff --git a/lib/rss/itunes.rb b/lib/rss/itunes.rb index 827970c209..987b090f21 100644 --- a/lib/rss/itunes.rb +++ b/lib/rss/itunes.rb @@ -51,7 +51,7 @@ module RSS ELEMENT_INFOS = [["author"], ["block", :yes_other], - ["explicit", :yes_clean_other], + ["explicit", :explicit_clean_other], ["keywords", :csv], ["subtitle"], ["summary"]] diff --git a/lib/rss/maker/itunes.rb b/lib/rss/maker/itunes.rb index cc1051ae0c..d964a4d942 100644 --- a/lib/rss/maker/itunes.rb +++ b/lib/rss/maker/itunes.rb @@ -13,8 +13,8 @@ module RSS klass.def_other_element(full_name) when :yes_other def_yes_other_accessor(klass, full_name) - when :yes_clean_other - def_yes_clean_other_accessor(klass, full_name) + when :explicit_clean_other + def_explicit_clean_other_accessor(klass, full_name) when :csv def_csv_accessor(klass, full_name) when :element, :attribute @@ -43,11 +43,11 @@ module RSS EOC end - def def_yes_clean_other_accessor(klass, full_name) + def def_explicit_clean_other_accessor(klass, full_name) klass.def_other_element(full_name) klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1) def #{full_name}? - Utils::YesCleanOther.parse(#{full_name}) + Utils::ExplicitCleanOther.parse(#{full_name}) end EOC end diff --git a/lib/rss/rss.rb b/lib/rss/rss.rb index 00db219d4e..f88bb3c1ba 100644 --- a/lib/rss/rss.rb +++ b/lib/rss/rss.rb @@ -374,12 +374,12 @@ EOC end end - def yes_clean_other_attr_reader(*attrs) + def explicit_clean_other_attr_reader(*attrs) attrs.each do |attr| module_eval(<<-EOC, __FILE__, __LINE__ + 1) attr_reader(:#{attr}) def #{attr}? - YesCleanOther.parse(@#{attr}) + ExplicitCleanOther.parse(@#{attr}) end EOC end @@ -544,7 +544,7 @@ EOC EOC end - def yes_clean_other_writer(name, disp_name=name) + def explicit_clean_other_writer(name, disp_name=name) module_eval(<<-EOC, __FILE__, __LINE__ + 1) def #{name}=(value) value = (value ? "yes" : "no") if [true, false].include?(value) @@ -763,8 +763,8 @@ EOC text_type_writer name, disp_name when :content content_writer name, disp_name - when :yes_clean_other - yes_clean_other_writer name, disp_name + when :explicit_clean_other + explicit_clean_other_writer name, disp_name when :yes_other yes_other_writer name, disp_name when :csv @@ -782,8 +782,8 @@ EOC inherit_convert_attr_reader name when :uri uri_convert_attr_reader name - when :yes_clean_other - yes_clean_other_attr_reader name + when :explicit_clean_other + explicit_clean_other_attr_reader name when :yes_other yes_other_attr_reader name when :csv diff --git a/lib/rss/utils.rb b/lib/rss/utils.rb index ce7dbf1b02..9203df9a9b 100644 --- a/lib/rss/utils.rb +++ b/lib/rss/utils.rb @@ -125,16 +125,16 @@ module RSS [true, false].include?(args[0]) and args[1].is_a?(Hash) end - module YesCleanOther + module ExplicitCleanOther module_function def parse(value) if [true, false, nil].include?(value) value else case value.to_s - when /\Ayes\z/i + when /\Aexplicit|yes|true\z/i true - when /\Aclean\z/i + when /\Aclean|no|false\z/i false else nil |