From 6760d855bc53261d9016a6567552c40f0a4a7abd Mon Sep 17 00:00:00 2001 From: Thomas Reynolds Date: Tue, 29 Apr 2014 10:50:21 -0700 Subject: [PATCH] hashrocket killa --- .rubocop.yml | 1 + Rakefile | 12 +-- gem_rake_helper.rb | 8 +- middleman-cli/lib/middleman-cli.rb | 16 ++-- middleman-cli/lib/middleman-cli/build.rb | 52 +++++------ middleman-cli/lib/middleman-cli/console.rb | 20 ++--- middleman-cli/lib/middleman-cli/extension.rb | 12 ++- middleman-cli/lib/middleman-cli/init.rb | 47 +++++----- middleman-cli/lib/middleman-cli/server.rb | 87 +++++++++---------- .../middleman-cli/templates/extension/Gemfile | 2 +- .../templates/extension/Rakefile | 4 +- .../templates/extension/lib/lib.rb | 1 - middleman-core/lib/middleman-core.rb | 2 - .../lib/middleman-core/application.rb | 12 +-- .../lib/middleman-core/config_context.rb | 6 +- .../lib/middleman-core/configuration.rb | 10 +-- .../middleman-core/core_extensions/compass.rb | 1 - .../middleman-core/core_extensions/data.rb | 36 ++++---- .../core_extensions/default_helpers.rb | 9 +- .../core_extensions/extensions.rb | 11 ++- .../core_extensions/external_helpers.rb | 4 +- .../core_extensions/file_watcher.rb | 16 ++-- .../core_extensions/front_matter.rb | 10 +-- .../middleman-core/core_extensions/i18n.rb | 23 +++-- .../core_extensions/rendering.rb | 3 - .../middleman-core/core_extensions/request.rb | 15 ++-- .../middleman-core/core_extensions/routing.rb | 5 +- .../lib/middleman-core/extension.rb | 13 ++- .../lib/middleman-core/extensions.rb | 14 ++- .../middleman-core/extensions/asset_hash.rb | 10 +-- .../extensions/automatic_alt_tags.rb | 5 +- .../extensions/automatic_image_sizes.rb | 9 +- .../middleman-core/extensions/cache_buster.rb | 1 - .../lib/middleman-core/extensions/lorem.rb | 16 ++-- .../middleman-core/extensions/minify_css.rb | 16 ++-- .../extensions/minify_javascript.rb | 13 ++- .../extensions/relative_assets.rb | 1 - .../lib/middleman-core/file_renderer.rb | 10 +-- .../lib/middleman-core/load_paths.rb | 9 +- middleman-core/lib/middleman-core/logger.rb | 4 +- .../lib/middleman-core/meta_pages.rb | 16 ++-- .../meta_pages/config_setting.rb | 8 +- .../meta_pages/sitemap_resource.rb | 4 +- .../middleman-core/meta_pages/sitemap_tree.rb | 2 +- .../lib/middleman-core/preview_server.rb | 20 ++--- .../lib/middleman-core/profiling.rb | 11 +-- .../middleman-core/renderers/coffee_script.rb | 4 +- .../lib/middleman-core/renderers/erb.rb | 5 +- .../lib/middleman-core/renderers/haml.rb | 5 +- .../lib/middleman-core/renderers/kramdown.rb | 3 +- .../lib/middleman-core/renderers/less.rb | 10 +-- .../lib/middleman-core/renderers/liquid.rb | 8 +- .../lib/middleman-core/renderers/markdown.rb | 8 +- .../lib/middleman-core/renderers/redcarpet.rb | 30 +++---- .../lib/middleman-core/renderers/sass.rb | 13 +-- .../lib/middleman-core/renderers/slim.rb | 15 ++-- .../lib/middleman-core/renderers/stylus.rb | 6 +- middleman-core/lib/middleman-core/sitemap.rb | 13 +-- .../sitemap/extensions/ignores.rb | 12 +-- .../sitemap/extensions/on_disk.rb | 4 - .../sitemap/extensions/proxies.rb | 11 +-- .../sitemap/extensions/redirects.rb | 12 +-- .../sitemap/extensions/request_endpoints.rb | 16 ++-- .../sitemap/extensions/traversal.rb | 11 +-- .../lib/middleman-core/sitemap/resource.rb | 18 ++-- .../lib/middleman-core/sitemap/store.rb | 17 ++-- .../lib/middleman-core/template_context.rb | 10 +-- .../lib/middleman-core/template_renderer.rb | 18 ++-- middleman-core/lib/middleman-core/util.rb | 34 ++++---- .../lib/middleman-templates.rb | 6 +- 70 files changed, 385 insertions(+), 511 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 7078560c..955ec1b6 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -10,6 +10,7 @@ AllCops: - '**/tmp/**/*' - '**/bin/**/*' - 'middleman-core/lib/middleman-core/step_definitions/**/*' + - 'middleman-core/lib/vendored-middleman-deps/**/*' - 'middleman-templates/lib/middleman-templates/**/*' - 'middleman-core/fixtures/**/*' - 'middleman-core/features/**/*' diff --git a/Rakefile b/Rakefile index 4c71d31e..cf67d269 100644 --- a/Rakefile +++ b/Rakefile @@ -11,11 +11,11 @@ middleman_gems = %w(middleman-core middleman-templates middleman-cli middleman) GEM_PATHS = middleman_gems.freeze def sh_rake(command) - sh "#{Gem.ruby} -S rake #{command}", :verbose => true + sh "#{Gem.ruby} -S rake #{command}", verbose: true end def say(text, color=:magenta) - n = { :bold => 1, :red => 31, :green => 32, :yellow => 33, :blue => 34, :magenta => 35 }.fetch(color, 0) + n = { bold: 1, red: 31, green: 32, yellow: 33, blue: 34, magenta: 35 }.fetch(color, 0) puts "\e[%dm%s\e[0m" % [n, text] end @@ -29,7 +29,7 @@ end desc 'Clean pkg and other stuff' task :clean do GEM_PATHS.each do |g| - %w[tmp pkg coverage].each { |dir| sh 'rm -rf %s' % File.join(g, dir) } + %w(tmp pkg coverage).each { |dir| sh 'rm -rf %s' % File.join(g, dir) } end end @@ -54,7 +54,7 @@ task :bump, [:version] do |t, args| end desc 'Executes a fresh install removing all middleman version and then reinstall all gems' -task :fresh => [:uninstall, :install, :clean] +task fresh: [:uninstall, :install, :clean] desc 'Pushes repository to GitHub' task :push do @@ -65,7 +65,7 @@ task :push do end desc 'Release all middleman gems' -task :publish => :push do +task publish: :push do say 'Pushing to rubygems...' GEM_PATHS.each do |dir| Dir.chdir(dir) { sh_rake('release') } @@ -115,4 +115,4 @@ rescue LoadError end desc 'Run tests for all middleman gems' -task :default => :test +task default: :test diff --git a/gem_rake_helper.rb b/gem_rake_helper.rb index d6e78861..284cf5dc 100644 --- a/gem_rake_helper.rb +++ b/gem_rake_helper.rb @@ -20,14 +20,14 @@ Cucumber::Rake::Task.new do |t| exempt_tags << '--tags ~@nojava' if RUBY_PLATFORM == 'java' exempt_tags << '--tags ~@encoding' unless Object.const_defined?(:Encoding) exempt_tags << '--tags ~@travishatesme' if ENV['TRAVIS'] == 'true' - t.cucumber_opts = "--color #{exempt_tags.join(" ")} --strict --format #{ENV['CUCUMBER_FORMAT'] || 'Fivemat'}" + t.cucumber_opts = "--color #{exempt_tags.join(' ')} --strict --format #{ENV['CUCUMBER_FORMAT'] || 'Fivemat'}" end Cucumber::Rake::Task.new(:cucumber_wip) do |t| exempt_tags = ['--tags @wip'] exempt_tags << '--tags ~@nojava' if RUBY_PLATFORM == 'java' exempt_tags << '--tags ~@encoding' unless Object.const_defined?(:Encoding) - t.cucumber_opts = "--color #{exempt_tags.join(" ")} --strict --format #{ENV['CUCUMBER_FORMAT'] || 'Fivemat'}" + t.cucumber_opts = "--color #{exempt_tags.join(' ')} --strict --format #{ENV['CUCUMBER_FORMAT'] || 'Fivemat'}" end require 'rspec/core/rake_task' @@ -38,8 +38,8 @@ RSpec::Core::RakeTask.new do |spec| end desc 'Run tests, both RSpec and Cucumber' -task :test => [:spec, :cucumber] +task test: [:spec, :cucumber] YARD::Rake::YardocTask.new -task :default => :test +task default: :test diff --git a/middleman-cli/lib/middleman-cli.rb b/middleman-cli/lib/middleman-cli.rb index 3ddbc72b..8907de3f 100644 --- a/middleman-cli/lib/middleman-cli.rb +++ b/middleman-cli/lib/middleman-cli.rb @@ -8,9 +8,7 @@ require 'thor/group' # CLI Module module Middleman - module Cli - # The base task from which everything else extends class Base < Thor class << self @@ -36,19 +34,19 @@ module Middleman # @param [Symbol, String, nil] meth # @param [Boolean] subcommand # @return [void] - def help(meth = nil, subcommand = false) + def help(meth=nil, subcommand=false) if meth && !self.respond_to?(meth) klass, task = Thor::Util.find_class_and_task_by_namespace("#{meth}:#{meth}") - klass.start(['-h', task].compact, :shell => self.shell) + klass.start(['-h', task].compact, shell: shell) else list = [] Thor::Util.thor_classes_in(Middleman::Cli).each do |thor_class| list += thor_class.printable_tasks(false) end - list.sort!{ |a,b| a[0] <=> b[0] } + list.sort! { |a, b| a[0] <=> b[0] } shell.say 'Tasks:' - shell.print_table(list, :ident => 2, :truncate => true) + shell.print_table(list, ident: 2, truncate: true) shell.say %(\nSee 'middleman help ' for more information on specific command.) shell.say end @@ -59,7 +57,7 @@ module Middleman def method_missing(meth, *args) meth = meth.to_s - if self.class.map.has_key?(meth) + if self.class.map.key?(meth) meth = self.class.map[meth] end @@ -68,7 +66,7 @@ module Middleman if klass.nil? tasks_dir = File.join(Dir.pwd, 'tasks') - if File.exists?(tasks_dir) + if File.exist?(tasks_dir) Dir[File.join(tasks_dir, '**/*_task.rb')].each { |f| require f } klass, task = Thor::Util.find_class_and_task_by_namespace("#{meth}:#{meth}") end @@ -78,7 +76,7 @@ module Middleman raise Thor::Error.new "There's no '#{meth}' command for Middleman. Try 'middleman help' for a list of commands." else args.unshift(task) if task - klass.start(args, :shell => self.shell) + klass.start(args, shell: shell) end end end diff --git a/middleman-cli/lib/middleman-cli/build.rb b/middleman-cli/lib/middleman-cli/build.rb index 0e5d902f..579cac72 100644 --- a/middleman-cli/lib/middleman-cli/build.rb +++ b/middleman-cli/lib/middleman-cli/build.rb @@ -4,7 +4,7 @@ require 'set' # CLI Module module Middleman::Cli # Alias "b" to "build" - Base.map({ 'b' => 'build' }) + Base.map('b' => 'build') # The CLI Build class class Build < Thor @@ -19,31 +19,31 @@ module Middleman::Cli desc 'build [options]', 'Builds the static site for deployment' method_option :clean, - :type => :boolean, - :default => true, - :desc => 'Remove orphaned files from build (--no-clean to disable)' + type: :boolean, + default: true, + desc: 'Remove orphaned files from build (--no-clean to disable)' method_option :glob, - :type => :string, - :aliases => '-g', - :default => nil, - :desc => 'Build a subset of the project' + type: :string, + aliases: '-g', + default: nil, + desc: 'Build a subset of the project' method_option :verbose, - :type => :boolean, - :default => false, - :desc => 'Print debug messages' + type: :boolean, + default: false, + desc: 'Print debug messages' method_option :instrument, - :type => :string, - :default => false, - :desc => 'Print instrument messages' + type: :string, + default: false, + desc: 'Print instrument messages' method_option :profile, - :type => :boolean, - :default => false, - :desc => 'Generate profiling report for the build' + type: :boolean, + default: false, + desc: 'Generate profiling report for the build' # Core build Thor command # @return [void] def build - if !ENV['MM_ROOT'] + unless ENV['MM_ROOT'] raise Thor::Error, 'Error: Could not find a Middleman project config, perhaps you are in the wrong folder?' end @@ -61,7 +61,7 @@ module Middleman::Cli self.class.shared_instance(options['verbose'], options['instrument']) opts = {} - opts[:glob] = options['glob'] if options.has_key?('glob') + opts[:glob] = options['glob'] if options.key?('glob') opts[:clean] = options['clean'] self.class.shared_instance.run_hook :before_build, self @@ -71,15 +71,15 @@ module Middleman::Cli self.class.shared_instance.run_hook :after_build, self self.class.shared_instance.config_context.execute_after_build_callbacks(self) - if self.had_errors && !self.debugging + if had_errors && !debugging msg = 'There were errors during this build' unless options['verbose'] msg << ', re-run with `middleman build --verbose` to see the full exception.' end - self.shell.say msg, :red + shell.say msg, :red end - exit(1) if self.had_errors + exit(1) if had_errors end # Static methods @@ -129,17 +129,17 @@ module Middleman::Cli clean! if should_clean? end - protected + protected # Remove files which were not built in this cycle # @return [void] def clean! @to_clean.each do |f| - base.remove_file f, :force => true + base.remove_file f, force: true end - Dir[@build_dir.join('**', '*')].select {|d| File.directory?(d) }.each do |d| - base.remove_file d, :force => true if directory_empty? d + Dir[@build_dir.join('**', '*')].select { |d| File.directory?(d) }.each do |d| + base.remove_file d, force: true if directory_empty? d end end diff --git a/middleman-cli/lib/middleman-cli/console.rb b/middleman-cli/lib/middleman-cli/console.rb index a165b835..0326be38 100644 --- a/middleman-cli/lib/middleman-cli/console.rb +++ b/middleman-cli/lib/middleman-cli/console.rb @@ -1,7 +1,7 @@ # CLI Module module Middleman::Cli # Alias "c" to "console" - Base.map({ 'c' => 'console' }) + Base.map('c' => 'console') # The CLI Console class class Console < Thor @@ -13,23 +13,23 @@ module Middleman::Cli desc 'console [options]', 'Start an interactive console in the context of your Middleman application' method_option :environment, - :aliases => '-e', - :default => ENV['MM_ENV'] || ENV['RACK_ENV'] || 'development', - :desc => 'The environment Middleman will run under' + aliases: '-e', + default: ENV['MM_ENV'] || ENV['RACK_ENV'] || 'development', + desc: 'The environment Middleman will run under' method_option :verbose, - :type => :boolean, - :default => false, - :desc => 'Print debug messages' + type: :boolean, + default: false, + desc: 'Print debug messages' def console require 'middleman-core' require 'irb' opts = { - :environment => options['environment'], - :debug => options['verbose'] + environment: options['environment'], + debug: options['verbose'] } - @app =::Middleman::Application.server.inst do + @app = ::Middleman::Application.server.inst do if opts[:environment] config[:environment] = opts[:environment].to_sym end diff --git a/middleman-cli/lib/middleman-cli/extension.rb b/middleman-cli/lib/middleman-cli/extension.rb index 5d9b9de9..ff0eda28 100644 --- a/middleman-cli/lib/middleman-cli/extension.rb +++ b/middleman-cli/lib/middleman-cli/extension.rb @@ -1,6 +1,5 @@ # CLI Module module Middleman::Cli - # A thor task for creating new projects class Extension < Thor include Thor::Actions @@ -10,7 +9,7 @@ module Middleman::Cli namespace :extension # Required path for the new project to be generated - argument :name, :type => :string + argument :name, type: :string # Template files are relative to this file # @return [String] @@ -20,9 +19,9 @@ module Middleman::Cli desc 'extension [options]', 'Create Middleman extension scaffold NAME' method_option 'skip-git', - :type => :boolean, - :default => false, - :desc => 'Skip Git ignores and keeps' + type: :boolean, + default: false, + desc: 'Skip Git ignores and keeps' # The extension task # @param [String] name @@ -38,7 +37,6 @@ module Middleman::Cli end # Output a .gitignore file - class_option :git, :type => :boolean, :default => true - + class_option :git, type: :boolean, default: true end end diff --git a/middleman-cli/lib/middleman-cli/init.rb b/middleman-cli/lib/middleman-cli/init.rb index 4376db2a..c22a89c0 100644 --- a/middleman-cli/lib/middleman-cli/init.rb +++ b/middleman-cli/lib/middleman-cli/init.rb @@ -2,7 +2,6 @@ require 'middleman-templates' # CLI Module module Middleman::Cli - # A thor task for creating new projects class Init < Thor check_unknown_options! @@ -12,36 +11,36 @@ module Middleman::Cli desc 'init NAME [options]', 'Create new project NAME' available_templates = ::Middleman::Templates.registered.keys.join(', ') method_option 'template', - :aliases => '-T', - :default => 'default', - :desc => "Use a project template: #{available_templates}" + aliases: '-T', + default: 'default', + desc: "Use a project template: #{available_templates}" method_option 'css_dir', # :default => "stylesheets", - :desc => 'The path to the css files' + desc: 'The path to the css files' method_option 'js_dir', # :default => "javascripts", - :desc => 'The path to the javascript files' + desc: 'The path to the javascript files' method_option 'images_dir', # :default => "images", - :desc => 'The path to the image files' + desc: 'The path to the image files' method_option 'rack', - :type => :boolean, - :default => false, - :desc => 'Include a config.ru file' + type: :boolean, + default: false, + desc: 'Include a config.ru file' method_option 'skip-bundle', - :type => :boolean, - :aliases => '-B', - :default => false, - :desc => "Don't run bundle install" + type: :boolean, + aliases: '-B', + default: false, + desc: "Don't run bundle install" method_option 'skip-git', - :type => :boolean, - :default => false, - :desc => 'Skip Git ignores and keeps' + type: :boolean, + default: false, + desc: 'Skip Git ignores and keeps' # The init task # @param [String] name - def init(name = '.') + def init(name='.') key = options[:template].to_sym - unless ::Middleman::Templates.registered.has_key?(key) + unless ::Middleman::Templates.registered.key?(key) raise Thor::Error.new "Unknown project template '#{key}'" end @@ -55,9 +54,9 @@ module Middleman::Cli end # Map "i", "new" and "n" to "init" - Base.map({ - 'i' => 'init', - 'new' => 'init', - 'n' => 'init' - }) + Base.map( + 'i' => 'init', + 'new' => 'init', + 'n' => 'init' + ) end diff --git a/middleman-cli/lib/middleman-cli/server.rb b/middleman-cli/lib/middleman-cli/server.rb index 18da26b1..71d0e779 100644 --- a/middleman-cli/lib/middleman-cli/server.rb +++ b/middleman-cli/lib/middleman-cli/server.rb @@ -1,6 +1,5 @@ # CLI Module module Middleman::Cli - # Server thor task class Server < Thor check_unknown_options! @@ -9,68 +8,68 @@ module Middleman::Cli desc 'server [options]', 'Start the preview server' method_option :environment, - :aliases => '-e', - :default => ENV['MM_ENV'] || ENV['RACK_ENV'] || 'development', - :desc => 'The environment Middleman will run under' + aliases: '-e', + default: ENV['MM_ENV'] || ENV['RACK_ENV'] || 'development', + desc: 'The environment Middleman will run under' method_option :host, - :type => :string, - :aliases => '-h', - :default => '0.0.0.0', - :desc => 'Bind to HOST address' + type: :string, + aliases: '-h', + default: '0.0.0.0', + desc: 'Bind to HOST address' method_option :port, - :aliases => '-p', - :default => '4567', - :desc => 'The port Middleman will listen on' + aliases: '-p', + default: '4567', + desc: 'The port Middleman will listen on' method_option :verbose, - :type => :boolean, - :default => false, - :desc => 'Print debug messages' + type: :boolean, + default: false, + desc: 'Print debug messages' method_option :instrument, - :type => :string, - :default => false, - :desc => 'Print instrument messages' + type: :string, + default: false, + desc: 'Print instrument messages' method_option :disable_watcher, - :type => :boolean, - :default => false, - :desc => 'Disable the file change and delete watcher process' + type: :boolean, + default: false, + desc: 'Disable the file change and delete watcher process' method_option :profile, - :type => :boolean, - :default => false, - :desc => 'Generate profiling report for server startup' + type: :boolean, + default: false, + desc: 'Generate profiling report for server startup' method_option :reload_paths, - :type => :string, - :default => false, - :desc => 'Additional paths to auto-reload when files change' + type: :string, + default: false, + desc: 'Additional paths to auto-reload when files change' method_option :force_polling, - :type => :boolean, - :default => false, - :desc => 'Force file watcher into polling mode' + type: :boolean, + default: false, + desc: 'Force file watcher into polling mode' method_option :latency, - :type => :numeric, - :aliases => '-l', - :default => 0.25, - :desc => 'Set file watcher latency, in seconds' + type: :numeric, + aliases: '-l', + default: 0.25, + desc: 'Set file watcher latency, in seconds' # Start the server def server require 'middleman-core' require 'middleman-core/preview_server' - if !ENV['MM_ROOT'] + unless ENV['MM_ROOT'] puts '== Could not find a Middleman project config.rb' exit end params = { - :port => options['port'], - :host => options['host'], - :environment => options['environment'], - :debug => options['verbose'], - :instrumenting => options['instrument'], - :disable_watcher => options['disable_watcher'], - :reload_paths => options['reload_paths'], - :force_polling => options['force_polling'], - :latency => options['latency'] + port: options['port'], + host: options['host'], + environment: options['environment'], + debug: options['verbose'], + instrumenting: options['instrument'], + disable_watcher: options['disable_watcher'], + reload_paths: options['reload_paths'], + force_polling: options['force_polling'], + latency: options['latency'] } puts '== The Middleman is loading' @@ -83,5 +82,5 @@ module Middleman::Cli end # Map "s" to "server" - Base.map({ 's' => 'server' }) + Base.map('s' => 'server') end diff --git a/middleman-cli/lib/middleman-cli/templates/extension/Gemfile b/middleman-cli/lib/middleman-cli/templates/extension/Gemfile index 6959cfc1..1acd5814 100644 --- a/middleman-cli/lib/middleman-cli/templates/extension/Gemfile +++ b/middleman-cli/lib/middleman-cli/templates/extension/Gemfile @@ -16,4 +16,4 @@ group :test do gem 'fivemat' gem 'aruba' gem 'rspec' -end \ No newline at end of file +end diff --git a/middleman-cli/lib/middleman-cli/templates/extension/Rakefile b/middleman-cli/lib/middleman-cli/templates/extension/Rakefile index 0f786f84..7910cf22 100644 --- a/middleman-cli/lib/middleman-cli/templates/extension/Rakefile +++ b/middleman-cli/lib/middleman-cli/templates/extension/Rakefile @@ -9,6 +9,6 @@ end require 'rake/clean' -task :test => ['cucumber'] +task test: ['cucumber'] -task :default => :test \ No newline at end of file +task default: :test diff --git a/middleman-cli/lib/middleman-cli/templates/extension/lib/lib.rb b/middleman-cli/lib/middleman-cli/templates/extension/lib/lib.rb index 386d3d2a..8b98bf78 100644 --- a/middleman-cli/lib/middleman-cli/templates/extension/lib/lib.rb +++ b/middleman-cli/lib/middleman-cli/templates/extension/lib/lib.rb @@ -28,7 +28,6 @@ class MyExtension < ::Middleman::Extension # def a_helper # end # end - end # Register extensions which can be activated diff --git a/middleman-core/lib/middleman-core.rb b/middleman-core/lib/middleman-core.rb index be446a51..5d3dc485 100644 --- a/middleman-core/lib/middleman-core.rb +++ b/middleman-core/lib/middleman-core.rb @@ -4,10 +4,8 @@ $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir) # Top-level Middleman namespace module Middleman - # Backwards compatibility namespace module Features; end - end require 'middleman-core/version' diff --git a/middleman-core/lib/middleman-core/application.rb b/middleman-core/lib/middleman-core/application.rb index 91eab8c7..85b4a559 100644 --- a/middleman-core/lib/middleman-core/application.rb +++ b/middleman-core/lib/middleman-core/application.rb @@ -52,13 +52,13 @@ module Middleman def self.root ENV['MM_ROOT'] || Dir.pwd end - delegate :root, :to => :"self.class" + delegate :root, to: :"self.class" # Pathname-addressed root def self.root_path Pathname(root) end - delegate :root_path, :to => :"self.class" + delegate :root_path, to: :"self.class" # Name of the source directory # @return [String] @@ -165,7 +165,7 @@ module Middleman attr_reader :template_context_class attr_reader :generic_template_context - delegate :link_to, :image_tag, :asset_path, :to => :generic_template_context + delegate :link_to, :image_tag, :asset_path, to: :generic_template_context # Initialize the Middleman project def initialize(&block) @@ -210,7 +210,7 @@ module Middleman end def add_to_instance(name, &func) - self.define_singleton_method(name, &func) + define_singleton_method(name, &func) end def add_to_config_context(name, &func) @@ -236,7 +236,7 @@ module Middleman File.join(root, config[:source]) end - delegate :instrument, :to => ::Middleman::Util + delegate :instrument, to: ::Middleman::Util # Work around this bug: http://bugs.ruby-lang.org/issues/4521 # where Ruby will call to_s/inspect while printing exception @@ -245,7 +245,7 @@ module Middleman def to_s "#" end - alias :inspect :to_s # Ruby 2.0 calls inspect for NoMethodError instead of to_s + alias_method :inspect, :to_s # Ruby 2.0 calls inspect for NoMethodError instead of to_s # Hooks clones _hooks from the class to the instance. # https://github.com/apotonick/hooks/blob/master/lib/hooks/instance_hooks.rb#L10 diff --git a/middleman-core/lib/middleman-core/config_context.rb b/middleman-core/lib/middleman-core/config_context.rb index 944ff2fb..248184f9 100644 --- a/middleman-core/lib/middleman-core/config_context.rb +++ b/middleman-core/lib/middleman-core/config_context.rb @@ -6,7 +6,7 @@ module Middleman attr_reader :app # Whitelist methods that can reach out. - delegate :config, :logger, :activate, :use, :map, :mime_type, :data, :root, :to => :app + delegate :config, :logger, :activate, :use, :map, :mime_type, :data, :root, to: :app def initialize(app, template_context_class) @app = app @@ -51,7 +51,7 @@ module Middleman instance_exec(*args, &b) end end - + def after_configuration(&block) @after_configuration_callbacks << block end @@ -79,4 +79,4 @@ module Middleman @app.config[key] = block_given? ? block : default end end -end \ No newline at end of file +end diff --git a/middleman-core/lib/middleman-core/configuration.rb b/middleman-core/lib/middleman-core/configuration.rb index ea6d9037..376cb2f8 100644 --- a/middleman-core/lib/middleman-core/configuration.rb +++ b/middleman-core/lib/middleman-core/configuration.rb @@ -5,7 +5,7 @@ module Middleman module Global def self.included(app) app.send :extend, ClassMethods - app.send :delegate, :config, :to => :"self.class" + app.send :delegate, :config, to: :"self.class" end module ClassMethods @@ -67,7 +67,7 @@ module Middleman end # Needed so that method_missing makes sense - def respond_to?(method, include_private = false) + def respond_to?(method, include_private=false) super || defines_setting?(method) || (method =~ /^(\w+)=$/ && defines_setting?($1)) end @@ -75,7 +75,7 @@ module Middleman # @param [Symbol] key # @return [Boolean] def defines_setting?(key) - @settings.has_key?(key) + @settings.key?(key) end # Define a new setting, with optional default and user-friendly description. @@ -87,7 +87,7 @@ module Middleman # @return [ConfigSetting] def define_setting(key, default=nil, description=nil) raise "Setting #{key} doesn't exist" if @finalized - raise "Setting #{key} already defined" if @settings.has_key?(key) + raise "Setting #{key} already defined" if @settings.key?(key) raise 'Setting key must be a Symbol' unless key.is_a? Symbol @settings[key] = ConfigSetting.new(key, default, description) @@ -102,7 +102,7 @@ module Middleman # Deep duplicate of the configuration manager def dup - ConfigurationManager.new.tap {|c| c.load_settings(self.all_settings) } + ConfigurationManager.new.tap { |c| c.load_settings(all_settings) } end # Load in a list of settings diff --git a/middleman-core/lib/middleman-core/core_extensions/compass.rb b/middleman-core/lib/middleman-core/core_extensions/compass.rb index 75b04ab3..1d3c13c0 100644 --- a/middleman-core/lib/middleman-core/core_extensions/compass.rb +++ b/middleman-core/lib/middleman-core/core_extensions/compass.rb @@ -2,7 +2,6 @@ require 'middleman-core/renderers/sass' require 'compass' class Middleman::CoreExtensions::Compass < ::Middleman::Extension - def initialize(app, options_hash={}, &block) super diff --git a/middleman-core/lib/middleman-core/core_extensions/data.rb b/middleman-core/lib/middleman-core/core_extensions/data.rb index 21961f5c..9577c2cb 100644 --- a/middleman-core/lib/middleman-core/core_extensions/data.rb +++ b/middleman-core/lib/middleman-core/core_extensions/data.rb @@ -1,10 +1,8 @@ module Middleman module CoreExtensions - # The data extension parses YAML and JSON files in the data/ directory # and makes them available to config.rb, templates and extensions module Data - # Extension registered class << self # @private @@ -23,12 +21,12 @@ module Middleman # Setup data files before anything else so they are available when # parsing config.rb def initialize - self.files.changed DataStore.matcher do |file| - self.data.touch_file(file) if file.start_with?("#{config[:data_dir]}/") + files.changed DataStore.matcher do |file| + data.touch_file(file) if file.start_with?("#{config[:data_dir]}/") end - self.files.deleted DataStore.matcher do |file| - self.data.remove_file(file) if file.start_with?("#{config[:data_dir]}/") + files.deleted DataStore.matcher do |file| + data.remove_file(file) if file.start_with?("#{config[:data_dir]}/") end super @@ -44,10 +42,8 @@ module Middleman # The core logic behind the data extension. class DataStore - # Static methods class << self - # The regex which tells Middleman which files are for data # # @return [Regexp] @@ -136,7 +132,7 @@ module Middleman data_branch = data_branch[dir] end - data_branch.delete(basename) if data_branch.has_key?(basename) + data_branch.delete(basename) if data_branch.key?(basename) end # Get a hash from either internal static data or a callback @@ -149,10 +145,10 @@ module Middleman @@local_sources ||= {} @@callback_sources ||= {} - if self.store.has_key?(path.to_s) - response = self.store[path.to_s] - elsif self.callbacks.has_key?(path.to_s) - response = self.callbacks[path.to_s].call() + if store.key?(path.to_s) + response = store[path.to_s] + elsif callbacks.key?(path.to_s) + response = callbacks[path.to_s].call end response @@ -163,7 +159,7 @@ module Middleman # @param [String] path The namespace to search for # @return [Hash, nil] def method_missing(path) - if @local_data.has_key?(path.to_s) + if @local_data.key?(path.to_s) return @local_data[path.to_s] else result = data_for_path(path) @@ -177,8 +173,8 @@ module Middleman end # Needed so that method_missing makes sense - def respond_to?(method, include_private = false) - super || has_key?(method) + def respond_to?(method, include_private=false) + super || key?(method) end # Make DataStore act like a hash. Return requested data, or @@ -187,11 +183,11 @@ module Middleman # @param [String, Symbol] key The name of the data namespace # @return [Hash, nil] def [](key) - __send__(key) if has_key?(key) + __send__(key) if key?(key) end def has_key?(key) - @local_data.has_key?(key.to_s) || !!(data_for_path(key)) + @local_data.key?(key.to_s) || !!(data_for_path(key)) end # Convert all the data into a static hash @@ -200,11 +196,11 @@ module Middleman def to_h data = {} - self.store.each do |k, v| + store.each do |k, v| data[k] = data_for_path(k) end - self.callbacks.each do |k, v| + callbacks.each do |k, v| data[k] = data_for_path(k) end diff --git a/middleman-core/lib/middleman-core/core_extensions/default_helpers.rb b/middleman-core/lib/middleman-core/core_extensions/default_helpers.rb index 7b297936..66fac767 100644 --- a/middleman-core/lib/middleman-core/core_extensions/default_helpers.rb +++ b/middleman-core/lib/middleman-core/core_extensions/default_helpers.rb @@ -7,7 +7,7 @@ require 'padrino-helpers' class Padrino::Helpers::OutputHelpers::ErbHandler # Force Erb capture not to use safebuffer def capture_from_template(*args, &block) - self.output_buffer, _buf_was = '', self.output_buffer + self.output_buffer, _buf_was = '', output_buffer raw = block.call(*args) captured = template.instance_variable_get(:@_out_buf) self.output_buffer = _buf_was @@ -16,7 +16,6 @@ class Padrino::Helpers::OutputHelpers::ErbHandler end class Middleman::CoreExtensions::DefaultHelpers < ::Middleman::Extension - def initialize(app, options_hash={}, &block) super @@ -39,7 +38,7 @@ class Middleman::CoreExtensions::DefaultHelpers < ::Middleman::Extension helpers do # Make all block content html_safe - def content_tag(name, content = nil, options = nil, &block) + def content_tag(name, content=nil, options=nil, &block) # safe_content_tag(name, content, options, &block) if block_given? options = content if content.is_a?(Hash) @@ -133,7 +132,7 @@ class Middleman::CoreExtensions::DefaultHelpers < ::Middleman::Extension # Generate body css classes based on the current path # # @return [String] - def page_classes(path = current_path.dup, options={}) + def page_classes(path=current_path.dup, options={}) if path.is_a? Hash options = path path = current_path.dup @@ -144,7 +143,7 @@ class Middleman::CoreExtensions::DefaultHelpers < ::Middleman::Extension classes = [] parts = path.split('.').first.split('/') - parts.each_with_index { |_, i| classes << parts.first(i+1).join('_') } + parts.each_with_index { |_, i| classes << parts.first(i + 1).join('_') } prefix = options[:numeric_prefix] || 'x' classes.map do |c| diff --git a/middleman-core/lib/middleman-core/core_extensions/extensions.rb b/middleman-core/lib/middleman-core/core_extensions/extensions.rb index cdb0ed87..0f6b0f88 100644 --- a/middleman-core/lib/middleman-core/core_extensions/extensions.rb +++ b/middleman-core/lib/middleman-core/core_extensions/extensions.rb @@ -32,7 +32,6 @@ module Middleman module CoreExtensions module Extensions - # Register extension class << self # @private @@ -49,7 +48,7 @@ module Middleman app.extend ClassMethods app.send :include, InstanceMethods - app.delegate :configure, :to => :"self.class" + app.delegate :configure, to: :"self.class" end end @@ -123,7 +122,7 @@ module Middleman # Check for and evaluate local configuration local_config = File.join(root, 'config.rb') - if File.exists? local_config + if File.exist? local_config logger.debug '== Reading: Local config' config_context.instance_eval File.read(local_config), local_config, 1 end @@ -145,7 +144,7 @@ module Middleman # polluted with paths from other test app directories that don't # exist anymore. if ENV['TEST'] - ::I18n.load_path.delete_if {|path| path =~ %r{tmp/aruba}} + ::I18n.load_path.delete_if { |path| path =~ %r{tmp/aruba} } ::I18n.reload! end @@ -153,9 +152,9 @@ module Middleman config_context.execute_after_configuration_callbacks logger.debug 'Loaded extensions:' - self.extensions.each do |ext, klass| + extensions.each do |ext, klass| if ext.is_a?(Hash) - ext.each do |k,_| + ext.each do |k, _| logger.debug "== Extension: #{k}" end else diff --git a/middleman-core/lib/middleman-core/core_extensions/external_helpers.rb b/middleman-core/lib/middleman-core/core_extensions/external_helpers.rb index 8cc5022e..e4b41772 100644 --- a/middleman-core/lib/middleman-core/core_extensions/external_helpers.rb +++ b/middleman-core/lib/middleman-core/core_extensions/external_helpers.rb @@ -7,7 +7,7 @@ module Middleman # Setup a default helpers paths app.config.define_setting :helpers_dir, 'helpers', 'Directory to autoload helper modules from' app.config.define_setting :helpers_filename_glob, '**.rb', 'Glob pattern for matching helper ruby files' - app.config.define_setting :helpers_filename_to_module_name_proc, Proc.new { |filename| + app.config.define_setting :helpers_filename_to_module_name_proc, proc { |filename| basename = File.basename(filename, File.extname(filename)) basename.camelcase }, 'Proc implementing the conversion from helper filename to module name' @@ -15,7 +15,7 @@ module Middleman # After config app.after_configuration do helpers_path = File.join(root, config[:helpers_dir]) - next unless File.exists?(helpers_path) + next unless File.exist?(helpers_path) Dir[File.join(helpers_path, config[:helpers_filename_glob])].each do |filename| module_name = config[:helpers_filename_to_module_name_proc].call(filename) diff --git a/middleman-core/lib/middleman-core/core_extensions/file_watcher.rb b/middleman-core/lib/middleman-core/core_extensions/file_watcher.rb index c5575a9c..03b25241 100644 --- a/middleman-core/lib/middleman-core/core_extensions/file_watcher.rb +++ b/middleman-core/lib/middleman-core/core_extensions/file_watcher.rb @@ -2,7 +2,6 @@ module Middleman module CoreExtensions module FileWatcher - IGNORE_LIST = [ /^bin(\/|$)/, /^\.bundle(\/|$)/, @@ -23,7 +22,6 @@ module Middleman # Setup extension class << self - # Once registered def included(app) require 'pathname' @@ -51,7 +49,6 @@ module Middleman # Instance methods module InstanceMethods - # Access the file api # @return [Middleman::CoreExtensions::FileWatcher::API] def files @@ -61,10 +58,9 @@ module Middleman # Core File Change API class class API - attr_reader :app attr_reader :known_paths - delegate :logger, :to => :app + delegate :logger, to: :app # Initialize api and internal path cache def initialize(app) @@ -101,7 +97,7 @@ module Middleman path = Pathname(path) logger.debug "== File Change: #{path}" @known_paths << path - self.run_callbacks(path, :changed) + run_callbacks(path, :changed) end # Notify callbacks that a file was deleted @@ -112,7 +108,7 @@ module Middleman path = Pathname(path) logger.debug "== File Deletion: #{path}" @known_paths.delete(path) - self.run_callbacks(path, :deleted) + run_callbacks(path, :deleted) end # Manually trigger update events @@ -150,7 +146,7 @@ module Middleman def exists?(path) p = Pathname(path) - p = p.relative_path_from(Pathname(@app.root)) if !p.relative? + p = p.relative_path_from(Pathname(@app.root)) unless p.relative? @known_paths.include?(p) end @@ -162,7 +158,7 @@ module Middleman app.config[:file_watcher_ignore].any? { |r| path =~ r } end - protected + protected # Notify callbacks for a file given an array of callbacks # @@ -171,7 +167,7 @@ module Middleman # @return [void] def run_callbacks(path, callbacks_name) path = path.to_s - self.send(callbacks_name).each do |callback, matcher| + send(callbacks_name).each do |callback, matcher| next unless matcher.nil? || path.match(matcher) @app.instance_exec(path, &callback) end diff --git a/middleman-core/lib/middleman-core/core_extensions/front_matter.rb b/middleman-core/lib/middleman-core/core_extensions/front_matter.rb index 41ec27ac..1105f2a0 100644 --- a/middleman-core/lib/middleman-core/core_extensions/front_matter.rb +++ b/middleman-core/lib/middleman-core/core_extensions/front_matter.rb @@ -9,10 +9,8 @@ require 'active_support/json' # Extensions namespace module Middleman::CoreExtensions - class FrontMatter < ::Middleman::Extension - - YAML_ERRORS = [ StandardError ] + YAML_ERRORS = [StandardError] # https://github.com/tenderlove/psych/issues/23 if defined?(Psych) && defined?(Psych::SyntaxError) @@ -52,7 +50,7 @@ module Middleman::CoreExtensions end end - { :options => data } + { options: data } end end @@ -120,7 +118,7 @@ module Middleman::CoreExtensions @cache.delete(path) end - private + private # Parse YAML frontmatter out of a string # @param [String] content # @return [Array] @@ -152,7 +150,7 @@ module Middleman::CoreExtensions content = content.sub(json_regex, '') begin - json = ($1+$2).sub(';;;', '{').sub(';;;', '}') + json = ($1 + $2).sub(';;;', '{').sub(';;;', '}') data = ActiveSupport::JSON.decode(json).symbolize_keys rescue => e app.logger.error "JSON Exception parsing #{full_path}: #{e.message}" diff --git a/middleman-core/lib/middleman-core/core_extensions/i18n.rb b/middleman-core/lib/middleman-core/core_extensions/i18n.rb index f500d953..423ce074 100644 --- a/middleman-core/lib/middleman-core/core_extensions/i18n.rb +++ b/middleman-core/lib/middleman-core/core_extensions/i18n.rb @@ -37,8 +37,8 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension configure_i18n - if !app.build? - logger.info "== Locales: #{langs.join(", ")} (Default #{@mount_at_root})" + unless app.build? + logger.info "== Locales: #{langs.join(', ')} (Default #{@mount_at_root})" end # Don't output localizable files @@ -55,7 +55,7 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension end end - delegate :logger, :to => :app + delegate :logger, to: :app def langs @_langs ||= get_known_languages @@ -70,7 +70,7 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension resources.each do |resource| # If it uses file extension localization - if !parse_locale_extension(resource.path).nil? + if parse_locale_extension(resource.path) result = parse_locale_extension(resource.path) lang, path, page_id = result new_resources << build_resource(path, resource.path, page_id, lang) @@ -90,7 +90,6 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension private - def on_file_changed(file) if @locales_regex =~ file @_langs = nil # Clear langs cache @@ -125,11 +124,11 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension end { - :locals => { - :lang => lang, - :page_id => page_id + locals: { + lang: lang, + page_id: page_id }, - :options => { :lang => lang } + options: { lang: lang } } end @@ -168,9 +167,9 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension def build_resource(path, source_path, page_id, lang) old_locale = ::I18n.locale ::I18n.locale = lang - localized_page_id = ::I18n.t("paths.#{page_id}", :default => page_id, :fallback => []) + localized_page_id = ::I18n.t("paths.#{page_id}", default: page_id, fallback: []) - prefix = if (options[:mount_at_root] == lang) || (options[:mount_at_root] == nil && langs[0] == lang) + prefix = if (options[:mount_at_root] == lang) || (options[:mount_at_root].nil? && langs[0] == lang) '/' else replacement = options[:lang_map].fetch(lang, lang) @@ -182,7 +181,7 @@ class Middleman::CoreExtensions::Internationalization < ::Middleman::Extension File.join(prefix, path.sub(page_id, localized_page_id)) ) - path.gsub!(options[:templates_dir]+'/', '') + path.gsub!(options[:templates_dir] + '/', '') @_localization_data[path] = [lang, path, localized_page_id] diff --git a/middleman-core/lib/middleman-core/core_extensions/rendering.rb b/middleman-core/lib/middleman-core/core_extensions/rendering.rb index c61f2f2d..08ed81a6 100644 --- a/middleman-core/lib/middleman-core/core_extensions/rendering.rb +++ b/middleman-core/lib/middleman-core/core_extensions/rendering.rb @@ -2,13 +2,10 @@ require 'middleman-core/template_context' # Rendering extension module Middleman - module CoreExtensions module Rendering - # Setup extension class << self - # Once registered def included(app) app.define_hook :before_render diff --git a/middleman-core/lib/middleman-core/core_extensions/request.rb b/middleman-core/lib/middleman-core/core_extensions/request.rb index 8a001b91..0263d4a2 100644 --- a/middleman-core/lib/middleman-core/core_extensions/request.rb +++ b/middleman-core/lib/middleman-core/core_extensions/request.rb @@ -9,10 +9,8 @@ require 'middleman-core/template_renderer' module Middleman module CoreExtensions - # Base helper to manipulate asset paths module Request - # Extension registered class << self # @private @@ -60,9 +58,7 @@ module Middleman # @private # @param [Middleman::Application] inst # @return [void] - def inst=(inst) - @inst = inst - end + attr_writer :inst # Return built Rack app # @@ -152,9 +148,8 @@ module Middleman # Methods to be mixed-in to Middleman::Application module InstanceMethods - - delegate :use, :to => :"self.class" - delegate :map, :to => :"self.class" + delegate :use, to: :"self.class" + delegate :map, to: :"self.class" def call(env) dup.call!(env) @@ -168,7 +163,7 @@ module Middleman req = ::Rack::Request.new(env) res = ::Rack::Response.new - logger.debug "== Request: #{env["PATH_INFO"]}" + logger.debug "== Request: #{env['PATH_INFO']}" # Catch :halt exceptions and use that response if given catch(:halt) do @@ -239,7 +234,7 @@ module Middleman # @param [String] value Mime type # @return [void] def mime_type(type, value) - type = ".#{type}" unless type.to_s[0] == ?. + type = ".#{type}" unless type.to_s[0] == '.' ::Rack::Mime::MIME_TYPES[type] = value end diff --git a/middleman-core/lib/middleman-core/core_extensions/routing.rb b/middleman-core/lib/middleman-core/core_extensions/routing.rb index 8b9a58d6..633ecc57 100644 --- a/middleman-core/lib/middleman-core/core_extensions/routing.rb +++ b/middleman-core/lib/middleman-core/core_extensions/routing.rb @@ -2,7 +2,6 @@ module Middleman module CoreExtensions module Routing - # Sandboxed layout to implement temporary overriding of layout. class LayoutBlock attr_reader :scope @@ -17,7 +16,7 @@ module Middleman @scope.page(url, opts) end - delegate :proxy, :to => :scope + delegate :proxy, to: :scope end # Takes a block which allows many pages to have the same layout @@ -46,7 +45,7 @@ module Middleman # Default layout options[:layout] = @app.config[:layout] if options[:layout].nil? - metadata = { :options => options, :locals => options.delete(:locals) || {} } + metadata = { options: options, locals: options.delete(:locals) || {} } # If the url is a regexp unless url.is_a?(Regexp) || url.include?('*') diff --git a/middleman-core/lib/middleman-core/extension.rb b/middleman-core/lib/middleman-core/extension.rb index 6219f258..4a3c3702 100644 --- a/middleman-core/lib/middleman-core/extension.rb +++ b/middleman-core/lib/middleman-core/extension.rb @@ -2,11 +2,10 @@ require 'active_support/core_ext/module/delegation' require 'active_support/core_ext/class/attribute' module Middleman - class Extension - class_attribute :supports_multiple_instances, :instance_reader => false, :instance_writer => false - class_attribute :defined_helpers, :instance_reader => false, :instance_writer => false - class_attribute :ext_name, :instance_reader => false, :instance_writer => false + class_attribute :supports_multiple_instances, instance_reader: false, instance_writer: false + class_attribute :defined_helpers, instance_reader: false, instance_writer: false + class_attribute :ext_name, instance_reader: false, instance_writer: false class << self def config @@ -51,7 +50,7 @@ module Middleman name = instance.class.ext_name return unless @_extension_activation_callbacks && @_extension_activation_callbacks[name] @_extension_activation_callbacks[name].each do |block| - block.arity == 1 ? block.call(instance) : block.call() + block.arity == 1 ? block.call(instance) : block.call end end end @@ -59,7 +58,7 @@ module Middleman attr_accessor :options attr_reader :app - delegate :after_extension_activated, :to => :"::Middleman::Extension" + delegate :after_extension_activated, to: :"::Middleman::Extension" def initialize(klass, options_hash={}, &block) @_helpers = [] @@ -86,7 +85,7 @@ module Middleman end end - protected + protected def setup_options(options_hash, &block) @options = self.class.config.dup diff --git a/middleman-core/lib/middleman-core/extensions.rb b/middleman-core/lib/middleman-core/extensions.rb index c147230d..bb033481 100644 --- a/middleman-core/lib/middleman-core/extensions.rb +++ b/middleman-core/lib/middleman-core/extensions.rb @@ -1,7 +1,5 @@ module Middleman - module Extensions - class << self def registered @_registered ||= {} @@ -32,7 +30,7 @@ module Middleman # extension is activated. def register(name, namespace=nil, &block) # If we've already got an extension registered under this name, bail out - if registered.has_key?(name.to_sym) + if registered.key?(name.to_sym) raise "There is already an extension registered with the name '#{name}'" end @@ -41,7 +39,7 @@ module Middleman elsif namespace && namespace.ancestors.include?(::Middleman::Extension) namespace else - raise "You must provide a Middleman::Extension or a block that returns a Middleman::Extension" + raise 'You must provide a Middleman::Extension or a block that returns a Middleman::Extension' end end @@ -49,17 +47,17 @@ module Middleman def load(name) name = name.to_sym - unless registered.has_key?(name) + unless registered.key?(name) raise "Unknown Extension: #{name}. Check the name and make sure you have referenced the extension's gem in your Gemfile." end extension = registered[name] if extension.is_a?(Proc) - extension = extension.call() + extension = extension.call registered[name] = extension end - if !extension.ancestors.include?(::Middleman::Extension) + unless extension.ancestors.include?(::Middleman::Extension) raise "Tried to activate old-style extension: #{name}. They are no longer supported." end @@ -116,7 +114,7 @@ module Middleman # @return [Boolean] Whether the file exists def spec_has_file?(spec, path) full_path = File.join(spec.full_gem_path, path) - File.exists?(full_path) + File.exist?(full_path) end end end diff --git a/middleman-core/lib/middleman-core/extensions/asset_hash.rb b/middleman-core/lib/middleman-core/extensions/asset_hash.rb index 6673fec6..a1089d9e 100644 --- a/middleman-core/lib/middleman-core/extensions/asset_hash.rb +++ b/middleman-core/lib/middleman-core/extensions/asset_hash.rb @@ -18,7 +18,7 @@ class Middleman::Extensions::AssetHash < ::Middleman::Extension # Allow specifying regexes to ignore, plus always ignore apple touch icons @ignore = Array(options.ignore) + [/^apple-touch-icon/] - app.use Middleware, :exts => options.exts, :middleman_app => app, :ignore => @ignore + app.use Middleware, exts: options.exts, middleman_app: app, ignore: @ignore end # Update the main sitemap resource list @@ -64,7 +64,7 @@ class Middleman::Extensions::AssetHash < ::Middleman::Extension def hashed_filename(resource) # Render through the Rack interface so middleware and mounted apps get a shot - response = @rack_client.get(URI.escape(resource.destination_path), { 'bypass_asset_hash' => 'true' }) + response = @rack_client.get(URI.escape(resource.destination_path), 'bypass_asset_hash' => 'true') raise "#{resource.path} should be in the sitemap!" unless response.status == 200 digest = Digest::SHA1.hexdigest(response.body)[0..7] @@ -93,7 +93,7 @@ class Middleman::Extensions::AssetHash < ::Middleman::Extension @rack_app = app @exts = options[:exts] @ignore = options[:ignore] - @exts_regex_text = @exts.map {|e| Regexp.escape(e) }.join('|') + @exts_regex_text = @exts.map { |e| Regexp.escape(e) }.join('|') @middleman_app = options[:middleman_app] end @@ -115,7 +115,7 @@ class Middleman::Extensions::AssetHash < ::Middleman::Extension [status, headers, response] end - private + private def rewrite_paths(body, path) dirpath = Pathname.new(File.dirname(path)) @@ -141,9 +141,7 @@ class Middleman::Extensions::AssetHash < ::Middleman::Extension end end end - end - end # =================Temp Generate Test data============================== diff --git a/middleman-core/lib/middleman-core/extensions/automatic_alt_tags.rb b/middleman-core/lib/middleman-core/extensions/automatic_alt_tags.rb index 95aaefee..879cecee 100644 --- a/middleman-core/lib/middleman-core/extensions/automatic_alt_tags.rb +++ b/middleman-core/lib/middleman-core/extensions/automatic_alt_tags.rb @@ -1,6 +1,5 @@ # Automatic Image alt tags from image names extension class Middleman::Extensions::AutomaticAltTags < ::Middleman::Extension - def initialize(app, options_hash={}, &block) super end @@ -10,14 +9,14 @@ class Middleman::Extensions::AutomaticAltTags < ::Middleman::Extension # containing image name. def image_tag(path) - if !path.include?('://') + unless path.include?('://') params[:alt] ||= '' real_path = path real_path = File.join(images_dir, real_path) unless real_path.start_with?('/') full_path = File.join(source_dir, real_path) - if File.exists?(full_path) + if File.exist?(full_path) begin alt_text = File.basename(full_path, '.*') alt_text.capitalize! diff --git a/middleman-core/lib/middleman-core/extensions/automatic_image_sizes.rb b/middleman-core/lib/middleman-core/extensions/automatic_image_sizes.rb index 2fb37abb..86311be7 100644 --- a/middleman-core/lib/middleman-core/extensions/automatic_image_sizes.rb +++ b/middleman-core/lib/middleman-core/extensions/automatic_image_sizes.rb @@ -1,6 +1,5 @@ # Automatic Image Sizes extension class Middleman::Extensions::AutomaticImageSizes < ::Middleman::Extension - def initialize(app, options_hash={}, &block) super @@ -16,22 +15,22 @@ class Middleman::Extensions::AutomaticImageSizes < ::Middleman::Extension # @param [Hash] params # @return [String] def image_tag(path, params={}) - if !params.has_key?(:width) && !params.has_key?(:height) && !path.include?('://') + if !params.key?(:width) && !params.key?(:height) && !path.include?('://') params[:alt] ||= '' real_path = path real_path = File.join(config[:images_dir], real_path) unless real_path.start_with?('/') full_path = File.join(source_dir, real_path) - if File.exists?(full_path) + if File.exist?(full_path) begin - width, height = ::FastImage.size(full_path, :raise_on_failure => true) + width, height = ::FastImage.size(full_path, raise_on_failure: true) params[:width] = width params[:height] = height rescue FastImage::UnknownImageType # No message, it's just not supported rescue - warn "Couldn't determine dimensions for image #{path}: #{$!.message}" + warn "Couldn't determine dimensions for image #{path}: #{$ERROR_INFO.message}" end end end diff --git a/middleman-core/lib/middleman-core/extensions/cache_buster.rb b/middleman-core/lib/middleman-core/extensions/cache_buster.rb index 44652888..7036d5fc 100644 --- a/middleman-core/lib/middleman-core/extensions/cache_buster.rb +++ b/middleman-core/lib/middleman-core/extensions/cache_buster.rb @@ -1,6 +1,5 @@ # The Cache Buster extension class Middleman::Extensions::CacheBuster < ::Middleman::Extension - def initialize(app, options_hash={}, &block) super diff --git a/middleman-core/lib/middleman-core/extensions/lorem.rb b/middleman-core/lib/middleman-core/extensions/lorem.rb index d13abeeb..32f1c6c1 100644 --- a/middleman-core/lib/middleman-core/extensions/lorem.rb +++ b/middleman-core/lib/middleman-core/extensions/lorem.rb @@ -94,11 +94,11 @@ class Middleman::Extensions::Lorem < ::Middleman::Extension # Get a placeholder date # @param [String] fmt # @return [String] - def date(fmt = '%a %b %d, %Y') + def date(fmt='%a %b %d, %Y') y = rand(20) + 1990 m = rand(12) + 1 d = rand(31) + 1 - Time.local(y,m,d).strftime(fmt) + Time.local(y, m, d).strftime(fmt) end # Get a placeholder name @@ -125,16 +125,16 @@ class Middleman::Extensions::Lorem < ::Middleman::Extension # Via http://www.kevadamson.com/talking-of-design/article/140-alternative-characters-to-lorem-ipsum # @return [String] def tweet - tweets = [ 'Far away, in a forest next to a river beneath the mountains, there lived a small purple otter called Philip. Philip likes sausages. The End.', - 'He liked the quality sausages from Marks & Spencer but due to the recession he had been forced to shop in a less desirable supermarket. End.', - 'He awoke one day to find his pile of sausages missing. Roger the greedy boar with human eyes, had skateboarded into the forest & eaten them!'] + tweets = ['Far away, in a forest next to a river beneath the mountains, there lived a small purple otter called Philip. Philip likes sausages. The End.', + 'He liked the quality sausages from Marks & Spencer but due to the recession he had been forced to shop in a less desirable supermarket. End.', + 'He awoke one day to find his pile of sausages missing. Roger the greedy boar with human eyes, had skateboarded into the forest & eaten them!'] tweets[rand(tweets.size)] end # Get a placeholder email address # @return [String] def email - delimiters = [ '_', '-', '' ] + delimiters = ['_', '-', ''] domains = %w(gmail.com yahoo.com hotmail.com email.com live.com me.com mac.com aol.com fastmail.com mail.com) username = name.gsub(/[^\w]/, delimiters[rand(delimiters.size)]) "#{username}@#{domains[rand(domains.size)]}".downcase @@ -147,7 +147,7 @@ class Middleman::Extensions::Lorem < ::Middleman::Extension def image(size, options={}) domain = options[:domain] || 'http://placehold.it' src = "#{domain}/#{size}" - hex = %w[a b c d e f 0 1 2 3 4 5 6 7 8 9] + hex = %w(a b c d e f 0 1 2 3 4 5 6 7 8 9) background_color = options[:background_color] color = options[:color] @@ -159,7 +159,7 @@ class Middleman::Extensions::Lorem < ::Middleman::Extension src << "/#{background_color.sub(/^#/, '')}" if background_color src << '/ccc' if background_color.nil? && color src << "/#{color.sub(/^#/, '')}" if color - src << "&text=#{Rack::Utils::escape(options[:text])}" if options[:text] + src << "&text=#{Rack::Utils.escape(options[:text])}" if options[:text] src end diff --git a/middleman-core/lib/middleman-core/extensions/minify_css.rb b/middleman-core/lib/middleman-core/extensions/minify_css.rb index dcf89e91..000bcebf 100644 --- a/middleman-core/lib/middleman-core/extensions/minify_css.rb +++ b/middleman-core/lib/middleman-core/extensions/minify_css.rb @@ -2,22 +2,22 @@ class Middleman::Extensions::MinifyCss < ::Middleman::Extension option :inline, false, 'Whether to minify CSS inline within HTML files' option :ignore, [], 'Patterns to avoid minifying' - option :compressor, Proc.new { + option :compressor, proc { require 'sass' SassCompressor }, 'Set the CSS compressor to use.' def after_configuration # Setup Rack middleware to minify CSS - app.use Rack, :compressor => options[:compressor], - :ignore => Array(options[:ignore]) + [/\.min\./], - :inline => options[:inline] + app.use Rack, compressor: options[:compressor], + ignore: Array(options[:ignore]) + [/\.min\./], + inline: options[:inline] end class SassCompressor - def self.compress(style, options = {}) + def self.compress(style, options={}) root_node = ::Sass::SCSS::CssParser.new(style, 'middleman-css-input', 1).parse - root_node.options = { :style => :compressed } + root_node.options = { style: :compressed } root_node.render.strip end end @@ -63,13 +63,13 @@ class Middleman::Extensions::MinifyCss < ::Middleman::Extension [status, headers, response] end - private + private def inline_html_content?(path) (path.end_with?('.html') || path.end_with?('.php')) && @inline end def standalone_css_content?(path) - path.end_with?('.css') && @ignore.none? {|ignore| Middleman::Util.path_match(ignore, path) } + path.end_with?('.css') && @ignore.none? { |ignore| Middleman::Util.path_match(ignore, path) } end end end diff --git a/middleman-core/lib/middleman-core/extensions/minify_javascript.rb b/middleman-core/lib/middleman-core/extensions/minify_javascript.rb index 240e9a5d..5a03671b 100644 --- a/middleman-core/lib/middleman-core/extensions/minify_javascript.rb +++ b/middleman-core/lib/middleman-core/extensions/minify_javascript.rb @@ -2,21 +2,20 @@ class Middleman::Extensions::MinifyJavascript < ::Middleman::Extension option :inline, false, 'Whether to minify JS inline within HTML files' option :ignore, [], 'Patterns to avoid minifying' - option :compressor, Proc.new { + option :compressor, proc { require 'uglifier' ::Uglifier.new }, 'Set the JS compressor to use.' def after_configuration # Setup Rack middleware to minify CSS - app.use Rack, :compressor => options[:compressor], - :ignore => Array(options[:ignore]) + [/\.min\./], - :inline => options[:inline] + app.use Rack, compressor: options[:compressor], + ignore: Array(options[:ignore]) + [/\.min\./], + inline: options[:inline] end # Rack middleware to look for JS and compress it class Rack - # Init # @param [Class] app # @param [Hash] options @@ -46,7 +45,7 @@ class Middleman::Extensions::MinifyJavascript < ::Middleman::Extension headers['Content-Length'] = ::Rack::Utils.bytesize(minified).to_s response = [minified] - elsif path.end_with?('.js') && @ignore.none? {|ignore| Middleman::Util.path_match(ignore, path) } + elsif path.end_with?('.js') && @ignore.none? { |ignore| Middleman::Util.path_match(ignore, path) } uncompressed_source = ::Middleman::Util.extract_response_text(response) minified = @compressor.compress(uncompressed_source) @@ -60,7 +59,7 @@ class Middleman::Extensions::MinifyJavascript < ::Middleman::Extension [status, headers, response] end - private + private def minify_inline_content(uncompressed_source) uncompressed_source.gsub(/(]*>\s*(?:\/\/(?:(?:)|(?:\]\]>)))?\s*<\/script>)/m) do |match| diff --git a/middleman-core/lib/middleman-core/extensions/relative_assets.rb b/middleman-core/lib/middleman-core/extensions/relative_assets.rb index 61e54881..ec7d3cf0 100644 --- a/middleman-core/lib/middleman-core/extensions/relative_assets.rb +++ b/middleman-core/lib/middleman-core/extensions/relative_assets.rb @@ -1,6 +1,5 @@ # Relative Assets extension class Middleman::Extensions::RelativeAssets < ::Middleman::Extension - def initialize(app, options_hash={}, &block) super diff --git a/middleman-core/lib/middleman-core/file_renderer.rb b/middleman-core/lib/middleman-core/file_renderer.rb index 6d3e4dd1..79da5773 100644 --- a/middleman-core/lib/middleman-core/file_renderer.rb +++ b/middleman-core/lib/middleman-core/file_renderer.rb @@ -2,14 +2,12 @@ require 'tilt' require 'active_support/core_ext/string/output_safety' module Middleman - class FileRenderer - def self.cache @_cache ||= ::Tilt::Cache.new end - delegate :cache, :to => :"self.class" + delegate :cache, to: :"self.class" def initialize(app, path) @app = app @@ -22,7 +20,7 @@ module Middleman # @param [Hash] opts # @param [Class] context # @return [String] - def render(locs = {}, opts = {}, context, &block) + def render(locs={}, opts={}, context, &block) path = @path.dup # Detect the remdering engine from the extension @@ -60,7 +58,7 @@ module Middleman # Read compiled template from disk or cache template = cache.fetch(:compiled_template, extension, options, body) do - ::Tilt.new(path, 1, options) { body } + ::Tilt.new(path, 1, options) { body } end # Render using Tilt @@ -91,7 +89,7 @@ module Middleman end end - protected + protected # Get a hash of configuration options for a given file extension, from # config.rb diff --git a/middleman-core/lib/middleman-core/load_paths.rb b/middleman-core/lib/middleman-core/load_paths.rb index 968e61ec..68defc69 100644 --- a/middleman-core/lib/middleman-core/load_paths.rb +++ b/middleman-core/lib/middleman-core/load_paths.rb @@ -2,7 +2,6 @@ require 'pathname' module Middleman - class << self def setup_load_paths @_is_setup ||= begin @@ -31,11 +30,11 @@ module Middleman def setup_bundler ENV['BUNDLE_GEMFILE'] ||= findup('Gemfile', ENV['MM_ROOT']) - if !File.exists?(ENV['BUNDLE_GEMFILE']) + unless File.exist?(ENV['BUNDLE_GEMFILE']) ENV['BUNDLE_GEMFILE'] = File.expand_path('../../../../Gemfile', __FILE__) end - if File.exists?(ENV['BUNDLE_GEMFILE']) + if File.exist?(ENV['BUNDLE_GEMFILE']) require 'bundler/setup' Bundler.require else @@ -44,12 +43,10 @@ module Middleman end # Recursive method to find a file in parent directories - def findup(filename, cwd = Pathname.new(Dir.pwd)) + def findup(filename, cwd=Pathname.new(Dir.pwd)) return cwd.to_s if (cwd + filename).exist? return false if cwd.root? findup(filename, cwd.parent) end - end - end diff --git a/middleman-core/lib/middleman-core/logger.rb b/middleman-core/lib/middleman-core/logger.rb index 3ab3581e..7d361946 100644 --- a/middleman-core/lib/middleman-core/logger.rb +++ b/middleman-core/lib/middleman-core/logger.rb @@ -4,10 +4,8 @@ require 'active_support/logger' require 'thread' module Middleman - # The Middleman Logger class Logger < ActiveSupport::Logger - def self.singleton(*args) if !@_logger || args.length > 0 if args.length == 1 && (args.first.is_a?(::String) || args.first.respond_to?(:write)) @@ -42,7 +40,7 @@ module Middleman return if @instrumenting.is_a?(String) && @instrumenting != 'instrument' && !message.include?(@instrumenting) evt = ActiveSupport::Notifications::Event.new(message, *args) - self.info "== Instrument (#{evt.name.sub(/.middleman$/, '')}): #{evt.duration}ms" + info "== Instrument (#{evt.name.sub(/.middleman$/, '')}): #{evt.duration}ms" end end end diff --git a/middleman-core/lib/middleman-core/meta_pages.rb b/middleman-core/lib/middleman-core/meta_pages.rb index b88d0215..79ac13a9 100644 --- a/middleman-core/lib/middleman-core/meta_pages.rb +++ b/middleman-core/lib/middleman-core/meta_pages.rb @@ -19,7 +19,7 @@ module Middleman meta_pages = self @rack_app = Rack::Builder.new do # Serve assets from metadata/assets - use Rack::Static, :urls => ['/assets'], :root => File.join(File.dirname(__FILE__), 'meta_pages') + use Rack::Static, urls: ['/assets'], root: File.join(File.dirname(__FILE__), 'meta_pages') map '/' do run meta_pages.method(:index) @@ -54,12 +54,12 @@ module Middleman sitemap_tree.add_resource resource end - template('sitemap.html.erb', :sitemap_tree => sitemap_tree) + template('sitemap.html.erb', sitemap_tree: sitemap_tree) end # Inspect configuration def config(env) - global_config = @middleman.inst.config.all_settings.map {|c| ConfigSetting.new(c) } + global_config = @middleman.inst.config.all_settings.map { |c| ConfigSetting.new(c) } extension_config = {} @middleman.inst.extensions.each do |ext_name, extension| @@ -80,9 +80,9 @@ module Middleman end template('config.html.erb', - :global_config => global_config, - :extension_config => extension_config, - :registered_extensions => Middleman::Extensions.registered.dup) + global_config: global_config, + extension_config: extension_config, + registered_extensions: Middleman::Extensions.registered.dup) end private @@ -96,11 +96,11 @@ module Middleman # Respond to an HTML request def response(content) - [ 200, {'Content-Type' => 'text/html'}, Array(content) ] + [200, { 'Content-Type' => 'text/html' }, Array(content)] end def extension_options(extension) - extension.options.all_settings.map {|c| ConfigSetting.new(c) } + extension.options.all_settings.map { |c| ConfigSetting.new(c) } end end end diff --git a/middleman-core/lib/middleman-core/meta_pages/config_setting.rb b/middleman-core/lib/middleman-core/meta_pages/config_setting.rb index 3fd223e3..d10a484a 100644 --- a/middleman-core/lib/middleman-core/meta_pages/config_setting.rb +++ b/middleman-core/lib/middleman-core/meta_pages/config_setting.rb @@ -15,17 +15,17 @@ module Middleman content = '' key_classes = ['key'] key_classes << 'modified' if @setting.value_set? - content << content_tag(:span, @setting.key.pretty_inspect.strip, :class => key_classes.join(' ')) + content << content_tag(:span, @setting.key.pretty_inspect.strip, class: key_classes.join(' ')) content << ' = ' - content << content_tag(:span, @setting.value.pretty_inspect.strip, :class => 'value') + content << content_tag(:span, @setting.value.pretty_inspect.strip, class: 'value') if @setting.default && @setting.value_set? && @setting.default != @setting.value - content << content_tag(:span, :class => 'default') do + content << content_tag(:span, class: 'default') do "(Default: #{@setting.default.inspect})" end end if @setting.description - content << content_tag(:p, :class => 'description') do + content << content_tag(:p, class: 'description') do @setting.description end end diff --git a/middleman-core/lib/middleman-core/meta_pages/sitemap_resource.rb b/middleman-core/lib/middleman-core/meta_pages/sitemap_resource.rb index d16b9154..e42176df 100644 --- a/middleman-core/lib/middleman-core/meta_pages/sitemap_resource.rb +++ b/middleman-core/lib/middleman-core/meta_pages/sitemap_resource.rb @@ -14,7 +14,7 @@ module Middleman def render classes = 'resource-details' classes << ' ignored' if @resource.ignored? - content_tag :div, :class => classes do + content_tag :div, class: classes do content_tag :table do content = '' resource_properties.each do |label, value| @@ -38,7 +38,7 @@ module Middleman build_path = @resource.destination_path build_path = 'Not built' if ignored? props['Build Path'] = build_path if @resource.path != build_path - props['URL'] = content_tag(:a, @resource.url, :href => @resource.url) unless ignored? + props['URL'] = content_tag(:a, @resource.url, href: @resource.url) unless ignored? props['Source File'] = @resource.source_file.sub(/^#{Regexp.escape(ENV['MM_ROOT'] + '/')}/, '') data = @resource.data diff --git a/middleman-core/lib/middleman-core/meta_pages/sitemap_tree.rb b/middleman-core/lib/middleman-core/meta_pages/sitemap_tree.rb index 68bae977..ab2f03d9 100644 --- a/middleman-core/lib/middleman-core/meta_pages/sitemap_tree.rb +++ b/middleman-core/lib/middleman-core/meta_pages/sitemap_tree.rb @@ -14,7 +14,7 @@ module Middleman def render content = '' - @children.keys.sort do |a,b| + @children.keys.sort do |a, b| a_subtree = @children[a] b_subtree = @children[b] if a_subtree.is_a? SitemapResource diff --git a/middleman-core/lib/middleman-core/preview_server.rb b/middleman-core/lib/middleman-core/preview_server.rb index a90d2bab..0502bcac 100644 --- a/middleman-core/lib/middleman-core/preview_server.rb +++ b/middleman-core/lib/middleman-core/preview_server.rb @@ -4,12 +4,11 @@ require 'middleman-core/logger' module Middleman module PreviewServer - DEFAULT_PORT = 4567 class << self attr_reader :app, :host, :port - delegate :logger, :to => :app + delegate :logger, to: :app # Start an instance of Middleman::Application # @return [void] @@ -70,7 +69,7 @@ module Middleman begin app = new_app - rescue Exception => e + rescue => e logger.error "Error reloading Middleman: #{e}\n#{e.backtrace.join("\n")}" logger.info '== The Middleman is still running the application from before the error' return @@ -89,7 +88,7 @@ module Middleman @webrick.shutdown end - private + private def new_app opts = @options.dup server = ::Middleman::Application.server @@ -120,7 +119,7 @@ module Middleman if first_run # Watcher Library require 'listen' - @listener = Listen.to(Dir.pwd, :relative_paths => true, :force_polling => @options[:force_polling]) + @listener = Listen.to(Dir.pwd, relative_paths: true, force_polling: @options[:force_polling]) @listener.latency(@options[:latency]) end @@ -166,10 +165,10 @@ module Middleman # @return [void] def setup_webrick(is_logging) http_opts = { - :BindAddress => host, - :Port => port, - :AccessLog => [], - :DoNotReverseLookup => true + BindAddress: host, + Port: port, + AccessLog: [], + DoNotReverseLookup: true } if is_logging @@ -181,7 +180,7 @@ module Middleman begin ::WEBrick::HTTPServer.new(http_opts) rescue Errno::EADDRINUSE - logger.error "== Port #{port} is unavailable. Either close the instance of Middleman already running on #{port} or start this Middleman on a new port with: --port=#{port.to_i+1}" + logger.error "== Port #{port} is unavailable. Either close the instance of Middleman already running on #{port} or start this Middleman on a new port with: --port=#{port.to_i + 1}" exit(1) end end @@ -236,7 +235,6 @@ module Middleman host = (@host == '0.0.0.0') ? 'localhost' : @host URI("http://#{host}:#{@port}") end - end class FilteredWebrickLog < ::WEBrick::Log diff --git a/middleman-core/lib/middleman-core/profiling.rb b/middleman-core/lib/middleman-core/profiling.rb index 0e54f41e..5bcb7bd8 100644 --- a/middleman-core/lib/middleman-core/profiling.rb +++ b/middleman-core/lib/middleman-core/profiling.rb @@ -1,6 +1,5 @@ module Middleman module Profiling - # The profiler instance. There can only be one! def self.profiler=(prof) @profiler = prof @@ -31,11 +30,9 @@ module Middleman # A profiler that uses ruby-prof class RubyProfProfiler def initialize - begin - require 'ruby-prof' - rescue LoadError - raise "To use the --profile option, you must add the 'ruby-prof' gem to your Gemfile" - end + require 'ruby-prof' + rescue LoadError + raise "To use the --profile option, you must add the 'ruby-prof' gem to your Gemfile" end def start @@ -50,7 +47,7 @@ module Middleman outfile = (outfile + '.html') unless outfile.end_with? '.html' FileUtils.mkdir_p(File.dirname(outfile)) File.open(outfile, 'w') do |f| - printer.print(f, :min_percent=> 1) + printer.print(f, min_percent: 1) end end end diff --git a/middleman-core/lib/middleman-core/renderers/coffee_script.rb b/middleman-core/lib/middleman-core/renderers/coffee_script.rb index 3f87d1fa..e6f57cb4 100644 --- a/middleman-core/lib/middleman-core/renderers/coffee_script.rb +++ b/middleman-core/lib/middleman-core/renderers/coffee_script.rb @@ -3,10 +3,8 @@ require 'coffee_script' module Middleman module Renderers - # CoffeeScript Renderer module CoffeeScript - # Setup extension class << self # Once registered @@ -19,7 +17,7 @@ module Middleman DebuggingCoffeeScriptTemplate.middleman_app = self end end - alias :included :registered + alias_method :included, :registered end # A Template for Tilt which outputs debug messages diff --git a/middleman-core/lib/middleman-core/renderers/erb.rb b/middleman-core/lib/middleman-core/renderers/erb.rb index 89f93bac..a3a1239c 100644 --- a/middleman-core/lib/middleman-core/renderers/erb.rb +++ b/middleman-core/lib/middleman-core/renderers/erb.rb @@ -4,7 +4,6 @@ module Middleman module ERb # Setup extension class << self - # once registered def registered(app) # After config @@ -12,7 +11,7 @@ module Middleman ::Tilt.prefer(Template, :erb) end end - alias :included :registered + alias_method :included, :registered end class Template < ::Tilt::ErubisTemplate @@ -22,7 +21,7 @@ module Middleman def precompiled_preamble(locals) original = super "__in_erb_template = true\n" << original - #.rpartition("\n").first << "#{@outvar} = _buf = ActiveSupport::SafeBuffer.new\n" + # .rpartition("\n").first << "#{@outvar} = _buf = ActiveSupport::SafeBuffer.new\n" end end end diff --git a/middleman-core/lib/middleman-core/renderers/haml.rb b/middleman-core/lib/middleman-core/renderers/haml.rb index fc450417..e90e5b8c 100644 --- a/middleman-core/lib/middleman-core/renderers/haml.rb +++ b/middleman-core/lib/middleman-core/renderers/haml.rb @@ -13,7 +13,6 @@ end module Middleman module Renderers - # Haml precompiles filters before the scope is even available, # thus making it impossible to pass our Middleman instance # in. So we have to resort to heavy hackery :( @@ -24,7 +23,7 @@ module Middleman def evaluate(scope, locals, &block) ::Middleman::Renderers::Haml.last_haml_scope = scope - options = @options.merge(:filename => eval_file, :line => line) + options = @options.merge(filename: eval_file, line: line) @engine = ::Haml::Engine.new(data, options) output = @engine.render(scope, locals, &block) @@ -47,7 +46,7 @@ module Middleman # Add haml helpers to context ::Middleman::TemplateContext.send :include, ::Haml::Helpers end - alias :included :registered + alias_method :included, :registered end end end diff --git a/middleman-core/lib/middleman-core/renderers/kramdown.rb b/middleman-core/lib/middleman-core/renderers/kramdown.rb index d5e5757c..669e315e 100644 --- a/middleman-core/lib/middleman-core/renderers/kramdown.rb +++ b/middleman-core/lib/middleman-core/renderers/kramdown.rb @@ -2,7 +2,6 @@ require 'kramdown' module Middleman module Renderers - # Our own Kramdown Tilt template that simply uses our custom renderer. class KramdownTemplate < ::Tilt::KramdownTemplate def evaluate(scope, locals, &block) @@ -34,7 +33,7 @@ module Middleman mail_addr = el.attr['href'].sub(/\Amailto:/, '') href = obfuscate('mailto') << ':' << obfuscate(mail_addr) content = obfuscate(content) if content == mail_addr - return %Q{#{content}} + return %Q(#{content}) end attr = el.attr.dup diff --git a/middleman-core/lib/middleman-core/renderers/less.rb b/middleman-core/lib/middleman-core/renderers/less.rb index d09e1ac9..db097298 100644 --- a/middleman-core/lib/middleman-core/renderers/less.rb +++ b/middleman-core/lib/middleman-core/renderers/less.rb @@ -2,13 +2,10 @@ require 'less' module Middleman module Renderers - # Sass renderer module Less - # Setup extension class << self - # Once registered def registered(app) # Default less options @@ -23,23 +20,20 @@ module Middleman ::Tilt.prefer(LocalLoadingLessTemplate) end - alias :included :registered + alias_method :included, :registered end # A SassTemplate for Tilt which outputs debug messages class LocalLoadingLessTemplate < ::Tilt::LessTemplate - def prepare if ::Less.const_defined? :Engine @engine = ::Less::Engine.new(data) else - parser = ::Less::Parser.new(options.merge :filename => eval_file, :line => line, :paths => ['.', File.dirname(eval_file)]) + parser = ::Less::Parser.new(options.merge filename: eval_file, line: line, paths: ['.', File.dirname(eval_file)]) @engine = parser.parse(data) end end - end - end end end diff --git a/middleman-core/lib/middleman-core/renderers/liquid.rb b/middleman-core/lib/middleman-core/renderers/liquid.rb index 3596432e..c4d2581c 100644 --- a/middleman-core/lib/middleman-core/renderers/liquid.rb +++ b/middleman-core/lib/middleman-core/renderers/liquid.rb @@ -3,13 +3,10 @@ require 'liquid' module Middleman module Renderers - # Liquid Renderer module Liquid - # Setup extension class << self - # Once registerd def registered(app) # After config, setup liquid partial paths @@ -18,14 +15,13 @@ module Middleman # Convert data object into a hash for liquid sitemap.provides_metadata %r{\.liquid$} do |path| - { :locals => { :data => data.to_h } } + { locals: { data: data.to_h } } end end end - alias :included :registered + alias_method :included, :registered end end - end end diff --git a/middleman-core/lib/middleman-core/renderers/markdown.rb b/middleman-core/lib/middleman-core/renderers/markdown.rb index 90889edb..c60c4030 100644 --- a/middleman-core/lib/middleman-core/renderers/markdown.rb +++ b/middleman-core/lib/middleman-core/renderers/markdown.rb @@ -1,12 +1,9 @@ module Middleman module Renderers - # Markdown renderer module Markdown - # Setup extension class << self - # Once registered def registered(app) # Set our preference for a markdown engine @@ -25,7 +22,7 @@ module Middleman elsif config[:markdown_engine] == :kramdown require 'middleman-core/renderers/kramdown' ::Tilt.prefer(::Middleman::Renderers::KramdownTemplate, *markdown_exts) - elsif !config[:markdown_engine].nil? + elsif config[:markdown_engine] # Map symbols to classes markdown_engine_klass = if config[:markdown_engine].is_a? Symbol engine = config[:markdown_engine].to_s @@ -48,9 +45,8 @@ module Middleman end end - alias :included :registered + alias_method :included, :registered end end - end end diff --git a/middleman-core/lib/middleman-core/renderers/redcarpet.rb b/middleman-core/lib/middleman-core/renderers/redcarpet.rb index e5ead89e..5181bd41 100644 --- a/middleman-core/lib/middleman-core/renderers/redcarpet.rb +++ b/middleman-core/lib/middleman-core/renderers/redcarpet.rb @@ -2,20 +2,18 @@ require 'redcarpet' module Middleman module Renderers - class RedcarpetTemplate < ::Tilt::RedcarpetTemplate::Redcarpet2 - # because tilt has decided to convert these # in the wrong direction ALIASES = { - :escape_html => :filter_html + escape_html: :filter_html } # Overwrite built-in Tilt version. # Don't overload :renderer option with smartypants # Support renderer-level options def generate_renderer - return options.delete(:renderer) if options.has_key?(:renderer) + return options.delete(:renderer) if options.key?(:renderer) covert_options_to_aliases! @@ -32,8 +30,8 @@ module Middleman # Renderer Options possible_render_opts = [:filter_html, :no_images, :no_links, :no_styles, :safe_links_only, :with_toc_data, :hard_wrap, :xhtml, :prettify, :link_attributes] - render_options = possible_render_opts.inject({}) do |sum, opt| - sum[opt] = options.delete(opt) if options.has_key?(opt) + render_options = possible_render_opts.reduce({}) do |sum, opt| + sum[opt] = options.delete(opt) if options.key?(opt) sum end @@ -50,11 +48,11 @@ module Middleman private - def covert_options_to_aliases! - ALIASES.each do |aka, actual| - options[actual] = options.delete(aka) if options.has_key? aka - end + def covert_options_to_aliases! + ALIASES.each do |aka, actual| + options[actual] = options.delete(aka) if options.key? aka end + end end # Custom Redcarpet renderer that uses our helpers for images and links @@ -69,23 +67,23 @@ module Middleman def image(link, title, alt_text) if !@local_options[:no_images] - scope.image_tag(link, :title => title, :alt => alt_text) + scope.image_tag(link, title: title, alt: alt_text) else link_string = link.dup - link_string << %Q{"#{title}"} if title && title.length > 0 && title != alt_text + link_string << %Q("#{title}") if title && title.length > 0 && title != alt_text %Q{![#{alt_text}](#{link_string})} end end def link(link, title, content) if !@local_options[:no_links] - attributes = { :title => title } - attributes.merge!( @local_options[:link_attributes] ) if @local_options[:link_attributes] + attributes = { title: title } + attributes.merge!(@local_options[:link_attributes]) if @local_options[:link_attributes] - scope.link_to(content, link, attributes ) + scope.link_to(content, link, attributes) else link_string = link.dup - link_string << %Q{"#{title}"} if title && title.length > 0 && title != alt_text + link_string << %Q("#{title}") if title && title.length > 0 && title != alt_text %Q{[#{content}](#{link_string})} end end diff --git a/middleman-core/lib/middleman-core/renderers/sass.rb b/middleman-core/lib/middleman-core/renderers/sass.rb index a1d5c411..e1d41b65 100644 --- a/middleman-core/lib/middleman-core/renderers/sass.rb +++ b/middleman-core/lib/middleman-core/renderers/sass.rb @@ -3,13 +3,10 @@ require 'compass/import-once' module Middleman module Renderers - # Sass renderer module Sass - # Setup extension class << self - # Once registered def registered(app) # Default sass options @@ -26,16 +23,15 @@ module Middleman ::Compass::ImportOnce.activate! end - alias :included :registered + alias_method :included, :registered end # A SassTemplate for Tilt which outputs debug messages class SassPlusCSSFilenameTemplate < ::Tilt::SassTemplate - def initialize(*args, &block) super - if @options.has_key?(:context) + if @options.key?(:context) @context = @options[:context] end end @@ -59,14 +55,14 @@ module Middleman begin @engine.render rescue ::Sass::SyntaxError => e - ::Sass::SyntaxError.exception_to_css(e, :full_exception => true) + ::Sass::SyntaxError.exception_to_css(e, full_exception: true) end end # Change Sass path, for url functions, to the build folder if we're building # @return [Hash] def sass_options - more_opts = { :filename => eval_file, :line => line, :syntax => syntax } + more_opts = { filename: eval_file, line: line, syntax: syntax } if @context.is_a?(::Middleman::TemplateContext) && file location_of_sass_file = @context.source_dir @@ -82,7 +78,6 @@ module Middleman # SCSS version of the above template class ScssPlusCSSFilenameTemplate < SassPlusCSSFilenameTemplate - # Define the expected syntax for the template # @return [Symbol] def syntax diff --git a/middleman-core/lib/middleman-core/renderers/slim.rb b/middleman-core/lib/middleman-core/renderers/slim.rb index c10727ef..16bf2f25 100644 --- a/middleman-core/lib/middleman-core/renderers/slim.rb +++ b/middleman-core/lib/middleman-core/renderers/slim.rb @@ -17,26 +17,23 @@ end module Middleman module Renderers - # Slim renderer module Slim - # Setup extension class << self - # Once registered def registered(app) # Setup Slim options to work with partials ::Slim::Engine.set_default_options( - :buffer => '@_out_buf', - :use_html_safe => true, - :generator => ::Temple::Generators::RailsOutputBuffer, - :disable_escape => true + buffer: '@_out_buf', + use_html_safe: true, + generator: ::Temple::Generators::RailsOutputBuffer, + disable_escape: true ) app.after_configuration do context_hack = { - :context => self + context: self } ::Slim::Embedded::SassEngine.disable_option_validator! @@ -46,7 +43,7 @@ module Middleman end end - alias :included :registered + alias_method :included, :registered end end end diff --git a/middleman-core/lib/middleman-core/renderers/stylus.rb b/middleman-core/lib/middleman-core/renderers/stylus.rb index 6fbdb455..7c7989e2 100644 --- a/middleman-core/lib/middleman-core/renderers/stylus.rb +++ b/middleman-core/lib/middleman-core/renderers/stylus.rb @@ -3,22 +3,18 @@ require 'stylus/tilt' module Middleman module Renderers - # Sass renderer module Stylus - # Setup extension class << self - # Once registered def registered(app) # Default stylus options app.config.define_setting :styl, {}, 'Stylus config options' end - alias :included :registered + alias_method :included, :registered end - end end end diff --git a/middleman-core/lib/middleman-core/sitemap.rb b/middleman-core/lib/middleman-core/sitemap.rb index 658dc7c5..a939a727 100644 --- a/middleman-core/lib/middleman-core/sitemap.rb +++ b/middleman-core/lib/middleman-core/sitemap.rb @@ -1,30 +1,27 @@ # Core Sitemap Extensions module Middleman module Sitemap - # Setup Extension class << self - # Once registered def included(app) - # Set to automatically convert some characters into a directory app.config.define_setting :automatic_directory_matcher, nil, 'Set to automatically convert some characters into a directory' # Setup callbacks which can exclude paths from the sitemap app.config.define_setting :ignored_sitemap_matchers, { # dotfiles and folders in the root - :root_dotfiles => proc { |file| file.start_with?('.') }, + root_dotfiles: proc { |file| file.start_with?('.') }, # Files starting with an dot, but not .htaccess - :source_dotfiles => proc { |file| + source_dotfiles: proc { |file| file =~ %r{/\.} && file !~ %r{/\.(htaccess|htpasswd|nojekyll)} }, # Files starting with an underscore, but not a double-underscore - :partials => proc { |file| file =~ %r{/_[^_]} }, + partials: proc { |file| file =~ %r{/_[^_]} }, - :layout => proc { |file, app| + layout: proc { |file, app| file.start_with?(File.join(app.config[:source], 'layout.')) || file.start_with?(File.join(app.config[:source], 'layouts/')) } }, 'Callbacks that can exclude paths from the sitemap' @@ -32,7 +29,6 @@ module Middleman # Include instance methods ::Middleman::TemplateContext.send :include, InstanceMethods end - end # Sitemap instance methods @@ -53,7 +49,6 @@ module Middleman return nil unless current_path sitemap.find_resource_by_destination_path(current_path) end - end end end diff --git a/middleman-core/lib/middleman-core/sitemap/extensions/ignores.rb b/middleman-core/lib/middleman-core/sitemap/extensions/ignores.rb index 3c5d3872..414cd7e9 100644 --- a/middleman-core/lib/middleman-core/sitemap/extensions/ignores.rb +++ b/middleman-core/lib/middleman-core/sitemap/extensions/ignores.rb @@ -1,9 +1,6 @@ module Middleman - module Sitemap - module Extensions - # Class to handle managing ignores class Ignores def initialize(sitemap) @@ -23,15 +20,15 @@ module Middleman # @return [void] def create_ignore(path=nil, &block) if path.is_a? Regexp - @ignored_callbacks << Proc.new {|p| p =~ path } + @ignored_callbacks << proc { |p| p =~ path } elsif path.is_a? String path_clean = ::Middleman::Util.normalize_path(path) if path_clean.include?('*') # It's a glob - @ignored_callbacks << Proc.new {|p| File.fnmatch(path_clean, p) } + @ignored_callbacks << proc { |p| File.fnmatch(path_clean, p) } else # Add a specific-path ignore unless that path is already covered return if ignored?(path_clean) - @ignored_callbacks << Proc.new {|p| p == path_clean } + @ignored_callbacks << proc { |p| p == path_clean } end elsif block_given? @ignored_callbacks << block @@ -48,10 +45,9 @@ module Middleman @ignored_callbacks.any? { |b| b.call(path_clean) } end end - + # Helpers methods for Resources module IgnoreResourceInstanceMethods - # Whether the Resource is ignored # @return [Boolean] def ignored? diff --git a/middleman-core/lib/middleman-core/sitemap/extensions/on_disk.rb b/middleman-core/lib/middleman-core/sitemap/extensions/on_disk.rb index 824daaf4..abb917e4 100644 --- a/middleman-core/lib/middleman-core/sitemap/extensions/on_disk.rb +++ b/middleman-core/lib/middleman-core/sitemap/extensions/on_disk.rb @@ -1,13 +1,9 @@ require 'set' module Middleman - module Sitemap - module Extensions - class OnDisk - attr_accessor :sitemap attr_accessor :waiting_for_ready diff --git a/middleman-core/lib/middleman-core/sitemap/extensions/proxies.rb b/middleman-core/lib/middleman-core/sitemap/extensions/proxies.rb index 55a0a371..131ecbe5 100644 --- a/middleman-core/lib/middleman-core/sitemap/extensions/proxies.rb +++ b/middleman-core/lib/middleman-core/sitemap/extensions/proxies.rb @@ -1,9 +1,6 @@ module Middleman - module Sitemap - module Extensions - # Manages the list of proxy configurations and manipulates the sitemap # to include new resources based on those configurations class Proxies @@ -26,13 +23,13 @@ module Middleman def create_proxy(path, target, opts={}) options = opts.dup - metadata = { :options => {}, :locals => {} } + metadata = { options: {}, locals: {} } metadata[:locals] = options.delete(:locals) || {} @app.ignore(target) if options.delete(:ignore) metadata[:options] = options - @proxy_configs << ProxyConfiguration.new(:path => path, :target => target, :metadata => metadata) + @proxy_configs << ProxyConfiguration.new(path: path, target: target, metadata: metadata) @app.sitemap.rebuild_resource_list!(:added_proxy) end @@ -106,9 +103,7 @@ module Middleman # The path of the page this page is proxied to, or nil if it's not proxied. # @return [String] - def proxied_to - @proxied_to - end + attr_reader :proxied_to # The resource for the page this page is proxied to. Throws an exception # if there is no resource. diff --git a/middleman-core/lib/middleman-core/sitemap/extensions/redirects.rb b/middleman-core/lib/middleman-core/sitemap/extensions/redirects.rb index 6dfdb2b0..8717cfc7 100644 --- a/middleman-core/lib/middleman-core/sitemap/extensions/redirects.rb +++ b/middleman-core/lib/middleman-core/sitemap/extensions/redirects.rb @@ -1,11 +1,8 @@ require 'middleman-core/sitemap/resource' module Middleman - module Sitemap - module Extensions - # Manages the list of proxy configurations and manipulates the sitemap # to include new resources based on those configurations class Redirects @@ -58,10 +55,10 @@ module Middleman end def render(*args, &block) - url = ::Middleman::Util.url_for(store.app, @request_path, { - :relative => false, - :find_resource => true - }) + url = ::Middleman::Util.url_for(store.app, @request_path, + relative: false, + find_resource: true + ) if output output.call(path, url) @@ -99,7 +96,6 @@ module Middleman def metadata @local_metadata.dup end - end end end diff --git a/middleman-core/lib/middleman-core/sitemap/extensions/request_endpoints.rb b/middleman-core/lib/middleman-core/sitemap/extensions/request_endpoints.rb index ba3ad732..ad92a23d 100644 --- a/middleman-core/lib/middleman-core/sitemap/extensions/request_endpoints.rb +++ b/middleman-core/lib/middleman-core/sitemap/extensions/request_endpoints.rb @@ -1,11 +1,7 @@ module Middleman - module Sitemap - module Extensions - class RequestEndpoints - # Manages the list of proxy configurations and manipulates the sitemap # to include new resources based on those configurations def initialize(sitemap) @@ -21,13 +17,13 @@ module Middleman # differs from the output path def create_endpoint(path, opts={}, &block) endpoint = { - :request_path => path + request_path: path } if block_given? endpoint[:output] = block else - endpoint[:request_path] = opts[:path] if opts.has_key?(:path) + endpoint[:request_path] = opts[:path] if opts.key?(:path) end @endpoints[path] = endpoint @@ -44,7 +40,7 @@ module Middleman path, config[:request_path] ) - r.output = config[:output] if config.has_key?(:output) + r.output = config[:output] if config.key?(:output) r end end @@ -64,12 +60,10 @@ module Middleman end def render(*args, &block) - return self.output.call if self.output + return output.call if output end - def request_path - @request_path - end + attr_reader :request_path def binary? false diff --git a/middleman-core/lib/middleman-core/sitemap/extensions/traversal.rb b/middleman-core/lib/middleman-core/sitemap/extensions/traversal.rb index e1920f12..e24bd464 100644 --- a/middleman-core/lib/middleman-core/sitemap/extensions/traversal.rb +++ b/middleman-core/lib/middleman-core/sitemap/extensions/traversal.rb @@ -1,9 +1,6 @@ module Middleman - module Sitemap - module Extensions - module Traversal # This resource's parent resource # @return [Middleman::Sitemap::Resource, nil] @@ -28,14 +25,14 @@ module Middleman if eponymous_directory? base_path = eponymous_directory_path - prefix = %r|^#{base_path.sub("/", "\\/")}| + prefix = %r{^#{base_path.sub("/", "\\/")}} else base_path = path.sub("#{app.config[:index_file]}", '') - prefix = %r|^#{base_path.sub("/", "\\/")}| + prefix = %r{^#{base_path.sub("/", "\\/")}} end store.resources.select do |sub_resource| - if sub_resource.path == self.path || sub_resource.path !~ prefix + if sub_resource.path == path || sub_resource.path !~ prefix false else inner_path = sub_resource.path.sub(prefix, '') @@ -72,7 +69,7 @@ module Middleman return true end full_path = File.join(app.source_dir, eponymous_directory_path) - !!(File.exists?(full_path) && File.directory?(full_path)) + !!(File.exist?(full_path) && File.directory?(full_path)) end # The path for this resource if it were a directory, and not a file diff --git a/middleman-core/lib/middleman-core/sitemap/resource.rb b/middleman-core/lib/middleman-core/sitemap/resource.rb index f69429c8..03056fdd 100644 --- a/middleman-core/lib/middleman-core/sitemap/resource.rb +++ b/middleman-core/lib/middleman-core/sitemap/resource.rb @@ -4,10 +4,8 @@ require 'middleman-core/file_renderer' require 'middleman-core/template_renderer' module Middleman - # Sitemap namespace module Sitemap - # Sitemap Resource class class Resource include Middleman::Sitemap::Extensions::Traversal @@ -15,7 +13,7 @@ module Middleman # @return [Middleman::Application] attr_reader :app - delegate :logger, :instrument, :to => :app + delegate :logger, :instrument, to: :app # @return [Middleman::Sitemap::Store] attr_reader :store @@ -48,7 +46,7 @@ module Middleman @source_file = source_file @destination_path = @path - @local_metadata = { :options => {}, :locals => {} } + @local_metadata = { options: {}, locals: {} } end # Whether this resource has a template file @@ -89,27 +87,27 @@ module Middleman end def request_path - self.destination_path + destination_path end # Render this resource # @return [String] def render(opts={}, locs={}) - if !template? + unless template? return ::Middleman::FileRenderer.new(@app, source_file).get_template_data_for_file end relative_source = Pathname(source_file).relative_path_from(Pathname(app.root)) - instrument 'render.resource', :path => relative_source, :destination_path => destination_path do + instrument 'render.resource', path: relative_source, destination_path: destination_path do md = metadata.dup opts = md[:options].deep_merge(opts) locs = md[:locals].deep_merge(locs) - locs[:current_path] ||= self.destination_path + locs[:current_path] ||= destination_path # Certain output file types don't use layouts - if !opts.has_key?(:layout) - opts[:layout] = false if %w(.js .json .css .txt).include?(self.ext) + unless opts.key?(:layout) + opts[:layout] = false if %w(.js .json .css .txt).include?(ext) end renderer = ::Middleman::TemplateRenderer.new(@app, source_file) diff --git a/middleman-core/lib/middleman-core/sitemap/store.rb b/middleman-core/lib/middleman-core/sitemap/store.rb index be067c04..f5189a9b 100644 --- a/middleman-core/lib/middleman-core/sitemap/store.rb +++ b/middleman-core/lib/middleman-core/sitemap/store.rb @@ -10,10 +10,8 @@ require 'middleman-core/sitemap/extensions/proxies' require 'middleman-core/sitemap/extensions/ignores' module Middleman - # Sitemap namespace module Sitemap - # The Store class # # The Store manages a collection of Resource objects, which represent @@ -21,7 +19,6 @@ module Middleman # which is the path relative to the source directory, minus any template # extensions. All "path" parameters used in this class are source paths. class Store - # @return [Middleman::Application] attr_accessor :app @@ -33,7 +30,7 @@ module Middleman @_cached_metadata = {} @resource_list_manipulators = [] @needs_sitemap_rebuild = true - + @lock = Monitor.new reset_lookup_cache! @@ -57,7 +54,7 @@ module Middleman register_resource_list_manipulator(k, m.new(self)) end - app.config_context.class.send :delegate, :sitemap, :to => :app + app.config_context.class.send :delegate, :sitemap, to: :app end # Register a klass which can manipulate the main site map list. Best to register @@ -134,9 +131,9 @@ module Middleman # @param [String] source_file # @return [Hash] def metadata_for_file(source_file) - blank_metadata = { :options => {}, :locals => {} } + blank_metadata = { options: {}, locals: {} } - provides_metadata.inject(blank_metadata) do |result, (callback, matcher)| + provides_metadata.reduce(blank_metadata) do |result, (callback, matcher)| next result if matcher && !source_file.match(matcher) metadata = callback.call(source_file).dup @@ -162,9 +159,9 @@ module Middleman def metadata_for_path(request_path) return @_cached_metadata[request_path] if @_cached_metadata[request_path] - blank_metadata = { :options => {}, :locals => {} } + blank_metadata = { options: {}, locals: {} } - @_cached_metadata[request_path] = provides_metadata_for_path.inject(blank_metadata) do |result, (callback, matcher)| + @_cached_metadata[request_path] = provides_metadata_for_path.reduce(blank_metadata) do |result, (callback, matcher)| case matcher when Regexp next result unless request_path =~ matcher @@ -215,7 +212,7 @@ module Middleman @app.logger.debug '== Rebuilding resource list' - @resources = @resource_list_manipulators.inject([]) do |result, (_, inst)| + @resources = @resource_list_manipulators.reduce([]) do |result, (_, inst)| newres = inst.manipulate_resource_list(result) # Reset lookup cache diff --git a/middleman-core/lib/middleman-core/template_context.rb b/middleman-core/lib/middleman-core/template_context.rb index d06ca5f0..93d66090 100644 --- a/middleman-core/lib/middleman-core/template_context.rb +++ b/middleman-core/lib/middleman-core/template_context.rb @@ -6,7 +6,7 @@ module Middleman attr_reader :app attr_accessor :current_engine - delegate :config, :logger, :sitemap, :build?, :development?, :data, :extensions, :source_dir, :root, :to => :app + delegate :config, :logger, :sitemap, :build?, :development?, :data, :extensions, :source_dir, :root, to: :app def initialize(app, locs={}, opts={}) @app = app @@ -30,13 +30,13 @@ module Middleman # Save current buffer for later _buf_was = save_buffer - layout_path = ::Middleman::TemplateRenderer.locate_layout(@app, layout_name, self.current_engine) + layout_path = ::Middleman::TemplateRenderer.locate_layout(@app, layout_name, current_engine) extension = File.extname(layout_path) engine = extension[1..-1].to_sym # Store last engine for later (could be inside nested renders) - self.current_engine, engine_was = engine, self.current_engine + self.current_engine, engine_was = engine, current_engine begin content = if block_given? @@ -76,12 +76,12 @@ module Middleman resolve_opts[:preferred_engine] = File.extname(resource.source_file)[1..-1].to_sym # Look for partials relative to the current path - relative_dir = File.join(current_dir.sub(%r{^#{Regexp.escape(self.source_dir)}/?}, ''), data) + relative_dir = File.join(current_dir.sub(%r{^#{Regexp.escape(source_dir)}/?}, ''), data) found_partial = ::Middleman::TemplateRenderer.resolve_template(@app, relative_dir, resolve_opts) end - if !found_partial + unless found_partial partials_path = File.join(@app.config[:partials_dir], data) found_partial = ::Middleman::TemplateRenderer.resolve_template(@app, partials_path, resolve_opts) end diff --git a/middleman-core/lib/middleman-core/template_renderer.rb b/middleman-core/lib/middleman-core/template_renderer.rb index 3b0e4c02..cb3f1194 100644 --- a/middleman-core/lib/middleman-core/template_renderer.rb +++ b/middleman-core/lib/middleman-core/template_renderer.rb @@ -4,14 +4,12 @@ require 'middleman-core/template_context' require 'middleman-core/file_renderer' module Middleman - class TemplateRenderer - def self.cache @_cache ||= ::Tilt::Cache.new end - delegate :cache, :to => :"self.class" + delegate :cache, to: :"self.class" # Custom error class for handling class TemplateNotFound < RuntimeError; end @@ -73,7 +71,7 @@ module Middleman ::I18n.locale = old_locale if defined?(::I18n) end - protected + protected # Find a layout for a given engine # @@ -82,7 +80,7 @@ module Middleman # @return [String] def fetch_layout(engine, opts) # The layout name comes from either the system default or the options - local_layout = opts.has_key?(:layout) ? opts[:layout] : @app.config[:layout] + local_layout = opts.key?(:layout) ? opts[:layout] : @app.config[:layout] return false unless local_layout # Look for engine-specific options @@ -90,9 +88,9 @@ module Middleman # The engine for the layout can be set in options, engine_options or passed # into this method - layout_engine = if opts.has_key?(:layout_engine) + layout_engine = if opts.key?(:layout_engine) opts[:layout_engine] - elsif engine_options.has_key?(:layout_engine) + elsif engine_options.key?(:layout_engine) engine_options[:layout_engine] else engine @@ -131,7 +129,7 @@ module Middleman layout_path = false resolve_opts = {} - resolve_opts[:preferred_engine] = preferred_engine if !preferred_engine.nil? + resolve_opts[:preferred_engine] = preferred_engine unless preferred_engine.nil? # Check layouts folder layout_path = resolve_template(app, File.join(app.config[:layouts_dir], name.to_s), resolve_opts) @@ -167,7 +165,7 @@ module Middleman preferred_engines = ['*'] # If we're specifically looking for a preferred engine - if options.has_key?(:preferred_engine) + if options.key?(:preferred_engine) extension_class = ::Tilt[options[:preferred_engine]] matched_exts = [] @@ -202,7 +200,7 @@ module Middleman # If we found one, return it if found_path found_path - elsif File.exists?(on_disk_path) + elsif File.exist?(on_disk_path) on_disk_path else false diff --git a/middleman-core/lib/middleman-core/util.rb b/middleman-core/lib/middleman-core/util.rb index 51b0965d..3a06db02 100644 --- a/middleman-core/lib/middleman-core/util.rb +++ b/middleman-core/lib/middleman-core/util.rb @@ -14,7 +14,6 @@ require 'rack/mime' module Middleman module Util class << self - # Whether the source file is binary. # # @param [String] filename The file to check. @@ -27,7 +26,7 @@ module Middleman return false if Tilt.registered?(ext.sub('.', '')) - dot_ext = (ext.to_s[0] == ?.) ? ext.dup : ".#{ext}" + dot_ext = (ext.to_s[0] == '.') ? ext.dup : ".#{ext}" if mime = ::Rack::Mime.mime_type(dot_ext, nil) !nonbinary_mime?(mime) @@ -69,7 +68,7 @@ module Middleman # @return [String] def normalize_path(path) # The tr call works around a bug in Ruby's Unicode handling - path.sub(%r{^/}, '').tr('','') + path.sub(%r{^/}, '').tr('', '') end # This is a separate method from normalize_path in case we @@ -210,7 +209,7 @@ module Middleman def full_path(path, app) resource = app.sitemap.find_resource_by_destination_path(path) - if !resource + unless resource # Try it with /index.html at the end indexed_path = File.join(path.sub(%r{/$}, ''), app.config[:index_file]) resource = app.sitemap.find_resource_by_destination_path(indexed_path) @@ -294,7 +293,6 @@ module Middleman # hash.foo? #=> true # class HashWithIndifferentAccess < ::Hash #:nodoc: - def initialize(hash={}) super() hash.each do |key, value| @@ -315,7 +313,7 @@ module Middleman end def values_at(*indices) - indices.collect { |key| self[convert_key(key)] } + indices.map { |key| self[convert_key(key)] } end def merge(other) @@ -336,9 +334,9 @@ module Middleman protected - def convert_key(key) - key.is_a?(Symbol) ? key.to_s : key - end + def convert_key(key) + key.is_a?(Symbol) ? key.to_s : key + end # Magic predicates. For instance: # @@ -346,18 +344,18 @@ module Middleman # options.shebang # => "/usr/lib/local/ruby" # options.test_framework?(:rspec) # => options[:test_framework] == :rspec # - def method_missing(method, *args, &block) - method = method.to_s - if method =~ /^(\w+)\?$/ - if args.empty? - !!self[$1] - else - self[$1] == args.first - end + def method_missing(method, *args, &block) + method = method.to_s + if method =~ /^(\w+)\?$/ + if args.empty? + !!self[$1] else - self[method] + self[$1] == args.first end + else + self[method] end + end end end end diff --git a/middleman-templates/lib/middleman-templates.rb b/middleman-templates/lib/middleman-templates.rb index 65ca0a43..2179db6e 100644 --- a/middleman-templates/lib/middleman-templates.rb +++ b/middleman-templates/lib/middleman-templates.rb @@ -18,7 +18,7 @@ module Middleman # @param [Symbol] name The name of the template # @param [Class] klass The class to be executed for this template # @return [Hash] List of registered templates - def register(name = nil, klass = nil) + def register(name=nil, klass=nil) @_template_mappings ||= {} @_template_mappings[name] = klass if name && klass @_template_mappings @@ -97,10 +97,10 @@ if ENV['HOME'] # If a template.rb file is found require it (therefore registering the template) # else register the folder as a Local template (which when built, just copies the folder) - if File.exists?(template_file) + if File.exist?(template_file) require template_file else Middleman::Templates.register(File.basename(dir).to_sym, Middleman::Templates::Local) end end -end \ No newline at end of file +end