middleman-pry 0.0.4 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 26e99f396e29d15b3957ccfcd8ee9e9d57160b2c
4
- data.tar.gz: b2b66924d734a0d52f1a87013120f892c72bdc73
3
+ metadata.gz: bf442b7cbefccc45e381391c611925224346cd7b
4
+ data.tar.gz: 9dbe3c8c5bf29f997dc6609727f5eec2897eae3e
5
5
  SHA512:
6
- metadata.gz: 7534ab17eac6d5f4602a7bae9c6cb0e2461ec2c324fedfc4a2f74d9a13056696489bd36d0be7fa404d2114643d8ba70eb9e108313cc03e9d5d6f0cf7352f8bdb
7
- data.tar.gz: e92a92acb01ed26d6d164fff31283ef5218aea3eadf8fe5f1de45378bd4626f2a578fcab4501863cfff84bb9f594771638392f5ab1e1fb50c4171f3188fd9a5c
6
+ metadata.gz: 12fc96f682949f19ec87f5a66a4d3eeef855148353e37e1f9096083104728f9b73bbb7e288bfc93f6f48cf841552a13f38a8d781b644abee31dc7fe2f57a0481
7
+ data.tar.gz: 1b2af790a6872f8dcbdca9b18519737eaa489b2ee9e5e468d0ce004a84ab930c7ef5804db5918f032339b1df06f03f509c7d539ca0f3d453d4df735b3b6ff5f3
data/.gitignore CHANGED
@@ -1,8 +1,11 @@
1
- # Ignore bundler lock file
2
- /Gemfile.lock
3
-
4
- # Ignore pkg folder
5
- /pkg
1
+ # Appraisal
2
+ /gemfiles/*.gemfile.lock
6
3
 
7
4
  # Aruba
8
5
  /tmp
6
+
7
+ # Bundler
8
+ /Gemfile.lock
9
+
10
+ # RubyGems
11
+ /pkg
data/.travis.yml CHANGED
@@ -1,7 +1,17 @@
1
- env:
2
- - CUCUMBER_FORMAT=pretty
1
+ gemfile:
2
+ - gemfiles/middleman_3.3.gemfile
3
+ - gemfiles/middleman_3.4.gemfile
4
+ - gemfiles/middleman_3_unreleased.gemfile
5
+ - gemfiles/middleman_4.0.gemfile
6
+ - gemfiles/middleman_4.1.gemfile
7
+ - gemfiles/middleman_4_unreleased.gemfile
3
8
  language: ruby
9
+ matrix:
10
+ allow_failures:
11
+ - gemfile: gemfiles/middleman_3_unreleased.gemfile
12
+ - gemfile: gemfiles/middleman_4_unreleased.gemfile
4
13
  rvm:
5
- - 2.0.0
6
- - 2.1.2
14
+ - 2.1.8
15
+ - 2.2.4
16
+ - 2.3.0
7
17
  script: bundle exec rake test
data/Appraisals ADDED
@@ -0,0 +1,9 @@
1
+ middleman_3_unreleased = { github: 'middleman/middleman', branch: 'v3-stable' }
2
+ middleman_4_unreleased = { github: 'middleman/middleman', branch: 'master' }
3
+
4
+ appraise('middleman_3.3') { gem 'middleman', '~> 3.3.0' }
5
+ appraise('middleman_3.4') { gem 'middleman', '~> 3.4.0' }
6
+ appraise('middleman_3_unreleased') { gem 'middleman', middleman_3_unreleased }
7
+ appraise('middleman_4.0') { gem 'middleman', '~> 4.0.0' }
8
+ appraise('middleman_4.1') { gem 'middleman', '~> 4.1.0' }
9
+ appraise('middleman_4_unreleased') { gem 'middleman', middleman_4_unreleased }
data/Gemfile CHANGED
@@ -2,18 +2,11 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
- group :development do
6
- gem 'middleman', github: 'middleman/middleman', branch: 'v3-stable'
7
- gem 'rake'
8
- gem 'rdoc'
9
- gem 'travis'
10
- gem 'websocket-native'
11
- gem 'yard'
12
- end
5
+ gem 'middleman', github: 'middleman/middleman', branch: 'master'
13
6
 
14
7
  group :test do
15
- gem 'cucumber'
16
- gem 'fivemat'
17
- gem 'aruba'
18
- gem 'rspec'
8
+ gem 'appraisal', '~> 2.0'
9
+ gem 'aruba', '~> 0.13'
10
+ gem 'cucumber', '~> 2.0'
11
+ gem 'rspec', '~> 3.2'
19
12
  end
data/README.md CHANGED
@@ -8,50 +8,59 @@ Replaces [Middleman's][middleman] built-in console with [Pry][], à la
8
8
 
9
9
  ## Installation
10
10
 
11
- Add to your `Gemfile`:
11
+ Install the gem:
12
12
 
13
13
  ```ruby
14
+ # Gemfile
15
+
14
16
  gem 'middleman-pry'
15
17
  ```
16
18
 
17
- and run `bundle install`.
19
+ ```console
20
+ $ bundle install
21
+ ```
22
+
23
+ and activate the extension:
24
+
25
+ ```ruby
26
+ # config.rb
27
+
28
+ activate :pry
29
+ ```
18
30
 
19
31
  ## Usage
20
32
 
21
33
  Start the Middleman console like normal:
22
34
 
23
- ```shell
35
+ ```console
24
36
  $ middleman console
25
37
  ```
26
38
 
27
39
  You should find yourself in an interactive Pry session in the context of your
28
40
  Middleman app:
29
41
 
30
- ```
31
- #<Middleman::Application::MiddlemanApplication1>$ cd sitemap.resources.first
32
- #<Middleman::Sitemap::Resource>$ ls
33
- Middleman::Sitemap::Extensions::Traversal#methods:
34
- children eponymous_directory? parent
35
- directory_index? eponymous_directory_path siblings
36
- Middleman::Sitemap::Extensions::Proxies::ResourceInstanceMethods#methods:
37
- get_source_file proxied_to proxied_to_resource proxy? proxy_to
38
- Middleman::CoreExtensions::FrontMatter::ResourceInstanceMethods#methods:
39
- content_type data ignored? raw_data
42
+ ```console
43
+ middleman:~$ cd sitemap.resources.first
44
+ middleman:Middleman::Sitemap::Resource$ ls
40
45
  Middleman::Sitemap::Resource#methods:
41
- add_metadata destination_path= metadata source_file
42
- app ext path store
43
- binary? instrument render template?
44
- destination_path logger request_path url
45
- instance variables:
46
- @app @destination_path @local_metadata @path @source_file @store
47
- #<Middleman::Sitemap::Resource>$
46
+ add_metadata blog_controller= instrument request_path url
47
+ app destination_path logger source_file
48
+ binary? destination_path= metadata store
49
+ blog_controller ext path template?
50
+ Middleman::Blog::BlogArticle#methods:
51
+ blog_data default_summary_generator previous_article summary
52
+ blog_options inspect published? tags
53
+ body lang render title
54
+ date next_article slug
55
+ middleman:Middleman::Sitemap::Resource$ url
56
+ => "/use-pry-as-the-middleman-console/"
48
57
  ```
49
58
 
50
59
 
51
60
  [build-status]: https://travis-ci.org/AndrewKvalheim/middleman-pry
52
- [build-status-badge]: https://travis-ci.org/AndrewKvalheim/middleman-pry.png?branch=master
61
+ [build-status-badge]: https://travis-ci.org/AndrewKvalheim/middleman-pry.svg?branch=master
53
62
  [gem-version]: https://badge.fury.io/rb/middleman-pry
54
- [gem-version-badge]: https://badge.fury.io/rb/middleman-pry.png
63
+ [gem-version-badge]: https://badge.fury.io/rb/middleman-pry.svg
55
64
  [middleman]: http://middlemanapp.com/
56
65
  [pry]: http://pryrepl.org/
57
66
  [pry-rails]: https://github.com/rweng/pry-rails
data/Rakefile CHANGED
@@ -4,7 +4,7 @@ Bundler::GemHelper.install_tasks
4
4
  require 'cucumber/rake/task'
5
5
 
6
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'}"
7
+ t.cucumber_opts = '--color --tags ~@wip --strict'
8
8
  end
9
9
 
10
10
  require 'rake/clean'
@@ -1,9 +1,19 @@
1
1
  Feature: Console
2
2
 
3
- Scenario: The Middleman console command should open a Pry console.
4
- Given a fixture app "empty-app"
3
+ Scenario: The console is unaffected when the extension is inactive.
4
+ Given a fixture app "inactive"
5
5
  When I run `middleman console` interactively
6
- And I type "puts %{We're using #{_pry_.class}.};"
6
+ And I type "puts %{We're using #{ defined?(_pry_) ? 'Pry' : 'IRB' }.}"
7
+ And I type "exit"
8
+ Then it should pass with:
9
+ """
10
+ We're using IRB.
11
+ """
12
+
13
+ Scenario: The console is a Pry console.
14
+ Given a fixture app "typical"
15
+ When I run `middleman console` interactively
16
+ And I type "puts %{We're using #{ defined?(_pry_) ? 'Pry' : 'IRB' }.}"
7
17
  And I type "exit"
8
18
  Then it should pass with:
9
19
  """
@@ -1,4 +1,4 @@
1
1
  PROJECT_ROOT_PATH = File.dirname(File.dirname(File.dirname(__FILE__)))
2
- require "middleman-core"
3
- require "middleman-core/step_definitions"
2
+ require 'middleman-core'
3
+ require 'middleman-core/step_definitions'
4
4
  require File.join(PROJECT_ROOT_PATH, 'lib', 'middleman-pry')
File without changes
@@ -0,0 +1 @@
1
+ activate :pry
@@ -0,0 +1,14 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "middleman", "~> 3.3.0"
6
+
7
+ group :test do
8
+ gem "appraisal", "~> 2.0"
9
+ gem "aruba", "~> 0.13"
10
+ gem "cucumber", "~> 2.0"
11
+ gem "rspec", "~> 3.2"
12
+ end
13
+
14
+ gemspec :path => "../"
@@ -0,0 +1,14 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "middleman", "~> 3.4.0"
6
+
7
+ group :test do
8
+ gem "appraisal", "~> 2.0"
9
+ gem "aruba", "~> 0.13"
10
+ gem "cucumber", "~> 2.0"
11
+ gem "rspec", "~> 3.2"
12
+ end
13
+
14
+ gemspec :path => "../"
@@ -0,0 +1,14 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "middleman", :github => "middleman/middleman", :branch => "v3-stable"
6
+
7
+ group :test do
8
+ gem "appraisal", "~> 2.0"
9
+ gem "aruba", "~> 0.13"
10
+ gem "cucumber", "~> 2.0"
11
+ gem "rspec", "~> 3.2"
12
+ end
13
+
14
+ gemspec :path => "../"
@@ -0,0 +1,14 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "middleman", "~> 4.0.0"
6
+
7
+ group :test do
8
+ gem "appraisal", "~> 2.0"
9
+ gem "aruba", "~> 0.13"
10
+ gem "cucumber", "~> 2.0"
11
+ gem "rspec", "~> 3.2"
12
+ end
13
+
14
+ gemspec :path => "../"
@@ -0,0 +1,14 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "middleman", "~> 4.1.0"
6
+
7
+ group :test do
8
+ gem "appraisal", "~> 2.0"
9
+ gem "aruba", "~> 0.13"
10
+ gem "cucumber", "~> 2.0"
11
+ gem "rspec", "~> 3.2"
12
+ end
13
+
14
+ gemspec :path => "../"
@@ -0,0 +1,14 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "middleman", :github => "middleman/middleman", :branch => "master"
6
+
7
+ group :test do
8
+ gem "appraisal", "~> 2.0"
9
+ gem "aruba", "~> 0.13"
10
+ gem "cucumber", "~> 2.0"
11
+ gem "rspec", "~> 3.2"
12
+ end
13
+
14
+ gemspec :path => "../"
@@ -0,0 +1,39 @@
1
+ require 'middleman-core/cli'
2
+ require 'middleman-core/version'
3
+ require 'middleman-pry/interaction'
4
+ require 'middleman-pry/version'
5
+
6
+ module Middleman
7
+ module Pry
8
+ # Middleman extension
9
+ class Extension < ::Middleman::Extension
10
+ def initialize(app, **options_hash)
11
+ super
12
+
13
+ override_v4 || override_v3 || abort
14
+ end
15
+
16
+ private
17
+
18
+ def abort
19
+ message = "Middleman Pry #{Middleman::Pry::VERSION} is incompatible " \
20
+ "with Middleman #{Middleman::VERSION}. Please report this " \
21
+ "at https://github.com/AndrewKvalheim/middleman-pry/issues."
22
+
23
+ fail NotImplementedError, message
24
+ end
25
+
26
+ def override_v3
27
+ return unless Middleman::Cli::Console.private_method_defined?(:interact_with)
28
+
29
+ Middleman::Cli::Console.prepend Interaction
30
+ end
31
+
32
+ def override_v4
33
+ return unless Middleman::Cli::Console.respond_to?(:interact_with)
34
+
35
+ Middleman::Cli::Console.singleton_class.prepend Interaction
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,12 @@
1
+ require 'pry'
2
+
3
+ module Middleman
4
+ module Pry
5
+ # Methods for facilitating an interactive console
6
+ module Interaction
7
+ def interact_with(context)
8
+ context.pry
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Middleman
4
+ module Pry
5
+ VERSION = '1.0.0'.freeze
6
+ end
7
+ end
data/lib/middleman-pry.rb CHANGED
@@ -1,24 +1,7 @@
1
- require 'middleman-core/cli'
1
+ require 'middleman-core'
2
2
 
3
- # Override the built-in console command
4
- class Middleman::Cli::Console
5
- def console
6
- require 'middleman-core'
7
- require 'pry'
3
+ ::Middleman::Extensions.register :pry do
4
+ require 'middleman-pry/extension'
8
5
 
9
- instance_options = {
10
- :environment => options['environment'],
11
- :verbose => options['verbose']
12
- }
13
-
14
- @instance = ::Middleman::Application.server.inst do
15
- if instance_options[:environment]
16
- set :environment, instance_options[:environment].to_sym
17
- end
18
-
19
- ::Middleman::Logger.singleton(instance_options[:verbose] ? 0 : 1, false)
20
- end
21
-
22
- @instance.pry
23
- end
6
+ Middleman::Pry::Extension
24
7
  end
@@ -1,21 +1,36 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path('../lib', __FILE__)
1
+ $LOAD_PATH.push File.expand_path('../lib', __FILE__)
2
+
3
+ require 'middleman-pry/version'
3
4
 
4
5
  Gem::Specification.new do |gem|
6
+ # Identity
5
7
  gem.name = 'middleman-pry'
6
- gem.version = '0.0.4'
7
- gem.platform = Gem::Platform::RUBY
8
- gem.required_ruby_version = '~> 2.0'
8
+ gem.version = Middleman::Pry::VERSION
9
+ gem.summary = 'Use Pry as the Middleman console.'
10
+ gem.homepage = 'https://github.com/AndrewKvalheim/middleman-pry'
11
+
12
+ # License
9
13
  gem.license = 'MIT'
14
+
15
+ # Authorship
10
16
  gem.authors = ['Andrew Kvalheim']
11
17
  gem.email = ['Andrew@Kvalhe.im']
12
- gem.homepage = 'https://github.com/AndrewKvalheim/middleman-pry'
13
- gem.summary = %q{Use Pry as the Middleman console.}
14
18
 
19
+ # Content
15
20
  gem.files = `git ls-files -z`.split("\0")
16
- gem.test_files = gem.files.grep(%r{^(features|fixtures)/})
21
+ gem.test_files = gem.files.grep(/^(features|fixtures)\//)
17
22
  gem.require_paths = ['lib']
18
23
 
19
- gem.add_runtime_dependency 'middleman-core', '~> 3.2'
24
+ # Dependencies
25
+ gem.platform = Gem::Platform::RUBY
26
+ gem.required_ruby_version = '~> 2.0'
27
+ gem.add_runtime_dependency 'middleman', '>= 3.3', '< 5'
20
28
  gem.add_runtime_dependency 'pry', '~> 0.9'
29
+
30
+ # Development dependencies
31
+ gem.add_development_dependency 'rake'
32
+ gem.add_development_dependency 'rdoc'
33
+ gem.add_development_dependency 'travis'
34
+ gem.add_development_dependency 'websocket-native'
35
+ gem.add_development_dependency 'yard'
21
36
  end
metadata CHANGED
@@ -1,29 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-pry
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kvalheim
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-10 00:00:00.000000000 Z
11
+ date: 2016-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: middleman-core
14
+ name: middleman
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '3.3'
20
+ - - "<"
18
21
  - !ruby/object:Gem::Version
19
- version: '3.2'
22
+ version: '5'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
- version: '3.2'
29
+ version: '3.3'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '5'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: pry
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +44,76 @@ dependencies:
38
44
  - - "~>"
39
45
  - !ruby/object:Gem::Version
40
46
  version: '0.9'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: rdoc
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: travis
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ - !ruby/object:Gem::Dependency
90
+ name: websocket-native
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ - !ruby/object:Gem::Dependency
104
+ name: yard
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
41
117
  description:
42
118
  email:
43
119
  - Andrew@Kvalhe.im
@@ -47,14 +123,25 @@ extra_rdoc_files: []
47
123
  files:
48
124
  - ".gitignore"
49
125
  - ".travis.yml"
126
+ - Appraisals
50
127
  - Gemfile
51
128
  - LICENSE.md
52
129
  - README.md
53
130
  - Rakefile
54
131
  - features/console.feature
55
132
  - features/support/env.rb
56
- - fixtures/empty-app/config.rb
133
+ - fixtures/inactive/config.rb
134
+ - fixtures/typical/config.rb
135
+ - gemfiles/middleman_3.3.gemfile
136
+ - gemfiles/middleman_3.4.gemfile
137
+ - gemfiles/middleman_3_unreleased.gemfile
138
+ - gemfiles/middleman_4.0.gemfile
139
+ - gemfiles/middleman_4.1.gemfile
140
+ - gemfiles/middleman_4_unreleased.gemfile
57
141
  - lib/middleman-pry.rb
142
+ - lib/middleman-pry/extension.rb
143
+ - lib/middleman-pry/interaction.rb
144
+ - lib/middleman-pry/version.rb
58
145
  - lib/middleman_extension.rb
59
146
  - middleman-pry.gemspec
60
147
  homepage: https://github.com/AndrewKvalheim/middleman-pry
@@ -77,12 +164,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
77
164
  version: '0'
78
165
  requirements: []
79
166
  rubyforge_project:
80
- rubygems_version: 2.2.2
167
+ rubygems_version: 2.5.1
81
168
  signing_key:
82
169
  specification_version: 4
83
170
  summary: Use Pry as the Middleman console.
84
171
  test_files:
85
172
  - features/console.feature
86
173
  - features/support/env.rb
87
- - fixtures/empty-app/config.rb
174
+ - fixtures/inactive/config.rb
175
+ - fixtures/typical/config.rb
88
176
  has_rdoc: