lurker 0.6.1 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.hound.yml +62 -0
- data/.rubocop.yml +62 -0
- data/Gemfile +1 -1
- data/Rakefile +2 -268
- data/features/atom_persistent_within_the_same_type.feature +0 -2
- data/features/controller_nested_schema_scaffolding.feature +0 -1
- data/features/controller_schema_scaffolding.feature +0 -1
- data/features/html_generation.feature +0 -1
- data/features/minitest.feature +0 -2
- data/features/multidomain_support.feature +0 -1
- data/features/multitype_request_support.feature +0 -2
- data/features/partials.feature +0 -1
- data/features/request_nested_schema_scaffolding.feature +0 -1
- data/features/request_schema_scaffolding.feature +0 -1
- data/features/schema_suffixes.feature +0 -1
- data/features/schema_updating_within_test_suite.feature +37 -2
- data/features/test_endpoint.feature +0 -1
- data/lib/lurker.rb +5 -1
- data/lib/lurker/endpoint.rb +121 -176
- data/lib/lurker/endpoint/http_parameters.rb +77 -0
- data/lib/lurker/endpoint/response_codes.rb +42 -0
- data/lib/lurker/erb_schema_context.rb +8 -6
- data/lib/lurker/jaml_descriptor.rb +8 -1
- data/lib/lurker/json_schema_hash.rb +48 -0
- data/lib/lurker/presenters/base_presenter.rb +1 -2
- data/lib/lurker/presenters/endpoint_presenter.rb +17 -10
- data/lib/lurker/presenters/json_presenter.rb +6 -6
- data/lib/lurker/presenters/schema_presenter.rb +15 -14
- data/lib/lurker/presenters/service_presenter.rb +5 -6
- data/lib/lurker/rendering_controller.rb +0 -1
- data/lib/lurker/request.rb +3 -1
- data/lib/lurker/sandbox.rb +0 -1
- data/lib/lurker/schema_modifier.rb +4 -2
- data/lib/lurker/schema_modifier/atom.rb +14 -5
- data/lib/lurker/server.rb +4 -5
- data/lib/lurker/service.rb +3 -4
- data/lib/lurker/spec_helper/rspec.rb +15 -57
- data/lib/lurker/spy.rb +9 -5
- data/lib/lurker/templates/layouts/_sidemenu.html.erb +1 -1
- data/lib/lurker/templates/lurker/rendering/show.html.erb +5 -1
- data/lib/lurker/templates/public/application.css +2 -2
- data/lib/lurker/templates/stylesheets/docs.css +0 -1
- data/lib/lurker/utils.rb +18 -0
- data/lib/lurker/validator.rb +3 -6
- data/lib/lurker/version.rb +1 -1
- data/tasks/build.rake +57 -0
- data/tasks/deploy.rake +139 -0
- data/tasks/generate.rake +78 -0
- data/templates/generate_stuff.rb +4 -4
- data/templates/lurker_app.rb +1 -1
- metadata +9 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 434f91796b5945b641bb46e3c89a336a3e7e0393
|
4
|
+
data.tar.gz: b1fbb76bebd71b403470dd80dc31f350a53b364d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c23242ced7fa8084458d50cc4b8f405c0fa72f5111ff26a7c695a4901d301515199cdebf086fb3a30acf4f32e4f03ae540ec31192fb5f62bcead79e57249d8cb
|
7
|
+
data.tar.gz: ae52d6101d2093832c6b8c1fa44391218589460e0deb98bc9526c900bcf4796660c35f1838c1da51ce70bfd708117841234f1934a457d9cef79293ce804baa4b
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/.hound.yml
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
AllCops:
|
2
|
+
Exclude:
|
3
|
+
- 'tmp/**/*'
|
4
|
+
- 'templates/rails32_http_patch_support.rb'
|
5
|
+
|
1
6
|
StringLiterals:
|
2
7
|
Enabled: false
|
3
8
|
|
@@ -13,3 +18,60 @@ MultilineTernaryOperator:
|
|
13
18
|
LineLength:
|
14
19
|
Enabled: false
|
15
20
|
|
21
|
+
RedundantSelf:
|
22
|
+
Enabled: false
|
23
|
+
|
24
|
+
GuardClause:
|
25
|
+
Enabled: false
|
26
|
+
|
27
|
+
Next:
|
28
|
+
Enabled: false
|
29
|
+
|
30
|
+
SpaceAroundEqualsInParameterDefault:
|
31
|
+
Enabled: false
|
32
|
+
|
33
|
+
AssignmentInCondition:
|
34
|
+
Enabled: false
|
35
|
+
|
36
|
+
Documentation:
|
37
|
+
Enabled: false
|
38
|
+
|
39
|
+
HashSyntax:
|
40
|
+
Enabled: false
|
41
|
+
|
42
|
+
PercentLiteralDelimiters:
|
43
|
+
Enabled: false
|
44
|
+
|
45
|
+
UnneededPercentQ:
|
46
|
+
Enabled: false
|
47
|
+
|
48
|
+
Blocks:
|
49
|
+
Enabled: false
|
50
|
+
|
51
|
+
DoubleNegation:
|
52
|
+
Enabled: false
|
53
|
+
|
54
|
+
CaseEquality:
|
55
|
+
Enabled: false
|
56
|
+
|
57
|
+
SpecialGlobalVars:
|
58
|
+
Enabled: false
|
59
|
+
|
60
|
+
UnusedMethodArgument:
|
61
|
+
Enabled: false
|
62
|
+
|
63
|
+
UnusedBlockArgument:
|
64
|
+
Enabled: false
|
65
|
+
|
66
|
+
CollectionMethods:
|
67
|
+
Enabled: false
|
68
|
+
|
69
|
+
TrivialAccessors:
|
70
|
+
Enabled: false
|
71
|
+
|
72
|
+
IndentationWidth:
|
73
|
+
Enabled: false
|
74
|
+
|
75
|
+
IndentHash:
|
76
|
+
Enabled: false
|
77
|
+
|
data/.rubocop.yml
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
AllCops:
|
2
|
+
Exclude:
|
3
|
+
- 'tmp/**/*'
|
4
|
+
- 'templates/rails32_http_patch_support.rb'
|
5
|
+
|
1
6
|
StringLiterals:
|
2
7
|
Enabled: false
|
3
8
|
|
@@ -13,3 +18,60 @@ MultilineTernaryOperator:
|
|
13
18
|
LineLength:
|
14
19
|
Enabled: false
|
15
20
|
|
21
|
+
RedundantSelf:
|
22
|
+
Enabled: false
|
23
|
+
|
24
|
+
GuardClause:
|
25
|
+
Enabled: false
|
26
|
+
|
27
|
+
Next:
|
28
|
+
Enabled: false
|
29
|
+
|
30
|
+
SpaceAroundEqualsInParameterDefault:
|
31
|
+
Enabled: false
|
32
|
+
|
33
|
+
AssignmentInCondition:
|
34
|
+
Enabled: false
|
35
|
+
|
36
|
+
Documentation:
|
37
|
+
Enabled: false
|
38
|
+
|
39
|
+
HashSyntax:
|
40
|
+
Enabled: false
|
41
|
+
|
42
|
+
PercentLiteralDelimiters:
|
43
|
+
Enabled: false
|
44
|
+
|
45
|
+
UnneededPercentQ:
|
46
|
+
Enabled: false
|
47
|
+
|
48
|
+
Blocks:
|
49
|
+
Enabled: false
|
50
|
+
|
51
|
+
DoubleNegation:
|
52
|
+
Enabled: false
|
53
|
+
|
54
|
+
CaseEquality:
|
55
|
+
Enabled: false
|
56
|
+
|
57
|
+
SpecialGlobalVars:
|
58
|
+
Enabled: false
|
59
|
+
|
60
|
+
UnusedMethodArgument:
|
61
|
+
Enabled: false
|
62
|
+
|
63
|
+
UnusedBlockArgument:
|
64
|
+
Enabled: false
|
65
|
+
|
66
|
+
CollectionMethods:
|
67
|
+
Enabled: false
|
68
|
+
|
69
|
+
TrivialAccessors:
|
70
|
+
Enabled: false
|
71
|
+
|
72
|
+
IndentationWidth:
|
73
|
+
Enabled: false
|
74
|
+
|
75
|
+
IndentHash:
|
76
|
+
Enabled: false
|
77
|
+
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -4,6 +4,8 @@ require 'rspec/core/rake_task'
|
|
4
4
|
require 'cucumber/rake/task'
|
5
5
|
require 'coveralls/rake/task'
|
6
6
|
|
7
|
+
Dir["#{File.expand_path('..', __FILE__)}/tasks/**/*.rake"].each { |f| load f }
|
8
|
+
|
7
9
|
desc 'pry console for gem'
|
8
10
|
task :c do
|
9
11
|
require 'pry'
|
@@ -13,65 +15,6 @@ task :c do
|
|
13
15
|
Pry.start
|
14
16
|
end
|
15
17
|
|
16
|
-
namespace :assets do
|
17
|
-
desc 'compiles static css & js for web'
|
18
|
-
task :precompile do
|
19
|
-
require 'pathname'
|
20
|
-
require 'logger'
|
21
|
-
require 'fileutils'
|
22
|
-
|
23
|
-
require 'lurker/cli'
|
24
|
-
|
25
|
-
require_with_help 'sprockets'
|
26
|
-
require_with_help 'sass'
|
27
|
-
|
28
|
-
ROOT = Pathname(File.dirname(__FILE__))
|
29
|
-
LOGGER = Logger.new(STDOUT)
|
30
|
-
BUNDLES = %w( application.css application.js )
|
31
|
-
BUILD_DIR = Pathname.new Lurker::Cli.precompiled_static_root
|
32
|
-
SOURCE_DIR = Pathname.new Lurker::Cli.source_root
|
33
|
-
|
34
|
-
FileUtils.rm_rf(BUILD_DIR)
|
35
|
-
FileUtils.mkdir_p(BUILD_DIR)
|
36
|
-
|
37
|
-
# raw copy
|
38
|
-
%w[fonts bootstrap.css.map].each do |subdir|
|
39
|
-
FileUtils.cp_r(SOURCE_DIR.join(subdir), BUILD_DIR)
|
40
|
-
end
|
41
|
-
|
42
|
-
sprockets = Sprockets::Environment.new(ROOT) do |env|
|
43
|
-
env.logger = LOGGER
|
44
|
-
end
|
45
|
-
|
46
|
-
sprockets.context_class.class_eval do
|
47
|
-
def asset_path(path, options = {})
|
48
|
-
'/'
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
sprockets.append_path(SOURCE_DIR.join('javascripts').to_s)
|
53
|
-
sprockets.append_path(SOURCE_DIR.join('stylesheets').to_s)
|
54
|
-
|
55
|
-
%w[jquery-rails bootstrap-sass remotipart].each do |gem|
|
56
|
-
gem_path = Pathname.new(Bundler.rubygems.find_name(gem).first.full_gem_path)
|
57
|
-
%w[javascripts stylesheets].each do |prefix|
|
58
|
-
sprockets.append_path(gem_path.join('vendor', 'assets', prefix).to_s)
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
sprockets.js_compressor = :uglify
|
63
|
-
sprockets.css_compressor = :scss
|
64
|
-
|
65
|
-
BUNDLES.each do |bundle|
|
66
|
-
assets = sprockets.find_asset(bundle)
|
67
|
-
realname = (assets.pathname.basename.to_s.split(".").take_while { |s| !s.match /^(js|css)$/ } + [$~.to_s]).join(".")
|
68
|
-
assets.write_to(BUILD_DIR.join(realname))
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
# testing
|
74
|
-
|
75
18
|
ENV['COVERALLS_NOISY'] = '1'
|
76
19
|
Coveralls::RakeTask.new
|
77
20
|
|
@@ -83,216 +26,8 @@ Cucumber::Rake::Task.new(:cucumber) do |t|
|
|
83
26
|
t.cucumber_opts = "features --format progress --tags ~@wip"
|
84
27
|
end
|
85
28
|
|
86
|
-
EXAMPLE_APP = 'tmp/lurker_app'
|
87
|
-
GH_PAGES = 'gh-pages'
|
88
|
-
EXAMPLE_PATH = File.expand_path("../#{EXAMPLE_APP}", __FILE__)
|
89
|
-
|
90
|
-
namespace :clobber do
|
91
|
-
desc "clobber coverage"
|
92
|
-
task :coverage do
|
93
|
-
rm_rf File.expand_path('../coverage', __FILE__)
|
94
|
-
end
|
95
|
-
|
96
|
-
desc "clobber the generated app"
|
97
|
-
task :app do
|
98
|
-
FileUtils.mkdir_p EXAMPLE_PATH
|
99
|
-
in_lurker_app "bin/spring stop" rescue nil
|
100
|
-
Dir.chdir EXAMPLE_PATH do
|
101
|
-
Dir.glob("*", File::FNM_DOTMATCH).each do |fname|
|
102
|
-
next if fname == '.' || fname == '..' || fname == '.git' || fname == '.bundle'
|
103
|
-
FileUtils.rm_rf fname
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
namespace :generate do
|
110
|
-
desc "generate a fresh app with rspec installed"
|
111
|
-
task :app do |t|
|
112
|
-
if needs_generation?
|
113
|
-
sh "bundle exec rails new #{EXAMPLE_APP} -d postgresql -m #{File.expand_path '../templates/lurker_app.rb', __FILE__} --skip-javascript --skip-git --skip-test-unit --skip-keeps --skip-bundle --quiet"
|
114
|
-
in_lurker_app "bundle config --local local.lurker $PWD/../.." unless ENV['TRAVIS']
|
115
|
-
in_lurker_app "bundle install"
|
116
|
-
%w[rake rspec-core spring].each do |gem|
|
117
|
-
in_lurker_app "bundle binstubs #{gem}"
|
118
|
-
end
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
desc "generate a bunch of stuff with generators"
|
123
|
-
task :stuff do
|
124
|
-
in_lurker_app "LOCATION='../../templates/generate_stuff.rb' bin/rake rails:template --quiet --silent"
|
125
|
-
|
126
|
-
unless ENV['TRAVIS']
|
127
|
-
in_lurker_app 'bin/rake db:setup'
|
128
|
-
in_lurker_app 'bin/rake db:import'
|
129
|
-
end
|
130
|
-
in_lurker_app 'bin/rake RAILS_ENV=test db:setup'
|
131
|
-
end
|
132
|
-
end
|
133
|
-
|
134
|
-
def in_lurker_app(command)
|
135
|
-
Dir.chdir(EXAMPLE_PATH) do
|
136
|
-
Bundler.with_clean_env do
|
137
|
-
sh command
|
138
|
-
end
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
def in_gh_pages(command)
|
143
|
-
Dir.chdir(GH_PAGES) do
|
144
|
-
Bundler.with_clean_env do
|
145
|
-
sh command
|
146
|
-
end
|
147
|
-
end
|
148
|
-
end
|
149
|
-
|
150
|
-
def on_razum2um_me(command)
|
151
|
-
puts "About to run: #{command}"
|
152
|
-
system %Q{ssh lurker@razum2um.me 'bash -l -c "source ~/.bashrc; cd ~/lurker; rvm use 2.1.1; #{command}"'}
|
153
|
-
end
|
154
|
-
|
155
|
-
def needs_generation?
|
156
|
-
!File.exists?("#{EXAMPLE_PATH}/Gemfile")
|
157
|
-
end
|
158
|
-
|
159
|
-
def require_with_help(name)
|
160
|
-
begin
|
161
|
-
require name
|
162
|
-
rescue LoadError
|
163
|
-
puts "Incorrect Gemfile, run: `bundle --gemfile Gemfile.local` and"
|
164
|
-
puts "BUNDLE_GEMFILE=$PWD/Gemfile.local #{$0}"
|
165
|
-
raise
|
166
|
-
end
|
167
|
-
end
|
168
|
-
|
169
|
-
desc 'destroys & recreates new test app'
|
170
|
-
task :regenerate => ["clobber:coverage", "clobber:app", "generate:app", "generate:stuff"]
|
171
|
-
|
172
|
-
desc 'run cucumber in a fresh env'
|
173
|
-
task :features => [:regenerate, :cucumber]
|
174
|
-
|
175
|
-
desc 'convert docs for example app, prepages gh-pages'
|
176
|
-
task :build_example_docs => :features do
|
177
|
-
if File.exists?(readme = File.expand_path('../README.md', __FILE__))
|
178
|
-
in_lurker_app "bin/lurker convert -c #{readme}"
|
179
|
-
else
|
180
|
-
in_lurker_app "bin/lurker convert"
|
181
|
-
end
|
182
|
-
|
183
|
-
in_lurker_app "bin/lurker convert -f pdf -o html"
|
184
|
-
|
185
|
-
if File.exists?(pages = File.expand_path('../gh-pages', __FILE__))
|
186
|
-
in_lurker_app "cp -R html/* #{pages}"
|
187
|
-
end
|
188
|
-
end
|
189
|
-
|
190
|
-
def ask_for_deploy(name, callback)
|
191
|
-
if ENV['FORCE_DEPLOY']
|
192
|
-
puts "Deploy to #{name}"
|
193
|
-
callback.call
|
194
|
-
else
|
195
|
-
require_with_help 'highline/import'
|
196
|
-
choose do |menu|
|
197
|
-
menu.prompt = "Commit & push & deploy to #{name}?"
|
198
|
-
menu.choice(:yes) {
|
199
|
-
ENV['FORCE_DEPLOY'] = '1'
|
200
|
-
callback.call
|
201
|
-
}
|
202
|
-
menu.choice(:no) { say("Exit") }
|
203
|
-
end
|
204
|
-
end
|
205
|
-
end
|
206
|
-
|
207
|
-
namespace :heroku do
|
208
|
-
desc 'pushes example lurker_app to heroku'
|
209
|
-
task :push => :predeploy do
|
210
|
-
do_deploy = Proc.new {
|
211
|
-
in_lurker_app "git commit -a -m 'auto commit: #{`git log --oneline -n 1`.strip}'" rescue nil
|
212
|
-
in_lurker_app "git push origin master"
|
213
|
-
in_lurker_app "heroku run rake db:import --app lurker-app"
|
214
|
-
}
|
215
|
-
ask_for_deploy("heroku", do_deploy)
|
216
|
-
end
|
217
|
-
|
218
|
-
desc 'rebuilds & pushes app to heroku'
|
219
|
-
task :deploy => [:build_example_docs, 'heroku:push'] do
|
220
|
-
end
|
221
|
-
end
|
222
|
-
|
223
|
-
namespace :razum2um do
|
224
|
-
desc 'pushes example lurker_app to razum2um'
|
225
|
-
task :push => :predeploy do
|
226
|
-
do_deploy = Proc.new {
|
227
|
-
in_lurker_app "git commit -a -m 'auto commit: #{`git log --oneline -n 1`.strip}'" rescue nil
|
228
|
-
in_lurker_app "git push razum2um master"
|
229
|
-
%w[database secrets].each do |fname|
|
230
|
-
on_razum2um_me "cp ~/#{fname}.yml config/#{fname}.yml"
|
231
|
-
end
|
232
|
-
on_razum2um_me "bundle install"
|
233
|
-
on_razum2um_me "RAILS_ENV=production bin/rake db:migrate"
|
234
|
-
on_razum2um_me "RAILS_ENV=production bin/rake db:import"
|
235
|
-
on_razum2um_me "touch tmp/restart.txt"
|
236
|
-
}
|
237
|
-
ask_for_deploy("razum2um.me", do_deploy)
|
238
|
-
end
|
239
|
-
|
240
|
-
desc 'rebuilds & pushes app to razum2um.me'
|
241
|
-
task :deploy => [:build_example_docs, 'razum2um:push'] do
|
242
|
-
end
|
243
|
-
end
|
244
|
-
|
245
|
-
namespace :github do
|
246
|
-
desc 'pushes example lurker_app to gh-pages'
|
247
|
-
task :push do
|
248
|
-
do_deploy = Proc.new {
|
249
|
-
in_gh_pages "git commit -a -m 'auto commit: #{`git log --oneline -n 1`.strip}'" rescue nil
|
250
|
-
in_gh_pages "git push origin gh-pages"
|
251
|
-
}
|
252
|
-
in_gh_pages "git add -A"
|
253
|
-
in_gh_pages "git status"
|
254
|
-
ask_for_deploy("gh-pages", do_deploy)
|
255
|
-
end
|
256
|
-
|
257
|
-
desc 'rebuilds & pushes app to gh-pages'
|
258
|
-
task :deploy => [:build_example_docs, 'github:push'] do
|
259
|
-
end
|
260
|
-
end
|
261
|
-
|
262
29
|
task :default => ["clobber:coverage", :spec, :regenerate, :cucumber, 'coveralls:push']
|
263
30
|
|
264
|
-
desc 'commits lurker app'
|
265
|
-
task :predeploy do
|
266
|
-
do_predeploy = Proc.new {
|
267
|
-
in_lurker_app "echo 'bin/lurker' > .gitignore"
|
268
|
-
in_lurker_app "echo 'log' >> .gitignore"
|
269
|
-
# commit migration and deploy by hand first time
|
270
|
-
in_lurker_app "echo 'db/*' >> .gitignore"
|
271
|
-
in_lurker_app "echo 'tmp/*log' >> .gitignore"
|
272
|
-
in_lurker_app "echo '.bundle/*' >> .gitignore"
|
273
|
-
|
274
|
-
in_lurker_app "git add -A"
|
275
|
-
in_lurker_app "git status"
|
276
|
-
}
|
277
|
-
|
278
|
-
if (stage = `git log @{u}..`).lines.size > 0
|
279
|
-
puts stage
|
280
|
-
do_push_and_predeploy = Proc.new {
|
281
|
-
sh "git push origin master"
|
282
|
-
do_predeploy.call
|
283
|
-
}
|
284
|
-
ask_for_deploy("push master", do_push_and_predeploy)
|
285
|
-
else
|
286
|
-
do_predeploy.call
|
287
|
-
end
|
288
|
-
end
|
289
|
-
|
290
|
-
desc 'deploys everything'
|
291
|
-
task :deploy => ["razum2um:deploy", "heroku:deploy", "github:deploy"]
|
292
|
-
|
293
|
-
desc 'pushes everything'
|
294
|
-
task :push => ["razum2um:push", "heroku:push", "github:push"]
|
295
|
-
|
296
31
|
desc 'releases gem & updates docs'
|
297
32
|
task :publish do
|
298
33
|
require 'lurker'
|
@@ -307,4 +42,3 @@ task :publish do
|
|
307
42
|
system "gem push lurker-#{version}.gem"
|
308
43
|
end
|
309
44
|
end
|
310
|
-
|