daddy 0.0.20 → 0.0.21
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/daddy/cucumber.rb +1 -0
- data/lib/daddy/cucumber/capture.rb +5 -5
- data/lib/daddy/cucumber/diff.rb +4 -6
- data/lib/daddy/formatter/daddy.css +27 -1
- data/lib/daddy/formatter/html.rb +31 -8
- data/lib/daddy/git.rb +1 -1
- data/lib/tasks/jenkins.rake +21 -5
- data/lib/tasks/nginx.conf.erb +24 -8
- data/lib/tasks/nginx.rake +8 -0
- data/lib/tasks/phantomjs.rake +24 -0
- data/lib/tasks/publish.rake +8 -15
- data/lib/tasks/unicorn.erb +3 -11
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NWRjNDQxMTAwNDZhOTg3MjRhZWNlOWVmNTFjNzNkNjg5NjU0MWNlNg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NDFlNTIwZjUzODVjZTBkYTU2MTAwMGNmMDg2OTc4NjhkMjk3ZDQ2OA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MDdmMTdmN2JmZGQ1ZTFlMTc0YjAzZWE1YzEzMTMyYTE4MjIxZGNkZDI0NWU3
|
10
|
+
N2MwYzg0Y2Q4NzBiMDNkMzczOGRjYWYwYWVlOTI5MTZlNWE1ZmFjYmEyZjgy
|
11
|
+
ZDk0Yjc2NzAwMDNjZDA5Njk0MzUyZTZlMWI4ZDBhYjczODMyZTI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZjkwODIyZGYyMDA2NmEyODQ2ZjQ0NzI5ZWZiZDYxMTE4YzU0OWJiNTY2Mzhj
|
14
|
+
YWI0YWIwY2VhZjUwZjA1YjA2NmNjYTcyMDVlNjJhNWUwODk5M2U5MDk5OGEx
|
15
|
+
N2QxNzk5ODlkN2E4NDZmMDBiZTRkNTJmYTU3ZjA2ZDZlYTk0YmU=
|
data/lib/daddy/cucumber.rb
CHANGED
@@ -17,15 +17,15 @@ module Daddy
|
|
17
17
|
|
18
18
|
image = "#{@@_screen_count}.png"
|
19
19
|
|
20
|
-
if Capybara.current_driver == :
|
21
|
-
page.driver.render("#{SCREENSHOT_DIR}/#{image}")
|
22
|
-
else
|
20
|
+
if Capybara.current_driver == :selenium
|
23
21
|
page.driver.browser.save_screenshot("#{SCREENSHOT_DIR}/#{image}")
|
22
|
+
else
|
23
|
+
page.driver.render("#{SCREENSHOT_DIR}/#{image}")
|
24
24
|
end
|
25
25
|
|
26
26
|
puts %{
|
27
|
-
<div
|
28
|
-
<
|
27
|
+
<div>#{url}</div>
|
28
|
+
<img style="margin: 5px 0; background: #ffffff;" src="screenshots/#{image}"/>
|
29
29
|
}
|
30
30
|
end
|
31
31
|
end
|
data/lib/daddy/cucumber/diff.rb
CHANGED
@@ -4,15 +4,13 @@ module Daddy
|
|
4
4
|
module Cucumber
|
5
5
|
module Diff
|
6
6
|
|
7
|
-
def git_diff(
|
7
|
+
def git_diff(file, options = {})
|
8
8
|
git = Daddy::Git.new
|
9
|
-
|
10
|
-
|
11
|
-
a = File.read(local_file).gsub(/[<>]/, '<' => '<', '>' => '>')
|
12
|
-
b = git.show_previous(git_path, true).gsub(/[<>]/, '<' => '<', '>' => '>')
|
9
|
+
a = File.read(file).gsub(/[<>]/, '<' => '<', '>' => '>')
|
10
|
+
b = git.show_previous(file, true).gsub(/[<>]/, '<' => '<', '>' => '>')
|
13
11
|
diff = format_diff(Differ.diff(a, b))
|
14
12
|
|
15
|
-
puts
|
13
|
+
puts file
|
16
14
|
puts "<pre>#{diff}</pre>"
|
17
15
|
end
|
18
16
|
|
@@ -7,6 +7,7 @@
|
|
7
7
|
float: left;
|
8
8
|
background: #FFFFFF;
|
9
9
|
color: #000000;
|
10
|
+
margin-top: -10px;
|
10
11
|
}
|
11
12
|
|
12
13
|
#menu ol {
|
@@ -46,6 +47,11 @@
|
|
46
47
|
font-weight: bold;
|
47
48
|
}
|
48
49
|
|
50
|
+
.cucumber ol li.step, td ol li.step, th ol li.step {
|
51
|
+
padding: 3px 3px 3px 10px;
|
52
|
+
margin: 5px 0px 5px 0px;
|
53
|
+
}
|
54
|
+
|
49
55
|
.cucumber ol li.passed, td ol li.passed, th ol li.passed {
|
50
56
|
border-left: 5px solid #999999;
|
51
57
|
border-bottom: 1px solid #999999;
|
@@ -76,10 +82,30 @@
|
|
76
82
|
display: none;
|
77
83
|
background: #FFFFFF;
|
78
84
|
border: solid 1px #999999;
|
79
|
-
margin-left:
|
85
|
+
margin-left: 15px;
|
80
86
|
padding: 10px;
|
81
87
|
}
|
82
88
|
|
89
|
+
div.background {
|
90
|
+
margin-left: 20px;
|
91
|
+
}
|
92
|
+
|
93
|
+
div.feature .narrative {
|
94
|
+
margin-left: 10px;
|
95
|
+
}
|
96
|
+
|
97
|
+
div.scenario .narrative {
|
98
|
+
margin-left: 20px;
|
99
|
+
}
|
100
|
+
|
101
|
+
div.scenario {
|
102
|
+
margin: 20px;
|
103
|
+
}
|
104
|
+
|
105
|
+
div.scenario ol {
|
106
|
+
margin-left: 20px;
|
107
|
+
}
|
108
|
+
|
83
109
|
div.scenario table {
|
84
110
|
margin: 10px 0;
|
85
111
|
}
|
data/lib/daddy/formatter/html.rb
CHANGED
@@ -207,15 +207,31 @@ module Daddy
|
|
207
207
|
|
208
208
|
def scenario_name(keyword, name, file_colon_line, source_indent)
|
209
209
|
@step_number_in_scenario = 0
|
210
|
-
|
211
|
-
@builder.span(:class => 'scenario_file') do
|
210
|
+
|
211
|
+
@builder.span(:class => 'scenario_file', :style => 'display: none;') do
|
212
212
|
@builder << file_colon_line
|
213
213
|
end
|
214
214
|
@listing_background = false
|
215
|
+
|
216
|
+
lines = name.split("\n")
|
215
217
|
@builder.h3(:id => "scenario_#{@scenario_number}") do
|
216
218
|
@builder.span(keyword + ':', :class => 'keyword')
|
217
219
|
@builder.text!(' ')
|
218
|
-
@builder.span(
|
220
|
+
@builder.span(lines[0], :class => 'val')
|
221
|
+
end
|
222
|
+
|
223
|
+
if lines.size > 1
|
224
|
+
@builder.div(:class => 'narrative', :style => 'display: none;') do
|
225
|
+
@builder.pre do
|
226
|
+
text = ''
|
227
|
+
lines[1..-1].each_with_index do |line, i|
|
228
|
+
next if i == 0 and line.strip.empty?
|
229
|
+
text << '<br/>' unless text.empty?
|
230
|
+
text << line
|
231
|
+
end
|
232
|
+
@builder << text
|
233
|
+
end
|
234
|
+
end
|
219
235
|
end
|
220
236
|
end
|
221
237
|
|
@@ -247,7 +263,7 @@ module Daddy
|
|
247
263
|
|
248
264
|
def before_steps(steps)
|
249
265
|
@step_count_in_scenario = steps.count
|
250
|
-
@builder << '<ol>'
|
266
|
+
@builder << '<ol style="display: none;">'
|
251
267
|
end
|
252
268
|
|
253
269
|
def after_steps(steps)
|
@@ -538,12 +554,20 @@ module Daddy
|
|
538
554
|
end
|
539
555
|
|
540
556
|
def build_step(keyword, step_match, status)
|
541
|
-
@
|
542
|
-
|
557
|
+
if @in_background
|
558
|
+
display_keyword = keyword.strip + ' '
|
559
|
+
else
|
560
|
+
if keyword.strip == '*'
|
561
|
+
@step_number_in_scenario += 1
|
562
|
+
display_keyword = sprintf("%0#{@step_count_in_scenario.to_s.size}d", @step_number_in_scenario) + '. '
|
563
|
+
else
|
564
|
+
display_keyword = keyword.strip + ' '
|
565
|
+
end
|
566
|
+
end
|
543
567
|
|
544
568
|
step_name = step_match.format_args(lambda{|param| %{<span class="param">#{param}</span>}})
|
545
569
|
@builder.div(:class => 'step_name') do |div|
|
546
|
-
@builder.span(
|
570
|
+
@builder.span(display_keyword, :class => 'keyword')
|
547
571
|
@builder.span(:class => 'step val') do |name|
|
548
572
|
name << h(step_name).gsub(/<span class="(.*?)">/, '<span class="\1">').gsub(/<\/span>/, '</span>')
|
549
573
|
end
|
@@ -602,7 +626,6 @@ module Daddy
|
|
602
626
|
else
|
603
627
|
@builder << %w{
|
604
628
|
$(document).ready(function() {
|
605
|
-
$(SCENARIOS).siblings().hide();
|
606
629
|
$('li.message').hide();
|
607
630
|
});
|
608
631
|
}.join
|
data/lib/daddy/git.rb
CHANGED
data/lib/tasks/jenkins.rake
CHANGED
@@ -13,16 +13,32 @@ namespace :dad do
|
|
13
13
|
"sudo cp -f #{File.dirname(__FILE__)}/jenkins /etc/sysconfig",
|
14
14
|
"sudo chown root:root /etc/sysconfig/jenkins",
|
15
15
|
"sudo chmod 600 /etc/sysconfig/jenkins",
|
16
|
-
"sudo mkdir /var/lib/jenkins/plugins",
|
16
|
+
"sudo mkdir -p /var/lib/jenkins/plugins",
|
17
17
|
"sudo chown jenkins:jenkins /var/lib/jenkins/plugins",
|
18
|
-
"sudo wget http://updates.jenkins-ci.org/download/plugins/build-pipeline-plugin/1.3.3/build-pipeline-plugin.hpi -O /var/lib/jenkins/plugins/build-pipeline-plugin.hpi",
|
19
|
-
"sudo wget http://updates.jenkins-ci.org/download/plugins/git/1.1.26/git.hpi -O /var/lib/jenkins/plugins/git.hpi",
|
20
|
-
"sudo wget http://updates.jenkins-ci.org/download/plugins/rake/1.7.7/rake.hpi -O /var/lib/jenkins/plugins/rake.hpi",
|
21
|
-
"sudo wget http://updates.jenkins-ci.org/download/plugins/rubyMetrics/1.5.0/rubyMetrics.hpi -O /var/lib/jenkins/plugins/rubyMetrics.hpi",
|
22
18
|
].each do |command|
|
23
19
|
puts command
|
24
20
|
system(command)
|
25
21
|
end
|
22
|
+
|
23
|
+
plugins = [
|
24
|
+
{:name => 'build-pipeline-plugin', :version => '1.3.3'},
|
25
|
+
{:name => 'git', :version => '1.1.26'},
|
26
|
+
{:name => 'rake', :version => '1.7.7'},
|
27
|
+
{:name => 'rubyMetrics', :version => '1.5.0'},
|
28
|
+
{:name => 'htmlpublisher', :version => '1.2'},
|
29
|
+
]
|
30
|
+
plugins.each do |p|
|
31
|
+
download_path = "tmp/#{p[:name]}.hpi"
|
32
|
+
|
33
|
+
unless File.exist?(download_path)
|
34
|
+
command = "sudo wget http://updates.jenkins-ci.org/download/plugins/#{p[:name]}/#{p[:version]}/#{p[:name]}.hpi -O #{download_path}"
|
35
|
+
puts command
|
36
|
+
system command
|
37
|
+
end
|
38
|
+
|
39
|
+
plugin_path = "/var/lib/jenkins/plugins/#{p[:name]}.hpi"
|
40
|
+
system("sudo cp -f #{download_path} #{plugin_path}")
|
41
|
+
end
|
26
42
|
end
|
27
43
|
|
28
44
|
end
|
data/lib/tasks/nginx.conf.erb
CHANGED
@@ -1,7 +1,3 @@
|
|
1
|
-
upstream jenkins {
|
2
|
-
server localhost:8081;
|
3
|
-
}
|
4
|
-
|
5
1
|
upstream unicorn {
|
6
2
|
server unix:/tmp/unicorn.sock;
|
7
3
|
}
|
@@ -17,14 +13,34 @@ server {
|
|
17
13
|
server_name localhost;
|
18
14
|
|
19
15
|
root <%= ENV['RAILS_ROOT'] %>/public;
|
20
|
-
|
21
16
|
try_files $uri/index.html $uri @app;
|
22
17
|
|
23
18
|
location @app {
|
24
19
|
proxy_pass http://unicorn;
|
25
20
|
}
|
26
|
-
|
27
|
-
location /
|
28
|
-
|
21
|
+
|
22
|
+
location ~ ^/(assets)/ {
|
23
|
+
gzip_vary on;
|
24
|
+
gzip_static on;
|
25
|
+
expires 1y;
|
26
|
+
add_header Cache-Control public;
|
27
|
+
add_header ETag "";
|
29
28
|
}
|
29
|
+
|
30
|
+
<% if ENV['JENKINS'].to_s.downcase == 'true' %>
|
31
|
+
location /jenkins/ {
|
32
|
+
root /var/cache/jenkins/war;
|
33
|
+
proxy_pass http://localhost:8081/jenkins/;
|
34
|
+
proxy_set_header Host $http_host;
|
35
|
+
proxy_set_header X-Real-IP $remote_addr;
|
36
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
37
|
+
}
|
38
|
+
<% end -%>
|
39
|
+
|
40
|
+
<% if ENV['PUBLISH'].to_s.downcase == 'true' %>
|
41
|
+
location /spec/ {
|
42
|
+
root /var/lib/daddy;
|
43
|
+
}
|
44
|
+
<% end -%>
|
45
|
+
|
30
46
|
}
|
data/lib/tasks/nginx.rake
CHANGED
@@ -22,9 +22,17 @@ namespace :dad do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
rails_root = ENV['RAILS_ROOT'] || Rails.root
|
25
|
+
jenkins = ENV['JENKINS'] || false
|
26
|
+
publish = ENV['PUBLISH'] || false
|
27
|
+
|
25
28
|
ret = system("RAILS_ROOT=#{rails_root} erb -T - #{File.dirname(__FILE__)}/nginx.conf.erb > tmp/nginx.conf")
|
26
29
|
fail unless ret
|
27
30
|
system("sudo cp -f tmp/nginx.conf /etc/nginx/conf.d/nginx.conf")
|
31
|
+
|
32
|
+
if publish
|
33
|
+
system("sudo mkdir -p /var/lib/daddy")
|
34
|
+
system("sudo chown -R #{ENV['USER']}:#{ENV['USER']} /var/lib/daddy")
|
35
|
+
end
|
28
36
|
end
|
29
37
|
|
30
38
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# coding: UTF-8
|
2
|
+
|
3
|
+
require 'rake'
|
4
|
+
|
5
|
+
namespace :dad do
|
6
|
+
namespace :phantomjs do
|
7
|
+
|
8
|
+
desc "PhantomJSをインストールします。"
|
9
|
+
task :install do
|
10
|
+
name = 'phantomjs-1.9.0-linux-x86_64'
|
11
|
+
file = "#{name}.tar.bz2"
|
12
|
+
unless File.exist?("tmp/#{file}")
|
13
|
+
system("wget https://phantomjs.googlecode.com/files/#{file} -O tmp/#{file}")
|
14
|
+
end
|
15
|
+
system("rm -Rf tmp/#{name}")
|
16
|
+
system("cd tmp && tar jxf #{file}")
|
17
|
+
|
18
|
+
system("sudo cp -f tmp/#{name}/bin/phantomjs /usr/local/bin/phantomjs")
|
19
|
+
system("sudo chown root:root /usr/local/bin/phantomjs")
|
20
|
+
system("sudo chmod 755 /usr/local/bin/phantomjs")
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
data/lib/tasks/publish.rake
CHANGED
@@ -12,8 +12,6 @@ namespace :dad do
|
|
12
12
|
system("bundle exec rake dad:cucumber PUBLISH=true EXPAND=false OUTPUT_FILE=diary.html features/開発日記")
|
13
13
|
system("bundle exec rake dad:cucumber PUBLISH=true EXPAND=false OUTPUT_FILE=index.html features/仕様書")
|
14
14
|
|
15
|
-
system("mkdir -p tmp")
|
16
|
-
|
17
15
|
if ENV['BRANCH']
|
18
16
|
current_branch = ENV['BRANCH']
|
19
17
|
else
|
@@ -21,22 +19,17 @@ namespace :dad do
|
|
21
19
|
current_branch = git.current_branch
|
22
20
|
end
|
23
21
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
system("cd tmp/gh-pages && git pull")
|
28
|
-
end
|
29
|
-
system("mkdir -p tmp/gh-pages/#{current_branch}")
|
22
|
+
dir = '/var/lib/daddy/spec'
|
23
|
+
system("sudo mkdir -p #{dir}")
|
24
|
+
system("sudo chown -R #{ENV['USER']}:#{ENV['USER']} #{dir}")
|
30
25
|
|
31
|
-
system("
|
32
|
-
system("cp -Rf features/reports/* tmp/gh-pages/#{current_branch}/")
|
26
|
+
system("mkdir -p #{dir}/#{current_branch}")
|
33
27
|
|
34
|
-
system("
|
35
|
-
system("cp -Rf
|
28
|
+
system("rm -Rf #{dir}/#{current_branch}/screenshots")
|
29
|
+
system("cp -Rf features/reports/* #{dir}/#{current_branch}/")
|
36
30
|
|
37
|
-
system("
|
38
|
-
system("
|
39
|
-
system("cd tmp/gh-pages && git push")
|
31
|
+
system("rm -Rf #{dir}/#{current_branch}/coverage")
|
32
|
+
system("cp -Rf coverage #{dir}/#{current_branch}/")
|
40
33
|
end
|
41
34
|
|
42
35
|
end
|
data/lib/tasks/unicorn.erb
CHANGED
@@ -5,17 +5,9 @@
|
|
5
5
|
|
6
6
|
. /etc/rc.d/init.d/functions
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
if [ -z ${RAILS_ENV} ]; then
|
13
|
-
RAILS_ENV=<%= ENV['RAILS_ENV'] %>
|
14
|
-
fi
|
15
|
-
|
16
|
-
if [ -z ${RAILS_ROOT} ]; then
|
17
|
-
RAILS_ROOT=<%= ENV['RAILS_ROOT'] %>
|
18
|
-
fi
|
8
|
+
RAILS_USER=<%= ENV['USER'] %>
|
9
|
+
RAILS_ENV=<%= ENV['RAILS_ENV'] %>
|
10
|
+
RAILS_ROOT=<%= ENV['RAILS_ROOT'] %>
|
19
11
|
|
20
12
|
PID=${RAILS_ROOT}/tmp/pids/unicorn.pid
|
21
13
|
CONFIG=${RAILS_ROOT}/config/unicorn.rb
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: daddy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.21
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ichy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capybara
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - ! '>='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: poltergeist
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ! '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: rails
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -193,6 +207,7 @@ files:
|
|
193
207
|
- lib/tasks/db_create.rake
|
194
208
|
- lib/tasks/unicorn.erb
|
195
209
|
- lib/tasks/test.rake
|
210
|
+
- lib/tasks/phantomjs.rake
|
196
211
|
- lib/tasks/database.yml.erb
|
197
212
|
- lib/tasks/nginx.conf.erb
|
198
213
|
homepage: https://github.com/ichylinux/daddy
|