spec/i18n/text_spec.rb in yard-0.9.16 vs spec/i18n/text_spec.rb in yard-0.9.17

- old
+ new

@@ -1,184 +1,184 @@ -# frozen_string_literal: true - -RSpec.describe YARD::I18n::Text do - describe "#extract_messages" do - def extract_messages(input, options = {}) - text = YARD::I18n::Text.new(StringIO.new(input), options) - messages = [] - text.extract_messages do |*message| - messages << message - end - messages - end - - describe "Header" do - it "extracts at attribute" do - text = <<-eot -# @title Getting Started Guide - -# Getting Started with YARD -eot - expect(extract_messages(text, :have_header => true)).to eq( - [[:attribute, "title", "Getting Started Guide", 1], - [:paragraph, "# Getting Started with YARD", 3]] - ) - end - - it "ignores markup line" do - text = <<-eot -#!markdown -# @title Getting Started Guide - -# Getting Started with YARD -eot - expect(extract_messages(text, :have_header => true)).to eq( - [[:attribute, "title", "Getting Started Guide", 2], - [:paragraph, "# Getting Started with YARD", 4]] - ) - end - - it "terminates header block by markup line not at the first line" do - text = <<-eot -# @title Getting Started Guide -#!markdown - -# Getting Started with YARD -eot - expect(extract_messages(text, :have_header => true)).to eq( - [[:attribute, "title", "Getting Started Guide", 1], - [:paragraph, "#!markdown", 2], - [:paragraph, "# Getting Started with YARD", 4]] - ) - end - end - - describe "Body" do - it "splits to paragraphs" do - paragraph1 = <<-eop.strip -Note that class methods must not be referred to with the "::" namespace -separator. Only modules, classes and constants should use "::". -eop - paragraph2 = <<-eop.strip -You can also do lookups on any installed gems. Just make sure to build the -.yardoc databases for installed gems with: -eop - text = <<-eot -#{paragraph1} - -#{paragraph2} -eot - expect(extract_messages(text)).to eq( - [[:paragraph, paragraph1, 1], - [:paragraph, paragraph2, 4]] - ) - end - end - end - - describe "#translate" do - def locale - locale = YARD::I18n::Locale.new("fr") - messages = locale.instance_variable_get(:@messages) - messages["markdown"] = "markdown (markdown in fr)" - messages["Hello"] = "Bonjour (Hello in fr)" - messages["Paragraph 1."] = "Paragraphe 1." - messages["Paragraph 2."] = "Paragraphe 2." - locale - end - - def translate(input, options = {}) - text = YARD::I18n::Text.new(StringIO.new(input), options) - text.translate(locale) - end - - describe "Header" do - it "extracts at attribute" do - text = <<-eot -# @title Hello - -# Getting Started with YARD - -Paragraph. -eot - expect(translate(text, :have_header => true)).to eq <<-eot -# @title Bonjour (Hello in fr) - -# Getting Started with YARD - -Paragraph. -eot - end - - it "ignores markup line" do - text = <<-eot -#!markdown -# @title Hello - -# Getting Started with YARD - -Paragraph. -eot - expect(translate(text, :have_header => true)).to eq <<-eot -#!markdown -# @title Bonjour (Hello in fr) - -# Getting Started with YARD - -Paragraph. -eot - end - end - - describe "Body" do - it "splits to paragraphs" do - paragraph1 = <<-eop.strip -Paragraph 1. -eop - paragraph2 = <<-eop.strip -Paragraph 2. -eop - text = <<-eot -#{paragraph1} - -#{paragraph2} -eot - expect(translate(text)).to eq <<-eot -Paragraphe 1. - -Paragraphe 2. -eot - end - - it "does not modify non-translated message" do - nonexistent_paragraph = <<-eop.strip -Nonexsitent paragraph. -eop - text = <<-eot -#{nonexistent_paragraph} -eot - expect(translate(text)).to eq <<-eot -#{nonexistent_paragraph} -eot - end - - it "keeps empty lines" do - text = <<-eot -Paragraph 1. - - - - -Paragraph 2. -eot - expect(translate(text)).to eq <<-eot -Paragraphe 1. - - - - -Paragraphe 2. -eot - end - end - end -end +# frozen_string_literal: true + +RSpec.describe YARD::I18n::Text do + describe "#extract_messages" do + def extract_messages(input, options = {}) + text = YARD::I18n::Text.new(StringIO.new(input), options) + messages = [] + text.extract_messages do |*message| + messages << message + end + messages + end + + describe "Header" do + it "extracts at attribute" do + text = <<-eot +# @title Getting Started Guide + +# Getting Started with YARD +eot + expect(extract_messages(text, :have_header => true)).to eq( + [[:attribute, "title", "Getting Started Guide", 1], + [:paragraph, "# Getting Started with YARD", 3]] + ) + end + + it "ignores markup line" do + text = <<-eot +#!markdown +# @title Getting Started Guide + +# Getting Started with YARD +eot + expect(extract_messages(text, :have_header => true)).to eq( + [[:attribute, "title", "Getting Started Guide", 2], + [:paragraph, "# Getting Started with YARD", 4]] + ) + end + + it "terminates header block by markup line not at the first line" do + text = <<-eot +# @title Getting Started Guide +#!markdown + +# Getting Started with YARD +eot + expect(extract_messages(text, :have_header => true)).to eq( + [[:attribute, "title", "Getting Started Guide", 1], + [:paragraph, "#!markdown", 2], + [:paragraph, "# Getting Started with YARD", 4]] + ) + end + end + + describe "Body" do + it "splits to paragraphs" do + paragraph1 = <<-eop.strip +Note that class methods must not be referred to with the "::" namespace +separator. Only modules, classes and constants should use "::". +eop + paragraph2 = <<-eop.strip +You can also do lookups on any installed gems. Just make sure to build the +.yardoc databases for installed gems with: +eop + text = <<-eot +#{paragraph1} + +#{paragraph2} +eot + expect(extract_messages(text)).to eq( + [[:paragraph, paragraph1, 1], + [:paragraph, paragraph2, 4]] + ) + end + end + end + + describe "#translate" do + def locale + locale = YARD::I18n::Locale.new("fr") + messages = locale.instance_variable_get(:@messages) + messages["markdown"] = "markdown (markdown in fr)" + messages["Hello"] = "Bonjour (Hello in fr)" + messages["Paragraph 1."] = "Paragraphe 1." + messages["Paragraph 2."] = "Paragraphe 2." + locale + end + + def translate(input, options = {}) + text = YARD::I18n::Text.new(StringIO.new(input), options) + text.translate(locale) + end + + describe "Header" do + it "extracts at attribute" do + text = <<-eot +# @title Hello + +# Getting Started with YARD + +Paragraph. +eot + expect(translate(text, :have_header => true)).to eq <<-eot +# @title Bonjour (Hello in fr) + +# Getting Started with YARD + +Paragraph. +eot + end + + it "ignores markup line" do + text = <<-eot +#!markdown +# @title Hello + +# Getting Started with YARD + +Paragraph. +eot + expect(translate(text, :have_header => true)).to eq <<-eot +#!markdown +# @title Bonjour (Hello in fr) + +# Getting Started with YARD + +Paragraph. +eot + end + end + + describe "Body" do + it "splits to paragraphs" do + paragraph1 = <<-eop.strip +Paragraph 1. +eop + paragraph2 = <<-eop.strip +Paragraph 2. +eop + text = <<-eot +#{paragraph1} + +#{paragraph2} +eot + expect(translate(text)).to eq <<-eot +Paragraphe 1. + +Paragraphe 2. +eot + end + + it "does not modify non-translated message" do + nonexistent_paragraph = <<-eop.strip +Nonexsitent paragraph. +eop + text = <<-eot +#{nonexistent_paragraph} +eot + expect(translate(text)).to eq <<-eot +#{nonexistent_paragraph} +eot + end + + it "keeps empty lines" do + text = <<-eot +Paragraph 1. + + + + +Paragraph 2. +eot + expect(translate(text)).to eq <<-eot +Paragraphe 1. + + + + +Paragraphe 2. +eot + end + end + end +end