middleman-cli 4.0.0.alpha.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: fb81795ee5330e47c002dfcea885c4b7f9062656
4
+ data.tar.gz: 23691687f4e83fcb26718a0ae1a3bf4d9240c362
5
+ SHA512:
6
+ metadata.gz: 02f67e50eae7d5f75d7be896966394d2f38e95ab52f7dab45b385b459424f1076eb8bed3fa167366aa1ebb58401d3e732b971ebb80089aeaa33ff13fd4469f56
7
+ data.tar.gz: 80763c9eb7070a441af32928ff52c5cec90838ee79fd3c001339e910b88eba3708bc99db4e31e72277f1a4cfa2a3944d0e5a32d38fec221bb416852ce5b53953
data/.gemtest ADDED
File without changes
data/.simplecov ADDED
@@ -0,0 +1,7 @@
1
+ SimpleCov.start do
2
+ add_filter '/fixtures/'
3
+ add_filter '/features/'
4
+ add_filter '/spec/'
5
+ add_filter '/step_definitions/'
6
+ add_filter '/lib/vendored-middleman-deps/'
7
+ end
data/.yardopts ADDED
@@ -0,0 +1,9 @@
1
+ lib/**/*.rb
2
+ --exclude lib/middleman-cli/templates/default/
3
+ --exclude lib/middleman-cli/templates/html5/
4
+ --exclude lib/middleman-cli/templates/mobile/
5
+ --exclude lib/middleman-cli/templates/shared/
6
+ --exclude lib/middleman-cli/templates/extension/
7
+ --no-private
8
+ --hide-void-return
9
+ --markup=markdown
data/Rakefile ADDED
@@ -0,0 +1,4 @@
1
+ # coding:utf-8
2
+ RAKE_ROOT = __FILE__
3
+ GEM_NAME = 'middleman-cli'
4
+ require File.expand_path(File.dirname(__FILE__) + '/../gem_rake_helper')
data/bin/middleman ADDED
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'middleman-core/profiling'
4
+ if ARGV.include? '--profile'
5
+ Middleman::Profiling.profiler = Middleman::Profiling::RubyProfProfiler.new
6
+ end
7
+ Middleman::Profiling.start
8
+
9
+ require "middleman-core/load_paths"
10
+ Middleman.setup_load_paths
11
+
12
+ require "middleman-cli"
13
+
14
+ # Change directory to the root
15
+ Dir.chdir(ENV["MM_ROOT"]) if ENV["MM_ROOT"]
16
+
17
+ # Start the CLI
18
+ Middleman::Cli::Base.start
data/features/.gitkeep ADDED
File without changes
data/fixtures/.gitkeep ADDED
File without changes
@@ -0,0 +1,96 @@
1
+ # rubocop:disable FileName
2
+
3
+ # Setup our load paths
4
+ libdir = File.expand_path(File.dirname(__FILE__))
5
+ $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
6
+
7
+ # Require Thor since that's what the whole CLI is built around
8
+ require 'thor'
9
+ require 'thor/group'
10
+
11
+ # CLI Module
12
+ module Middleman
13
+ module Cli
14
+ # The base task from which everything else extends
15
+ class Base < Thor
16
+ class << self
17
+ def start(*args)
18
+ # Change flag to a module
19
+ ARGV.unshift('help') if ARGV.delete('--help')
20
+
21
+ # Default command is server
22
+ if ARGV[0] != 'help' && (ARGV.length < 1 || ARGV.first.include?('-'))
23
+ ARGV.unshift('server')
24
+ end
25
+
26
+ super
27
+ end
28
+ end
29
+
30
+ desc 'version', 'Show version'
31
+ def version
32
+ say "Middleman #{Middleman::VERSION}"
33
+ end
34
+
35
+ desc 'help', 'Show help'
36
+
37
+ # Override the Thor help method to find help for subtasks
38
+ # @param [Symbol, String, nil] meth
39
+ # @param [Boolean] subcommand
40
+ # @return [void]
41
+ # rubocop:disable UnusedMethodArgument
42
+ def help(meth=nil, subcommand=false)
43
+ if meth && !self.respond_to?(meth)
44
+ klass, task = Thor::Util.find_class_and_task_by_namespace("#{meth}:#{meth}")
45
+ klass.start(['-h', task].compact, shell: shell)
46
+ else
47
+ list = []
48
+ Thor::Util.thor_classes_in(Middleman::Cli).each do |thor_class|
49
+ list += thor_class.printable_tasks(false)
50
+ end
51
+ list.sort! { |a, b| a[0] <=> b[0] }
52
+
53
+ shell.say 'Tasks:'
54
+ shell.print_table(list, ident: 2, truncate: true)
55
+ shell.say %(\nSee 'middleman help <command>' for more information on specific command.)
56
+ shell.say
57
+ end
58
+ end
59
+
60
+ # Intercept missing methods and search subtasks for them
61
+ # @param [Symbol] meth
62
+ def method_missing(meth, *args)
63
+ meth = meth.to_s
64
+ meth = self.class.map[meth] if self.class.map.key?(meth)
65
+
66
+ klass, task = Thor::Util.find_class_and_task_by_namespace("#{meth}:#{meth}")
67
+
68
+ if klass.nil?
69
+ tasks_dir = File.join(Dir.pwd, 'tasks')
70
+
71
+ if File.exist?(tasks_dir)
72
+ Dir[File.join(tasks_dir, '**/*_task.rb')].each { |f| require f }
73
+ klass, task = Thor::Util.find_class_and_task_by_namespace("#{meth}:#{meth}")
74
+ end
75
+ end
76
+
77
+ if klass.nil?
78
+ raise Thor::Error, "There's no '#{meth}' command for Middleman. Try 'middleman help' for a list of commands."
79
+ else
80
+ args.unshift(task) if task
81
+ klass.start(args, shell: shell)
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
87
+
88
+ # Require the Middleman version
89
+ require 'middleman-core/version'
90
+
91
+ # Include the core CLI items
92
+ require 'middleman-cli/init'
93
+ require 'middleman-cli/extension'
94
+ require 'middleman-cli/server'
95
+ require 'middleman-cli/build'
96
+ require 'middleman-cli/console'
@@ -0,0 +1,128 @@
1
+ # CLI Module
2
+ module Middleman::Cli
3
+ # The CLI Build class
4
+ class Build < Thor
5
+ include Thor::Actions
6
+
7
+ check_unknown_options!
8
+
9
+ namespace :build
10
+
11
+ desc 'build [options]', 'Builds the static site for deployment'
12
+ method_option :environment,
13
+ aliases: '-e',
14
+ default: ENV['MM_ENV'] || ENV['RACK_ENV'] || 'development',
15
+ desc: 'The environment Middleman will run under'
16
+ method_option :clean,
17
+ type: :boolean,
18
+ default: true,
19
+ desc: 'Remove orphaned files from build (--no-clean to disable)'
20
+ method_option :glob,
21
+ type: :string,
22
+ aliases: '-g',
23
+ default: nil,
24
+ desc: 'Build a subset of the project'
25
+ method_option :verbose,
26
+ type: :boolean,
27
+ default: false,
28
+ desc: 'Print debug messages'
29
+ method_option :instrument,
30
+ type: :string,
31
+ default: false,
32
+ desc: 'Print instrument messages'
33
+ method_option :profile,
34
+ type: :boolean,
35
+ default: false,
36
+ desc: 'Generate profiling report for the build'
37
+
38
+ # Core build Thor command
39
+ # @return [void]
40
+ def build
41
+ unless ENV['MM_ROOT']
42
+ raise Thor::Error, 'Error: Could not find a Middleman project config, perhaps you are in the wrong folder?'
43
+ end
44
+
45
+ require 'middleman-core'
46
+ require 'middleman-core/logger'
47
+ require 'middleman-core/builder'
48
+ require 'fileutils'
49
+
50
+ env = options['environment'].to_sym
51
+ verbose = options['verbose'] ? 0 : 1
52
+ instrument = options['instrument']
53
+
54
+ @app = ::Middleman::Application.new do
55
+ config[:mode] = :build
56
+ config[:environment] = env
57
+ config[:show_exceptions] = false
58
+ ::Middleman::Logger.singleton(verbose, instrument)
59
+ end
60
+
61
+ builder = Middleman::Builder.new(@app,
62
+ glob: options['glob'],
63
+ clean: options['clean'])
64
+
65
+ builder.on_build_event(&method(:on_event))
66
+
67
+ if builder.run!
68
+ clean_directories! if options['clean']
69
+ else
70
+ msg = 'There were errors during this build'
71
+ unless options['verbose']
72
+ msg << ', re-run with `middleman build --verbose` to see the full exception.'
73
+ end
74
+ shell.say msg, :red
75
+
76
+ exit(1)
77
+ end
78
+ end
79
+
80
+ # Tell Thor to send an exit status on a failure.
81
+ def self.exit_on_failure?
82
+ true
83
+ end
84
+
85
+ no_tasks do
86
+
87
+ # Handles incoming events from the builder.
88
+ # @param [Symbol] event_type The type of event.
89
+ # @param [String] contents The event contents.
90
+ # @param [String] extra The extra information.
91
+ # @return [void]
92
+ def on_event(event_type, target, extra=nil)
93
+ case event_type
94
+ when :error
95
+ say_status :error, target, :red
96
+ shell.say extra, :red if options['verbose']
97
+ when :deleted
98
+ say_status :remove, target, :green
99
+ when :created
100
+ say_status :create, target, :green
101
+ when :identical
102
+ say_status :identical, target, :blue
103
+ when :updated
104
+ say_status :updated, target, :yellow
105
+ else
106
+ say_status event_type, extra, :blue
107
+ end
108
+ end
109
+
110
+ # Find empty directories in the build folder and remove them.
111
+ # @return [Boolean]
112
+ def clean_directories!
113
+ all_build_files = File.join(@app.config[:build_dir], '**', '*')
114
+
115
+ empty_directories = Dir[all_build_files].select do |d|
116
+ File.directory?(d)
117
+ end
118
+
119
+ empty_directories.each do |d|
120
+ remove_file d, force: true if Pathname(d).children.empty?
121
+ end
122
+ end
123
+ end
124
+ end
125
+
126
+ # Alias "b" to "build"
127
+ Base.map('b' => 'build')
128
+ end
@@ -0,0 +1,46 @@
1
+ # CLI Module
2
+ module Middleman::Cli
3
+ # Alias "c" to "console"
4
+ Base.map(c: 'console')
5
+
6
+ # The CLI Console class
7
+ class Console < Thor
8
+ include Thor::Actions
9
+
10
+ check_unknown_options!
11
+
12
+ namespace :console
13
+
14
+ desc 'console [options]', 'Start an interactive console in the context of your Middleman application'
15
+ method_option :environment,
16
+ aliases: '-e',
17
+ default: ENV['MM_ENV'] || ENV['RACK_ENV'] || 'development',
18
+ desc: 'The environment Middleman will run under'
19
+ method_option :verbose,
20
+ type: :boolean,
21
+ default: false,
22
+ desc: 'Print debug messages'
23
+ def console
24
+ require 'middleman-core'
25
+ require 'irb'
26
+
27
+ opts = {
28
+ environment: options['environment'],
29
+ debug: options['verbose']
30
+ }
31
+
32
+ @app = ::Middleman::Application.server.inst do
33
+ config[:environment] = opts[:environment].to_sym if opts[:environment]
34
+
35
+ ::Middleman::Logger.singleton(opts[:debug] ? 0 : 1, opts[:instrumenting] || false)
36
+ end
37
+
38
+ # TODO: get file watcher / reload! working in console
39
+
40
+ IRB.setup nil
41
+ IRB.conf[:MAIN_CONTEXT] = IRB::Irb.new.context
42
+ require 'irb/ext/multi-irb'
43
+ IRB.irb nil, @app
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,42 @@
1
+ # CLI Module
2
+ module Middleman::Cli
3
+ # A thor task for creating new projects
4
+ class Extension < Thor
5
+ include Thor::Actions
6
+
7
+ check_unknown_options!
8
+
9
+ namespace :extension
10
+
11
+ # Required path for the new project to be generated
12
+ argument :name, type: :string
13
+
14
+ # Template files are relative to this file
15
+ # @return [String]
16
+ def self.source_root
17
+ File.join(File.dirname(__FILE__), 'templates')
18
+ end
19
+
20
+ desc 'extension [options]', 'Create Middleman extension scaffold NAME'
21
+ method_option 'skip-git',
22
+ type: :boolean,
23
+ default: false,
24
+ desc: 'Skip Git ignores and keeps'
25
+
26
+ # The extension task
27
+ # @param [String] name
28
+ def extension
29
+ copy_file 'extension/gitignore', File.join(name, '.gitignore') unless options[:'skip-git']
30
+ template 'extension/Rakefile', File.join(name, 'Rakefile')
31
+ template 'extension/gemspec', File.join(name, "#{name}.gemspec")
32
+ template 'extension/Gemfile', File.join(name, 'Gemfile')
33
+ template 'extension/lib/middleman_extension.rb', File.join(name, 'lib', 'middleman_extension.rb')
34
+ template 'extension/lib/lib.rb', File.join(name, 'lib', "#{name}.rb")
35
+ template 'extension/features/support/env.rb', File.join(name, 'features', 'support', 'env.rb')
36
+ empty_directory File.join(name, 'fixtures')
37
+ end
38
+
39
+ # Output a .gitignore file
40
+ class_option :git, type: :boolean, default: true
41
+ end
42
+ end
@@ -0,0 +1,85 @@
1
+ # CLI Module
2
+ module Middleman::Cli
3
+ # A thor task for creating new projects
4
+ class Init < Thor
5
+ include Thor::Actions
6
+ check_unknown_options!
7
+
8
+ namespace :init
9
+
10
+ desc 'init TARGET [options]', 'Create new project at TARGET'
11
+ method_option 'template',
12
+ aliases: '-T',
13
+ default: 'middleman/middleman-templates-default',
14
+ desc: 'Use a project template'
15
+
16
+ # Do not run bundle install
17
+ method_option 'skip-bundle',
18
+ type: :boolean,
19
+ aliases: '-B',
20
+ default: false,
21
+ desc: 'Skip bundle install'
22
+
23
+ # The init task
24
+ # @param [String] name
25
+ def init(target='.')
26
+ require 'tmpdir'
27
+
28
+ repo_path, repo_branch = if shortname?(options[:template])
29
+ require 'open-uri'
30
+ require 'json'
31
+
32
+ api = 'http://directory.middlemanapp.com/api'
33
+ uri = ::URI.parse("#{api}/#{options[:template]}.json")
34
+
35
+ begin
36
+ data = ::JSON.parse(uri.read)
37
+ data['links']['github']
38
+ data['links']['github'].split('#')
39
+ rescue ::OpenURI::HTTPError
40
+ puts "Template `#{options[:template]}` not found in Middleman Directory."
41
+ puts 'Did you mean to use a full `user/repo` path?'
42
+ exit
43
+ end
44
+ else
45
+ repo_name, repo_branch = options[:template].split('#')
46
+ [repository_path(repo_name), repo_branch]
47
+ end
48
+
49
+ Dir.mktmpdir do |dir|
50
+ cmd = repo_branch ? "clone -b #{repo_branch}" : 'clone'
51
+
52
+ run("git #{cmd} #{repo_path} #{dir}")
53
+
54
+ source_paths << dir
55
+
56
+ directory dir, target, exclude_pattern: /\.git\/|\.gitignore$/
57
+
58
+ inside(target) do
59
+ run('bundle install')
60
+ end unless ENV['TEST'] || options[:'skip-bundle']
61
+ end
62
+ end
63
+
64
+ protected
65
+
66
+ def shortname?(repo)
67
+ repo.split('/').length != 2
68
+ end
69
+
70
+ def repository_path(repo)
71
+ "git://github.com/#{repo}.git"
72
+ end
73
+ end
74
+
75
+ def self.exit_on_failure?
76
+ true
77
+ end
78
+
79
+ # Map "i", "new" and "n" to "init"
80
+ Base.map(
81
+ 'i' => 'init',
82
+ 'new' => 'init',
83
+ 'n' => 'init'
84
+ )
85
+ end
@@ -0,0 +1,82 @@
1
+ # CLI Module
2
+ module Middleman::Cli
3
+ # Server thor task
4
+ class Server < Thor
5
+ check_unknown_options!
6
+
7
+ namespace :server
8
+
9
+ desc 'server [options]', 'Start the preview server'
10
+ method_option :environment,
11
+ aliases: '-e',
12
+ default: ENV['MM_ENV'] || ENV['RACK_ENV'] || 'development',
13
+ desc: 'The environment Middleman will run under'
14
+ method_option :host,
15
+ type: :string,
16
+ aliases: '-h',
17
+ default: '0.0.0.0',
18
+ desc: 'Bind to HOST address'
19
+ method_option :port,
20
+ aliases: '-p',
21
+ default: '4567',
22
+ desc: 'The port Middleman will listen on'
23
+ method_option :verbose,
24
+ type: :boolean,
25
+ default: false,
26
+ desc: 'Print debug messages'
27
+ method_option :instrument,
28
+ type: :string,
29
+ default: false,
30
+ desc: 'Print instrument messages'
31
+ method_option :disable_watcher,
32
+ type: :boolean,
33
+ default: false,
34
+ desc: 'Disable the file change and delete watcher process'
35
+ method_option :profile,
36
+ type: :boolean,
37
+ default: false,
38
+ desc: 'Generate profiling report for server startup'
39
+ method_option :force_polling,
40
+ type: :boolean,
41
+ default: false,
42
+ desc: 'Force file watcher into polling mode'
43
+ method_option :latency,
44
+ type: :numeric,
45
+ aliases: '-l',
46
+ default: 0.25,
47
+ desc: 'Set file watcher latency, in seconds'
48
+
49
+ # Start the server
50
+ def server
51
+ require 'middleman-core'
52
+ require 'middleman-core/preview_server'
53
+
54
+ unless ENV['MM_ROOT']
55
+ puts '== Could not find a Middleman project config.rb'
56
+ exit
57
+ end
58
+
59
+ params = {
60
+ port: options['port'],
61
+ host: options['host'],
62
+ environment: options['environment'],
63
+ debug: options['verbose'],
64
+ instrumenting: options['instrument'],
65
+ disable_watcher: options['disable_watcher'],
66
+ reload_paths: options['reload_paths'],
67
+ force_polling: options['force_polling'],
68
+ latency: options['latency']
69
+ }
70
+
71
+ puts '== The Middleman is loading'
72
+ ::Middleman::PreviewServer.start(params)
73
+ end
74
+ end
75
+
76
+ def self.exit_on_failure?
77
+ true
78
+ end
79
+
80
+ # Map "s" to "server"
81
+ Base.map('s' => 'server')
82
+ end
@@ -0,0 +1,19 @@
1
+ # If you have OpenSSL installed, we recommend updating
2
+ # the following line to use "https"
3
+ source 'http://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in <%= name %>.gemspec
6
+ gemspec
7
+
8
+ group :development do
9
+ gem 'rake'
10
+ gem 'rdoc'
11
+ gem 'yard'
12
+ end
13
+
14
+ group :test do
15
+ gem 'cucumber'
16
+ gem 'fivemat'
17
+ gem 'aruba'
18
+ gem 'rspec'
19
+ end
@@ -0,0 +1,14 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'cucumber/rake/task'
5
+
6
+ Cucumber::Rake::Task.new(:cucumber, 'Run features that should pass') do |t|
7
+ t.cucumber_opts = "--color --tags ~@wip --strict --format #{ENV['CUCUMBER_FORMAT'] || 'Fivemat'}"
8
+ end
9
+
10
+ require 'rake/clean'
11
+
12
+ task test: ['cucumber']
13
+
14
+ task default: :test
@@ -0,0 +1,4 @@
1
+ PROJECT_ROOT_PATH = File.dirname(File.dirname(File.dirname(__FILE__)))
2
+ require 'middleman-core'
3
+ require 'middleman-core/step_definitions'
4
+ require File.join(PROJECT_ROOT_PATH, 'lib', '<%= name %>')
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "<%= name %>"
6
+ s.version = "0.0.1"
7
+ s.platform = Gem::Platform::RUBY
8
+ # s.authors = ["Your Name"]
9
+ # s.email = ["email@example.com"]
10
+ # s.homepage = "http://example.com"
11
+ # s.summary = %q{A short summary of your extension}
12
+ # s.description = %q{A longer description of your extension}
13
+
14
+ s.files = `git ls-files`.split("\n")
15
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
+ s.require_paths = ["lib"]
18
+
19
+ # The version of middleman-core your extension depends on
20
+ s.add_runtime_dependency("middleman-core", [">= <%= ::Middleman::VERSION %>"])
21
+
22
+ # Additional dependencies
23
+ # s.add_runtime_dependency("gem-name", "gem-version")
24
+ end
@@ -0,0 +1,5 @@
1
+ # Ignore bundler lock file
2
+ /Gemfile.lock
3
+
4
+ # Ignore pkg folder
5
+ /pkg
@@ -0,0 +1,38 @@
1
+ # Require core library
2
+ require 'middleman-core'
3
+
4
+ # Extension namespace
5
+ class MyExtension < ::Middleman::Extension
6
+ option :my_option, 'default', 'An example option'
7
+
8
+ def initialize(app, options_hash={}, &block)
9
+ # Call super to build options from the options_hash
10
+ super
11
+
12
+ # Require libraries only when activated
13
+ # require 'necessary/library'
14
+
15
+ # set up your extension
16
+ # puts options.my_option
17
+ end
18
+
19
+ def after_configuration
20
+ # Do something
21
+ end
22
+
23
+ # A Sitemap Manipulator
24
+ # def manipulate_resource_list(resources)
25
+ # end
26
+
27
+ # module do
28
+ # def a_helper
29
+ # end
30
+ # end
31
+ end
32
+
33
+ # Register extensions which can be activated
34
+ # Make sure we have the version of Middleman we expect
35
+ # Name param may be omited, it will default to underscored
36
+ # version of class name
37
+
38
+ # MyExtension.register(:my_extension)
@@ -0,0 +1 @@
1
+ require '<%= name %>'
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $LOAD_PATH.push File.expand_path('../lib', __FILE__)
3
+ require File.expand_path('../../middleman-core/lib/middleman-core/version', __FILE__)
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = 'middleman-cli'
7
+ s.version = Middleman::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.license = 'MIT'
10
+ s.authors = ['Thomas Reynolds', 'Ben Hollis']
11
+ s.email = ['me@tdreyno.com', 'ben@benhollis.net']
12
+ s.homepage = 'http://middlemanapp.com'
13
+ s.summary = 'Hand-crafted frontend development'
14
+ s.description = 'A static site generator. Provides dozens of templating languages (Haml, Sass, Compass, Slim, CoffeeScript, and more). Makes minification, compression, cache busting, Yaml data (and more) an easy part of your development cycle.'
15
+
16
+ s.files = `git ls-files -z`.split("\0")
17
+ s.test_files = `git ls-files -z -- {fixtures,features}/*`.split("\0")
18
+ s.executable = 'middleman'
19
+ s.require_path = 'lib'
20
+ s.required_ruby_version = '>= 1.9.3'
21
+
22
+ # CLI
23
+ s.add_dependency('thor', ['>= 0.17.0', '< 2.0'])
24
+ end
@@ -0,0 +1 @@
1
+ .gitkeep
File without changes
metadata ADDED
@@ -0,0 +1,95 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: middleman-cli
3
+ version: !ruby/object:Gem::Version
4
+ version: 4.0.0.alpha.2
5
+ platform: ruby
6
+ authors:
7
+ - Thomas Reynolds
8
+ - Ben Hollis
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-08-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: thor
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: 0.17.0
21
+ - - "<"
22
+ - !ruby/object:Gem::Version
23
+ version: '2.0'
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ version: 0.17.0
31
+ - - "<"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.0'
34
+ description: A static site generator. Provides dozens of templating languages (Haml,
35
+ Sass, Compass, Slim, CoffeeScript, and more). Makes minification, compression, cache
36
+ busting, Yaml data (and more) an easy part of your development cycle.
37
+ email:
38
+ - me@tdreyno.com
39
+ - ben@benhollis.net
40
+ executables:
41
+ - middleman
42
+ extensions: []
43
+ extra_rdoc_files: []
44
+ files:
45
+ - ".gemtest"
46
+ - ".simplecov"
47
+ - ".yardopts"
48
+ - Rakefile
49
+ - bin/middleman
50
+ - features/.gitkeep
51
+ - fixtures/.gitkeep
52
+ - lib/middleman-cli.rb
53
+ - lib/middleman-cli/build.rb
54
+ - lib/middleman-cli/console.rb
55
+ - lib/middleman-cli/extension.rb
56
+ - lib/middleman-cli/init.rb
57
+ - lib/middleman-cli/server.rb
58
+ - lib/middleman-cli/templates/extension/Gemfile
59
+ - lib/middleman-cli/templates/extension/Rakefile
60
+ - lib/middleman-cli/templates/extension/features/support/env.rb
61
+ - lib/middleman-cli/templates/extension/gemspec
62
+ - lib/middleman-cli/templates/extension/gitignore
63
+ - lib/middleman-cli/templates/extension/lib/lib.rb
64
+ - lib/middleman-cli/templates/extension/lib/middleman_extension.rb
65
+ - middleman-cli.gemspec
66
+ - spec/middleman/.gitkeep
67
+ - spec/spec_helper.rb
68
+ homepage: http://middlemanapp.com
69
+ licenses:
70
+ - MIT
71
+ metadata: {}
72
+ post_install_message:
73
+ rdoc_options: []
74
+ require_paths:
75
+ - lib
76
+ required_ruby_version: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: 1.9.3
81
+ required_rubygems_version: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">"
84
+ - !ruby/object:Gem::Version
85
+ version: 1.3.1
86
+ requirements: []
87
+ rubyforge_project:
88
+ rubygems_version: 2.2.2
89
+ signing_key:
90
+ specification_version: 4
91
+ summary: Hand-crafted frontend development
92
+ test_files:
93
+ - features/.gitkeep
94
+ - fixtures/.gitkeep
95
+ has_rdoc: