lurker 0.6.6 → 0.6.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.hound.yml +3 -0
- data/.rubocop.yml +3 -0
- data/.travis.yml +15 -5
- data/Appraisals +20 -0
- data/Gemfile +11 -7
- data/README.md +46 -19
- data/features/atom_persistent_within_the_same_type.feature +3 -2
- data/features/controller_nested_schema_scaffolding.feature +2 -1
- data/features/controller_schema_scaffolding.feature +2 -1
- data/features/dereferencing_through_inlining.feature +2 -1
- data/features/html_generation.feature +5 -4
- data/features/minitest.feature +3 -2
- data/features/multidomain_support.feature +5 -5
- data/features/multitype_request_support.feature +3 -2
- data/features/partials.feature +6 -5
- data/features/request_nested_schema_scaffolding.feature +3 -3
- data/features/request_schema_scaffolding.feature +3 -2
- data/features/schema_suffixes.feature +2 -2
- data/features/schema_updating_within_test_suite.feature +3 -2
- data/features/step_definitions/additional_cli_steps.rb +7 -1
- data/features/support/env.rb +13 -6
- data/features/test_endpoint.feature +2 -30
- data/gemfiles/rails_32.gemfile +27 -0
- data/gemfiles/rails_40.gemfile +27 -0
- data/gemfiles/rails_41.gemfile +27 -0
- data/gemfiles/rails_42.gemfile +27 -0
- data/lib/lurker.rb +1 -1
- data/lib/lurker/cli.rb +29 -31
- data/lib/lurker/server.rb +7 -6
- data/lib/lurker/spec_helper/rails.rb +2 -0
- data/lib/lurker/spy.rb +16 -2
- data/lib/lurker/templates/public/application.css +1 -5
- data/lib/lurker/templates/public/application.js +12 -12
- data/lib/lurker/version.rb +1 -1
- data/lurker-bw.svg +19 -0
- data/lurker.gemspec +12 -6
- data/tasks/deploy.rake +1 -1
- data/tasks/generate.rake +13 -6
- data/templates/generate_stuff.rb +15 -9
- data/templates/lurker_app.rb +3 -0
- metadata +35 -18
- metadata.gz.sig +0 -0
- data/gemfiles/Gemfile32.ci +0 -6
- data/gemfiles/Gemfile40.ci +0 -6
- data/gemfiles/Gemfile41.ci +0 -6
- data/lib/lurker/engine.rb +0 -14
- data/lib/lurker/templates/stylesheets/bootstrap.css +0 -5831
@@ -8,7 +8,6 @@ Feature: request nested schema scaffolding
|
|
8
8
|
require "spec_helper"
|
9
9
|
|
10
10
|
describe Api::V1::ReposController, :lurker do
|
11
|
-
|
12
11
|
let!(:user) do
|
13
12
|
User.where(name: 'razum2um').first_or_create!.tap do |u|
|
14
13
|
u.repos.first_or_create!(name: 'lurker')
|
@@ -16,7 +15,7 @@ Feature: request nested schema scaffolding
|
|
16
15
|
end
|
17
16
|
|
18
17
|
it "shows a user's repo" do
|
19
|
-
get "api/v1/users/#{user.id}/repos/#{user.repos.first.id}.json"
|
18
|
+
get "/api/v1/users/#{user.id}/repos/#{user.repos.first.id}.json"
|
20
19
|
expect(response).to be_success
|
21
20
|
end
|
22
21
|
end
|
@@ -62,9 +61,10 @@ Feature: request nested schema scaffolding
|
|
62
61
|
method: GET
|
63
62
|
path_info: "/api/v1/users/1/repos/1.json"
|
64
63
|
path_params:
|
65
|
-
action: show
|
66
64
|
controller: api/v1/repos
|
65
|
+
action: show
|
67
66
|
user_id: '1'
|
68
67
|
id: '1'
|
69
68
|
|
70
69
|
"""
|
70
|
+
|
@@ -19,7 +19,7 @@ Feature: request schema scaffolding
|
|
19
19
|
end
|
20
20
|
|
21
21
|
it "lists all the users" do
|
22
|
-
get "api/v1/users.json?limit=1"
|
22
|
+
get "/api/v1/users.json?limit=1"
|
23
23
|
expect(response).to be_success
|
24
24
|
expect(JSON.parse(response.body).size).to eq 1
|
25
25
|
end
|
@@ -72,9 +72,10 @@ Feature: request schema scaffolding
|
|
72
72
|
method: GET
|
73
73
|
path_info: "/api/v1/users.json"
|
74
74
|
path_params:
|
75
|
-
action: index
|
76
75
|
controller: api/v1/users
|
76
|
+
action: index
|
77
77
|
query_params:
|
78
78
|
limit: '1'
|
79
79
|
|
80
80
|
"""
|
81
|
+
|
@@ -49,8 +49,8 @@ Feature: schema suffixes
|
|
49
49
|
path_info: "/api/v1/users/razum2um/repos/lurker.json"
|
50
50
|
method: PATCH
|
51
51
|
path_params:
|
52
|
-
action: update
|
53
52
|
controller: api/v1/repos
|
53
|
+
action: update
|
54
54
|
user_id: razum2um
|
55
55
|
id: lurker
|
56
56
|
"""
|
@@ -120,8 +120,8 @@ Feature: schema suffixes
|
|
120
120
|
method: PATCH
|
121
121
|
suffix: 'failed'
|
122
122
|
path_params:
|
123
|
-
action: update
|
124
123
|
controller: api/v1/repos
|
124
|
+
action: update
|
125
125
|
user_id: razum2um
|
126
126
|
id: lurker
|
127
127
|
"""
|
@@ -54,9 +54,9 @@ Feature: schema updating within test suite
|
|
54
54
|
method: PATCH
|
55
55
|
path_info: "/api/v2/users/1"
|
56
56
|
path_params:
|
57
|
-
id: '1'
|
58
57
|
controller: api/v2/users
|
59
58
|
action: update
|
59
|
+
id: '1'
|
60
60
|
"""
|
61
61
|
|
62
62
|
Scenario: json schema tests response parameters and request parameters and show errors from both using "users/update"
|
@@ -166,8 +166,9 @@ Feature: schema updating within test suite
|
|
166
166
|
method: PATCH
|
167
167
|
path_info: "/api/v2/users/1"
|
168
168
|
path_params:
|
169
|
-
id: '1'
|
170
169
|
controller: api/v2/users
|
171
170
|
action: update
|
171
|
+
id: '1'
|
172
172
|
|
173
173
|
"""
|
174
|
+
|
@@ -6,10 +6,16 @@ Given /^a checked file "([^"]*)" with:$/ do |file_name, file_content|
|
|
6
6
|
end
|
7
7
|
|
8
8
|
Given /^an empty directory named "([^"]*)"$/ do |dir_name|
|
9
|
-
|
9
|
+
in_current_dir { _rm_rf(dir_name) }
|
10
10
|
create_dir(dir_name)
|
11
11
|
end
|
12
12
|
|
13
|
+
Given /^a service file with:$/ do |file_content|
|
14
|
+
in_current_dir do
|
15
|
+
write_file("#{Lurker::DEFAULT_SERVICE_PATH}/#{Rails.application.class.parent_name}#{Lurker::Service::SUFFIX}", file_content)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
13
19
|
When /^I go to "([^"]*)"$/ do |url|
|
14
20
|
visit(url)
|
15
21
|
end
|
data/features/support/env.rb
CHANGED
@@ -6,6 +6,14 @@ SimpleCov.start do
|
|
6
6
|
end
|
7
7
|
end
|
8
8
|
|
9
|
+
def example_path
|
10
|
+
if rails_version = ENV['BUNDLE_GEMFILE'].to_s.match(/rails_\d\d/)
|
11
|
+
File.expand_path("../../../tmp/lurker_app_#{rails_version}", __FILE__)
|
12
|
+
else
|
13
|
+
raise "Use `appraisal rails-XY cucumber ...` or export BUNDLE_GEMFILE=gemfiles/... explicitly"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
9
17
|
require 'fileutils'
|
10
18
|
require 'aruba/cucumber'
|
11
19
|
|
@@ -16,7 +24,7 @@ require 'capybara'
|
|
16
24
|
require 'capybara/dsl'
|
17
25
|
require 'capybara/cucumber'
|
18
26
|
require 'capybara/poltergeist'
|
19
|
-
require
|
27
|
+
require "#{example_path}/config/environment"
|
20
28
|
require 'database_cleaner'
|
21
29
|
require 'database_cleaner/cucumber'
|
22
30
|
|
@@ -34,15 +42,14 @@ Aruba.configure do |config|
|
|
34
42
|
end
|
35
43
|
|
36
44
|
Before do
|
37
|
-
@dirs = [
|
45
|
+
@dirs = [example_path]
|
38
46
|
@aruba_timeout_seconds = 30
|
39
47
|
DatabaseCleaner.start
|
40
48
|
if ENV['CLEAN']
|
41
49
|
system "bin/spring stop"
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
FileUtils.rm_rf File.expand_path('../../../tmp/lurker_app/spec/controllers', __FILE__)
|
50
|
+
%w[lurker html public/lurker spec/requests spec/controllers].each do |dir_name|
|
51
|
+
in_current_dir { _rm_rf(dir_name) }
|
52
|
+
end
|
46
53
|
end
|
47
54
|
end
|
48
55
|
|
@@ -48,8 +48,8 @@ Feature: test endpoint
|
|
48
48
|
path_info: "/api/v1/users/1"
|
49
49
|
method: PATCH
|
50
50
|
path_params:
|
51
|
-
action: update
|
52
51
|
controller: api/v1/users
|
52
|
+
action: update
|
53
53
|
id: 1
|
54
54
|
"""
|
55
55
|
|
@@ -75,35 +75,6 @@ Feature: test endpoint
|
|
75
75
|
When I run `bin/rspec spec/controllers/api/v1/users_controller_spec.rb`
|
76
76
|
Then the example should pass
|
77
77
|
|
78
|
-
Scenario: json schema tests request parameters and tell what fails using "users/update"
|
79
|
-
Given a file named "spec/controllers/api/v1/users_controller_spec.rb" with:
|
80
|
-
"""ruby
|
81
|
-
require "spec_helper"
|
82
|
-
|
83
|
-
describe Api::V1::UsersController, :lurker do
|
84
|
-
render_views
|
85
|
-
|
86
|
-
let(:user) do
|
87
|
-
User.where(name: 'razum2um').first_or_create!
|
88
|
-
end
|
89
|
-
|
90
|
-
it "updates a user" do
|
91
|
-
patch :update, id: user.id, user: { name: 1 }, format: 'json'
|
92
|
-
expect(response).to be_success
|
93
|
-
end
|
94
|
-
end
|
95
|
-
"""
|
96
|
-
|
97
|
-
When I run `bin/rspec spec/controllers/api/v1/users_controller_spec.rb`
|
98
|
-
Then the output should contain failures:
|
99
|
-
"""
|
100
|
-
Lurker::ValidationError:
|
101
|
-
Response
|
102
|
-
The property '#/name' of type Fixnum did not match the following type: string
|
103
|
-
|
104
|
-
1 example, 1 failure
|
105
|
-
"""
|
106
|
-
|
107
78
|
Scenario: json schema tests response parameters and tell what fails using "users/update"
|
108
79
|
Given a file named "spec/controllers/api/v1/users_controller_blank_spec.rb" with:
|
109
80
|
"""ruby
|
@@ -132,3 +103,4 @@ Feature: test endpoint
|
|
132
103
|
|
133
104
|
1 example, 1 failure
|
134
105
|
"""
|
106
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
gem "rails", "~> 3.2.21"
|
6
|
+
|
7
|
+
group :development do
|
8
|
+
gem "pry-byebug", :platforms => [:mri_20, :mri_21, :mri_22]
|
9
|
+
gem "pry-debugger", :platforms => :mri_19
|
10
|
+
gem "pry-stack_explorer", :platform => :mri
|
11
|
+
gem "pry-session", :platform => :mri
|
12
|
+
gem "fuubar"
|
13
|
+
gem "fuubar-cucumber"
|
14
|
+
gem "selenium-webdriver"
|
15
|
+
gem "highline"
|
16
|
+
gem "appraisal", :github => "razum2um/appraisal", :branch => "master"
|
17
|
+
gem "sprockets"
|
18
|
+
gem "uglifier"
|
19
|
+
gem "sass-rails"
|
20
|
+
gem "coffee-rails"
|
21
|
+
gem "bootstrap-sass", "~> 3.3.3"
|
22
|
+
gem "jquery-rails"
|
23
|
+
gem "remotipart"
|
24
|
+
gem "launchy"
|
25
|
+
end
|
26
|
+
|
27
|
+
gemspec :path => "../"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
gem "rails", "~> 4.0.13"
|
6
|
+
|
7
|
+
group :development do
|
8
|
+
gem "pry-byebug", :platforms => [:mri_20, :mri_21, :mri_22]
|
9
|
+
gem "pry-debugger", :platforms => :mri_19
|
10
|
+
gem "pry-stack_explorer", :platform => :mri
|
11
|
+
gem "pry-session", :platform => :mri
|
12
|
+
gem "fuubar"
|
13
|
+
gem "fuubar-cucumber"
|
14
|
+
gem "selenium-webdriver"
|
15
|
+
gem "highline"
|
16
|
+
gem "appraisal", :github => "razum2um/appraisal", :branch => "master"
|
17
|
+
gem "sprockets"
|
18
|
+
gem "uglifier"
|
19
|
+
gem "sass-rails"
|
20
|
+
gem "coffee-rails"
|
21
|
+
gem "bootstrap-sass", "~> 3.3.3"
|
22
|
+
gem "jquery-rails"
|
23
|
+
gem "remotipart"
|
24
|
+
gem "launchy"
|
25
|
+
end
|
26
|
+
|
27
|
+
gemspec :path => "../"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
gem "rails", "~> 4.1.9"
|
6
|
+
|
7
|
+
group :development do
|
8
|
+
gem "pry-byebug", :platforms => [:mri_20, :mri_21, :mri_22]
|
9
|
+
gem "pry-debugger", :platforms => :mri_19
|
10
|
+
gem "pry-stack_explorer", :platform => :mri
|
11
|
+
gem "pry-session", :platform => :mri
|
12
|
+
gem "fuubar"
|
13
|
+
gem "fuubar-cucumber"
|
14
|
+
gem "selenium-webdriver"
|
15
|
+
gem "highline"
|
16
|
+
gem "appraisal", :github => "razum2um/appraisal", :branch => "master"
|
17
|
+
gem "sprockets"
|
18
|
+
gem "uglifier"
|
19
|
+
gem "sass-rails"
|
20
|
+
gem "coffee-rails"
|
21
|
+
gem "bootstrap-sass", "~> 3.3.3"
|
22
|
+
gem "jquery-rails"
|
23
|
+
gem "remotipart"
|
24
|
+
gem "launchy"
|
25
|
+
end
|
26
|
+
|
27
|
+
gemspec :path => "../"
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
gem "rails", "~> 4.2.0"
|
6
|
+
|
7
|
+
group :development do
|
8
|
+
gem "pry-byebug", :platforms => [:mri_20, :mri_21, :mri_22]
|
9
|
+
gem "pry-debugger", :platforms => :mri_19
|
10
|
+
gem "pry-stack_explorer", :platform => :mri
|
11
|
+
gem "pry-session", :platform => :mri
|
12
|
+
gem "fuubar"
|
13
|
+
gem "fuubar-cucumber"
|
14
|
+
gem "selenium-webdriver"
|
15
|
+
gem "highline"
|
16
|
+
gem "appraisal", :github => "razum2um/appraisal", :branch => "master"
|
17
|
+
gem "sprockets"
|
18
|
+
gem "uglifier"
|
19
|
+
gem "sass-rails"
|
20
|
+
gem "coffee-rails"
|
21
|
+
gem "bootstrap-sass", "~> 3.3.3"
|
22
|
+
gem "jquery-rails"
|
23
|
+
gem "remotipart"
|
24
|
+
gem "launchy"
|
25
|
+
end
|
26
|
+
|
27
|
+
gemspec :path => "../"
|
data/lib/lurker.rb
CHANGED
@@ -85,10 +85,10 @@ require 'lurker/json/schema/extensions'
|
|
85
85
|
require 'lurker/json/schema/response_codes'
|
86
86
|
require 'lurker/json/schema/reference'
|
87
87
|
require 'lurker/spy'
|
88
|
+
require 'lurker/server'
|
88
89
|
require 'lurker/request'
|
89
90
|
require 'lurker/response'
|
90
91
|
|
91
92
|
if defined? Rails
|
92
|
-
require 'lurker/engine'
|
93
93
|
require 'lurker/sandbox'
|
94
94
|
end
|
data/lib/lurker/cli.rb
CHANGED
@@ -1,15 +1,13 @@
|
|
1
1
|
require 'thor'
|
2
2
|
require 'execjs'
|
3
3
|
require 'digest/sha1'
|
4
|
-
require 'lurker
|
4
|
+
require 'lurker'
|
5
|
+
require 'active_support/inflector'
|
5
6
|
|
6
7
|
module Lurker
|
7
8
|
# A Thor::Error to be thrown when an lurker directory is not found
|
8
9
|
class NotFound < Thor::Error; end
|
9
10
|
|
10
|
-
# A Thor::Error to be thrown when an lurker output destination is unavailable
|
11
|
-
class NotADirectory < Thor::Error; end
|
12
|
-
|
13
11
|
# A Thor definition for an lurker to HTML conversion operation
|
14
12
|
class Cli < Thor
|
15
13
|
include Thor::Actions
|
@@ -28,8 +26,8 @@ module Lurker
|
|
28
26
|
method_option :rails, :type => :boolean, :desc => "Includes Rails environment"
|
29
27
|
method_option :exclude, :aliases => "-e", :desc => "Select endpoints by given regexp, if NOT matching prefix"
|
30
28
|
method_option :select, :aliases => "-s", :desc => "Select endpoints by given regexp, matching prefix"
|
31
|
-
method_option :output, :aliases => "-o", :desc => "Output path"
|
32
|
-
method_option :url_base_path, :aliases => "-u", :desc => "URL base path"
|
29
|
+
method_option :output, :aliases => "-o", :desc => "Output path", :default => "public"
|
30
|
+
method_option :url_base_path, :aliases => "-u", :desc => "URL base path", :default => Lurker::DEFAULT_URL_BASE
|
33
31
|
method_option :format, :aliases => "-f", :desc => "Format in html or pdf, defaults to html", :default => "html"
|
34
32
|
method_option :templates, :aliases => "-t", :desc => "Template overrides path"
|
35
33
|
method_option :content, :aliases => "-c", :desc => "Content to be rendered into html-docs main page"
|
@@ -41,8 +39,7 @@ module Lurker
|
|
41
39
|
raise Lurker::NotFound.new(origin_path) unless has_valid_origin?
|
42
40
|
say_status :using, lurker_path
|
43
41
|
|
44
|
-
|
45
|
-
raise Lurker::NotADirectory.new(output_path) unless has_valid_destination?
|
42
|
+
FileUtils.mkdir_p(output_path)
|
46
43
|
say_status :inside, output_path
|
47
44
|
|
48
45
|
if options[:rails]
|
@@ -60,7 +57,7 @@ module Lurker
|
|
60
57
|
def convert_to_pdf
|
61
58
|
Lurker.safe_require('pdfkit')
|
62
59
|
css = File.expand_path('application.css', self.class.precompiled_static_root)
|
63
|
-
|
60
|
+
inside(output_path) do
|
64
61
|
service_presenters.each do |service_presenter|
|
65
62
|
html = "<html><body>"
|
66
63
|
service_presenter.endpoints.each do |endpoint_prefix_group|
|
@@ -71,13 +68,14 @@ module Lurker
|
|
71
68
|
html << "</body></html>"
|
72
69
|
kit = PDFKit.new(html, :page_size => 'Letter')
|
73
70
|
kit.stylesheets << css
|
74
|
-
|
71
|
+
url_name = ActiveSupport::Inflector.parameterize(service_presenter.name, '_')
|
72
|
+
create_file("#{url_name}.pdf", kit.to_pdf, force: true)
|
75
73
|
end
|
76
74
|
end
|
77
75
|
end
|
78
76
|
|
79
77
|
def convert_to_html
|
80
|
-
|
78
|
+
inside(output_path) do
|
81
79
|
# js, css, fonts
|
82
80
|
static = []
|
83
81
|
Dir["#{self.class.precompiled_static_root}/*"].each do |fname|
|
@@ -85,11 +83,10 @@ module Lurker
|
|
85
83
|
sha1 = Digest::SHA1.hexdigest(open(fname).read)
|
86
84
|
html_options.merge! match[1] => sha1
|
87
85
|
static << (new_name = "application-#{sha1}.#{match[1]}")
|
88
|
-
|
89
|
-
|
90
|
-
spawn "cat #{to} | gzip -9 > #{to}.gz"
|
86
|
+
FileUtils.cp_r fname, new_name
|
87
|
+
spawn "cat #{new_name} | gzip -9 > #{new_name}.gz"
|
91
88
|
else
|
92
|
-
FileUtils.cp_r fname,
|
89
|
+
FileUtils.cp_r fname, Pathname.new(fname).basename.to_s
|
93
90
|
end
|
94
91
|
end
|
95
92
|
|
@@ -117,12 +114,17 @@ module Lurker
|
|
117
114
|
end
|
118
115
|
|
119
116
|
def output_path
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
117
|
+
"#{output_prefix}/#{url_base_path}"
|
118
|
+
end
|
119
|
+
|
120
|
+
def output_prefix
|
121
|
+
if explicit = options[:output]
|
122
|
+
explicit.sub(/\/?#{url_base_path}\/?$/, '')
|
123
|
+
elsif File.exists? "public"
|
124
|
+
"public"
|
125
|
+
else
|
126
|
+
raise "Please, run it from `Rails.root` or pass `-o` option"
|
127
|
+
end
|
126
128
|
end
|
127
129
|
|
128
130
|
def template_path
|
@@ -138,10 +140,6 @@ module Lurker
|
|
138
140
|
origin.directory?
|
139
141
|
end
|
140
142
|
|
141
|
-
def has_valid_destination?
|
142
|
-
!destination.exist? || destination.directory?
|
143
|
-
end
|
144
|
-
|
145
143
|
def service_presenters
|
146
144
|
@service_presenters ||= services.map do |service|
|
147
145
|
Lurker::ServicePresenter.new(service, html_options, &filtering_block)
|
@@ -170,9 +168,9 @@ module Lurker
|
|
170
168
|
def html_options
|
171
169
|
@html_options ||= {
|
172
170
|
:static_html => true,
|
173
|
-
:url_base_path =>
|
171
|
+
:url_base_path => url_base_path.prepend('/'),
|
174
172
|
:template_directory => template_path,
|
175
|
-
:html_directory =>
|
173
|
+
:html_directory => output_path,
|
176
174
|
:content => self.content,
|
177
175
|
:footer => (`git rev-parse --short HEAD`.to_s.strip rescue ""),
|
178
176
|
:lurker => gem_info
|
@@ -182,6 +180,10 @@ module Lurker
|
|
182
180
|
|
183
181
|
private
|
184
182
|
|
183
|
+
def url_base_path
|
184
|
+
options[:url_base_path].presence.try(:strip).try(:sub, /^\/+/, '') || Lurker::DEFAULT_URL_BASE
|
185
|
+
end
|
186
|
+
|
185
187
|
def gem_info
|
186
188
|
spec = if Bundler.respond_to? :locked_gems
|
187
189
|
Bundler.locked_gems.specs.select { |s| s.name == 'lurker' } .first # 1.6
|
@@ -217,9 +219,5 @@ module Lurker
|
|
217
219
|
def origin
|
218
220
|
Pathname.new(origin_path)
|
219
221
|
end
|
220
|
-
|
221
|
-
def destination
|
222
|
-
Pathname.new(destination_root)
|
223
|
-
end
|
224
222
|
end
|
225
223
|
end
|