aboutsummaryrefslogtreecommitdiffstats
path: root/guides/rails_guides
diff options
context:
space:
mode:
authorXavier Noria <fxn@hashref.com>2016-08-06 19:55:02 +0200
committerXavier Noria <fxn@hashref.com>2016-08-06 20:16:27 +0200
commit80e66cc4d90bf8c15d1a5f6e3152e90147f00772 (patch)
treee7e75464af04f3cf1935b29238dbd7cb2337b0dd /guides/rails_guides
parent411ccbdab2608c62aabdb320d52cb02d446bb39c (diff)
downloadrails-80e66cc4d90bf8c15d1a5f6e3152e90147f00772.tar.gz
rails-80e66cc4d90bf8c15d1a5f6e3152e90147f00772.tar.bz2
rails-80e66cc4d90bf8c15d1a5f6e3152e90147f00772.zip
normalizes indentation and whitespace across the project
Diffstat (limited to 'guides/rails_guides')
-rw-r--r--guides/rails_guides/generator.rb220
-rw-r--r--guides/rails_guides/indexer.rb72
-rw-r--r--guides/rails_guides/kindle.rb12
3 files changed, 152 insertions, 152 deletions
diff --git a/guides/rails_guides/generator.rb b/guides/rails_guides/generator.rb
index 881bf2174b..39a57191eb 100644
--- a/guides/rails_guides/generator.rb
+++ b/guides/rails_guides/generator.rb
@@ -102,148 +102,148 @@ module RailsGuides
private
- def kindle?
- @kindle
- end
+ def kindle?
+ @kindle
+ end
- def check_for_kindlegen
- if `which kindlegen`.blank?
- raise "Can't create a kindle version without `kindlegen`."
+ def check_for_kindlegen
+ if `which kindlegen`.blank?
+ raise "Can't create a kindle version without `kindlegen`."
+ end
end
- end
- def generate_mobi
- require "rails_guides/kindle"
- out = "#{output_dir}/kindlegen.out"
- Kindle.generate(output_dir, mobi, out)
- puts "(kindlegen log at #{out})."
- end
+ def generate_mobi
+ require "rails_guides/kindle"
+ out = "#{output_dir}/kindlegen.out"
+ Kindle.generate(output_dir, mobi, out)
+ puts "(kindlegen log at #{out})."
+ end
- def mobi
- "ruby_on_rails_guides_#@version%s.mobi" % (@lang.present? ? ".#@lang" : "")
- end
+ def mobi
+ "ruby_on_rails_guides_#@version%s.mobi" % (@lang.present? ? ".#@lang" : "")
+ end
- def initialize_dirs(output)
- @guides_dir = File.join(File.dirname(__FILE__), "..")
- @source_dir = "#@guides_dir/source/#@lang"
- @output_dir = if output
- output
- elsif kindle?
- "#@guides_dir/output/kindle/#@lang"
- else
- "#@guides_dir/output/#@lang"
- end.sub(%r</$>, "")
- end
+ def initialize_dirs(output)
+ @guides_dir = File.join(File.dirname(__FILE__), "..")
+ @source_dir = "#@guides_dir/source/#@lang"
+ @output_dir = if output
+ output
+ elsif kindle?
+ "#@guides_dir/output/kindle/#@lang"
+ else
+ "#@guides_dir/output/#@lang"
+ end.sub(%r</$>, "")
+ end
- def create_output_dir_if_needed
- FileUtils.mkdir_p(output_dir)
- end
+ def create_output_dir_if_needed
+ FileUtils.mkdir_p(output_dir)
+ end
- def generate_guides
- guides_to_generate.each do |guide|
- output_file = output_file_for(guide)
- generate_guide(guide, output_file) if generate?(guide, output_file)
+ def generate_guides
+ guides_to_generate.each do |guide|
+ output_file = output_file_for(guide)
+ generate_guide(guide, output_file) if generate?(guide, output_file)
+ end
end
- end
- def guides_to_generate
- guides = Dir.entries(source_dir).grep(GUIDES_RE)
+ def guides_to_generate
+ guides = Dir.entries(source_dir).grep(GUIDES_RE)
- if kindle?
- Dir.entries("#{source_dir}/kindle").grep(GUIDES_RE).map do |entry|
- next if entry == "KINDLE.md"
- guides << "kindle/#{entry}"
+ if kindle?
+ Dir.entries("#{source_dir}/kindle").grep(GUIDES_RE).map do |entry|
+ next if entry == "KINDLE.md"
+ guides << "kindle/#{entry}"
+ end
end
+
+ ENV.key?("ONLY") ? select_only(guides) : guides
end
- ENV.key?("ONLY") ? select_only(guides) : guides
- end
+ def select_only(guides)
+ prefixes = ENV["ONLY"].split(",").map(&:strip)
+ guides.select do |guide|
+ guide.start_with?("kindle".freeze, *prefixes)
+ end
+ end
- def select_only(guides)
- prefixes = ENV["ONLY"].split(",").map(&:strip)
- guides.select do |guide|
- guide.start_with?("kindle".freeze, *prefixes)
+ def copy_assets
+ FileUtils.cp_r(Dir.glob("#{guides_dir}/assets/*"), output_dir)
end
- end
- def copy_assets
- FileUtils.cp_r(Dir.glob("#{guides_dir}/assets/*"), output_dir)
- end
+ def output_file_for(guide)
+ if guide.end_with?(".md")
+ guide.sub(/md\z/, "html")
+ else
+ guide.sub(/\.erb\z/, "")
+ end
+ end
- def output_file_for(guide)
- if guide.end_with?(".md")
- guide.sub(/md\z/, "html")
- else
- guide.sub(/\.erb\z/, "")
+ def output_path_for(output_file)
+ File.join(output_dir, File.basename(output_file))
end
- end
- def output_path_for(output_file)
- File.join(output_dir, File.basename(output_file))
- end
+ def generate?(source_file, output_file)
+ fin = File.join(source_dir, source_file)
+ fout = output_path_for(output_file)
+ all || !File.exist?(fout) || File.mtime(fout) < File.mtime(fin)
+ end
- def generate?(source_file, output_file)
- fin = File.join(source_dir, source_file)
- fout = output_path_for(output_file)
- all || !File.exist?(fout) || File.mtime(fout) < File.mtime(fin)
- end
+ def generate_guide(guide, output_file)
+ output_path = output_path_for(output_file)
+ puts "Generating #{guide} as #{output_file}"
+ layout = kindle? ? "kindle/layout" : "layout"
- def generate_guide(guide, output_file)
- output_path = output_path_for(output_file)
- puts "Generating #{guide} as #{output_file}"
- layout = kindle? ? "kindle/layout" : "layout"
+ File.open(output_path, "w") do |f|
+ view = ActionView::Base.new(source_dir, edge: @edge, version: @version, mobi: "kindle/#{mobi}", lang: @lang)
+ view.extend(Helpers)
- File.open(output_path, "w") do |f|
- view = ActionView::Base.new(source_dir, edge: @edge, version: @version, mobi: "kindle/#{mobi}", lang: @lang)
- view.extend(Helpers)
+ if guide =~ /\.(\w+)\.erb$/
+ # Generate the special pages like the home.
+ # Passing a template handler in the template name is deprecated. So pass the file name without the extension.
+ result = view.render(layout: layout, formats: [$1], file: $`)
+ else
+ body = File.read(File.join(source_dir, guide))
+ result = RailsGuides::Markdown.new(view, layout).render(body)
- if guide =~ /\.(\w+)\.erb$/
- # Generate the special pages like the home.
- # Passing a template handler in the template name is deprecated. So pass the file name without the extension.
- result = view.render(layout: layout, formats: [$1], file: $`)
- else
- body = File.read(File.join(source_dir, guide))
- result = RailsGuides::Markdown.new(view, layout).render(body)
+ warn_about_broken_links(result) if @warnings
+ end
- warn_about_broken_links(result) if @warnings
+ f.write(result)
end
-
- f.write(result)
end
- end
- def warn_about_broken_links(html)
- anchors = extract_anchors(html)
- check_fragment_identifiers(html, anchors)
- end
+ def warn_about_broken_links(html)
+ anchors = extract_anchors(html)
+ check_fragment_identifiers(html, anchors)
+ end
- def extract_anchors(html)
- # Markdown generates headers with IDs computed from titles.
- anchors = Set.new
- html.scan(/<h\d\s+id="([^"]+)/).flatten.each do |anchor|
- if anchors.member?(anchor)
- puts "*** DUPLICATE ID: #{anchor}, please make sure that there're no headings with the same name at the same level."
- else
- anchors << anchor
+ def extract_anchors(html)
+ # Markdown generates headers with IDs computed from titles.
+ anchors = Set.new
+ html.scan(/<h\d\s+id="([^"]+)/).flatten.each do |anchor|
+ if anchors.member?(anchor)
+ puts "*** DUPLICATE ID: #{anchor}, please make sure that there're no headings with the same name at the same level."
+ else
+ anchors << anchor
+ end
end
- end
- # Footnotes.
- anchors += Set.new(html.scan(/<p\s+class="footnote"\s+id="([^"]+)/).flatten)
- anchors += Set.new(html.scan(/<sup\s+class="footnote"\s+id="([^"]+)/).flatten)
- return anchors
- end
+ # Footnotes.
+ anchors += Set.new(html.scan(/<p\s+class="footnote"\s+id="([^"]+)/).flatten)
+ anchors += Set.new(html.scan(/<sup\s+class="footnote"\s+id="([^"]+)/).flatten)
+ return anchors
+ end
- def check_fragment_identifiers(html, anchors)
- html.scan(/<a\s+href="#([^"]+)/).flatten.each do |fragment_identifier|
- next if fragment_identifier == "mainCol" # in layout, jumps to some DIV
- unless anchors.member?(fragment_identifier)
- guess = anchors.min { |a, b|
- Levenshtein.distance(fragment_identifier, a) <=> Levenshtein.distance(fragment_identifier, b)
- }
- puts "*** BROKEN LINK: ##{fragment_identifier}, perhaps you meant ##{guess}."
+ def check_fragment_identifiers(html, anchors)
+ html.scan(/<a\s+href="#([^"]+)/).flatten.each do |fragment_identifier|
+ next if fragment_identifier == "mainCol" # in layout, jumps to some DIV
+ unless anchors.member?(fragment_identifier)
+ guess = anchors.min { |a, b|
+ Levenshtein.distance(fragment_identifier, a) <=> Levenshtein.distance(fragment_identifier, b)
+ }
+ puts "*** BROKEN LINK: ##{fragment_identifier}, perhaps you meant ##{guess}."
+ end
end
end
- end
end
end
diff --git a/guides/rails_guides/indexer.rb b/guides/rails_guides/indexer.rb
index 1550ceedac..56df6a5842 100644
--- a/guides/rails_guides/indexer.rb
+++ b/guides/rails_guides/indexer.rb
@@ -17,52 +17,52 @@ module RailsGuides
private
- def process(string, current_level=3, counters=[1])
- s = StringScanner.new(string)
+ def process(string, current_level=3, counters=[1])
+ s = StringScanner.new(string)
- level_hash = {}
+ level_hash = {}
- while !s.eos?
- re = %r{^h(\d)(?:\((#.*?)\))?\s*\.\s*(.*)$}
- s.match?(re)
- if matched = s.matched
- matched =~ re
- level, idx, title = $1.to_i, $2, $3.strip
+ while !s.eos?
+ re = %r{^h(\d)(?:\((#.*?)\))?\s*\.\s*(.*)$}
+ s.match?(re)
+ if matched = s.matched
+ matched =~ re
+ level, idx, title = $1.to_i, $2, $3.strip
- if level < current_level
- # This is needed. Go figure.
- return level_hash
- elsif level == current_level
- index = counters.join(".")
- idx ||= "#" + title_to_idx(title)
+ if level < current_level
+ # This is needed. Go figure.
+ return level_hash
+ elsif level == current_level
+ index = counters.join(".")
+ idx ||= "#" + title_to_idx(title)
- raise "Parsing Fail" unless @result.sub!(matched, "h#{level}(#{idx}). #{index} #{title}")
+ raise "Parsing Fail" unless @result.sub!(matched, "h#{level}(#{idx}). #{index} #{title}")
- key = {
- title: title,
- id: idx
- }
- # Recurse
- counters << 1
- level_hash[key] = process(s.post_match, current_level + 1, counters)
- counters.pop
+ key = {
+ title: title,
+ id: idx
+ }
+ # Recurse
+ counters << 1
+ level_hash[key] = process(s.post_match, current_level + 1, counters)
+ counters.pop
- # Increment the current level
- last = counters.pop
- counters << last + 1
+ # Increment the current level
+ last = counters.pop
+ counters << last + 1
+ end
end
+ s.getch
end
- s.getch
+ level_hash
end
- level_hash
- end
- def title_to_idx(title)
- idx = title.strip.parameterize.sub(/^\d+/, "")
- if warnings && idx.blank?
- puts "BLANK ID: please put an explicit ID for section #{title}, as in h5(#my-id)"
+ def title_to_idx(title)
+ idx = title.strip.parameterize.sub(/^\d+/, "")
+ if warnings && idx.blank?
+ puts "BLANK ID: please put an explicit ID for section #{title}, as in h5(#my-id)"
+ end
+ idx
end
- idx
- end
end
end
diff --git a/guides/rails_guides/kindle.rb b/guides/rails_guides/kindle.rb
index 3686e195e0..675df8e55b 100644
--- a/guides/rails_guides/kindle.rb
+++ b/guides/rails_guides/kindle.rb
@@ -1,6 +1,6 @@
#!/usr/bin/env ruby
-unless `which kindlerb`
+unless `which kindlerb`
abort "Please gem install kindlerb"
end
@@ -14,13 +14,13 @@ module Kindle
def generate(output_dir, mobi_outfile, logfile)
output_dir = File.absolute_path(output_dir)
- Dir.chdir output_dir do
+ Dir.chdir output_dir do
puts "=> Using output dir: #{output_dir}"
puts "=> Arranging html pages in document order"
toc = File.read("toc.ncx")
doc = Nokogiri::XML(toc).xpath("//ncx:content", "ncx" => "http://www.daisy.org/z3986/2005/ncx/")
html_pages = doc.select {|c| c[:src]}.map {|c| c[:src]}.uniq
-
+
generate_front_matter(html_pages)
generate_sections(html_pages)
@@ -37,7 +37,7 @@ module Kindle
def generate_front_matter(html_pages)
frontmatter = []
- html_pages.delete_if {|x|
+ html_pages.delete_if {|x|
if x =~ /(toc|welcome|credits|copyright).html/
frontmatter << x unless x =~ /toc/
true
@@ -51,7 +51,7 @@ module Kindle
fdoc.search("h3").each do |h3|
h3.name = "h4"
end
- fdoc.search("h2").each do |h2|
+ fdoc.search("h2").each do |h2|
h2.name = "h3"
h2["id"] = h2.inner_text.gsub(/\s/, "-")
end
@@ -72,7 +72,7 @@ module Kindle
subsection = h3.inner_text
content = h3.xpath("./following-sibling::*").take_while {|x| x.name != "h3"}.map(&:to_html)
item = Nokogiri::HTML(h3.to_html + content.join("\n"))
- item_path = "sections/%03d/%03d.html" % [section_idx, item_idx]
+ item_path = "sections/%03d/%03d.html" % [section_idx, item_idx]
add_head_section(item, subsection)
item.search("img").each do |img|
img["src"] = "#{Dir.pwd}/#{img['src']}"