Class: Kitsu::Anime
- Inherits:
-
Object
- Object
- Kitsu::Anime
- Defined in:
- lib/kitsu/anime.rb
Constant Summary collapse
- SEASON_PATTERNS =
[ '(\d+)\w{2}\sSeason$', 'Season (\d+)', '(\w+)\sSeason$', '(\w+\-\w+)\sSeason$' ].freeze
Instance Attribute Summary collapse
-
#data ⇒ Object
Returns the value of attribute data.
Instance Method Summary collapse
-
#initialize(parsed) ⇒ Anime
constructor
A new instance of Anime.
- #ordinalized_words_to_numbers ⇒ Object
- #season ⇒ Object
- #title ⇒ Object
Constructor Details
#initialize(parsed) ⇒ Anime
Returns a new instance of Anime.
12 13 14 15 |
# File 'lib/kitsu/anime.rb', line 12 def initialize(parsed) @parsed = parsed @data = @parsed['data'] end |
Instance Attribute Details
#data ⇒ Object
Returns the value of attribute data.
3 4 5 |
# File 'lib/kitsu/anime.rb', line 3 def data @data end |
Instance Method Details
#ordinalized_words_to_numbers ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/kitsu/anime.rb', line 17 def ordinalized_words_to_numbers @ordinalized_words_to_numbers_map ||= Hash[(1..100).to_a.map do |number| word = number.localize.to_rbnf_s('SpelloutRules', 'spellout-ordinal') number = number.to_s [word, number] end] end |
#season ⇒ Object
30 31 32 33 34 35 36 37 |
# File 'lib/kitsu/anime.rb', line 30 def season pattern = /#{SEASON_PATTERNS.join('|')}/ matches = @data['attributes']['titles']['en_jp'].match(pattern) return '1' if matches.nil? season = matches.captures.compact.first return ordinalized_words_to_numbers[season] if season.to_i.zero? season end |
#title ⇒ Object
25 26 27 28 |
# File 'lib/kitsu/anime.rb', line 25 def title en_jp_title = data['attributes']['titles']['en_jp'] en_jp_title.match(/(^.+?)($|\s\d+\w{2}\sSeason)/).captures[0] end |