gnawrnip 0.2.2 → 0.2.3

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: 6fe6dcc279e3f16ba816e4348d651588d0012594
4
+ data.tar.gz: 58614d16197b2f281539529b6c010f6cd609097d
5
+ SHA512:
6
+ metadata.gz: 9ad73dc09318b71443e7cf7003d1022edf4fe8095fa28cfdeefbbb22da327841f326d82ab77a0194a2d59b99e1368ccb6014d73b697729df19560460b1d77d8e
7
+ data.tar.gz: 1833ffb0f79761ca3e4eed6889e1d9c6570ddf750155bc9692f0445e216d311bdd310e012ef05e61f41f8c8ea335c7a4d477f4c1e57736caccf1a29b5e3289ba
@@ -21,7 +21,7 @@ Capybara.default_driver = :poltergeist
21
21
  Capybara.javascript_driver = :selenium
22
22
 
23
23
  Gnawrnip.configure do |c|
24
- c.frame_interval_ms = 1000
24
+ c.frame_interval_ms = 200
25
25
  c.make_animation = true
26
26
  c.max_frame_size = 1024 # pixel
27
27
  end
data/gnawrnip.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_dependency 'capybara', "~> 2.1"
22
- spec.add_dependency 'turnip_formatter', '~> 0.2.8'
22
+ spec.add_dependency 'turnip_formatter', '~> 0.2.9'
23
23
  spec.add_dependency 'oily_png'
24
24
  spec.add_development_dependency "bundler", "~> 1.3"
25
25
  spec.add_development_dependency "rake"
@@ -0,0 +1,49 @@
1
+ require 'gnawrnip/image'
2
+
3
+ module Gnawrnip
4
+ class Developer
5
+ def develop(file)
6
+ image = Image.new(file)
7
+ resize(image) if need_resize?
8
+ image
9
+ end
10
+
11
+ private
12
+
13
+ def resize(image)
14
+ new_width, new_height = calculate_new_size(image.width, image.height)
15
+
16
+ return if [new_width, new_height] === [image.width, image.height]
17
+
18
+ image.resize(new_width, new_height)
19
+ end
20
+
21
+ def need_resize?
22
+ !Gnawrnip.max_frame_size.nil?
23
+ end
24
+
25
+ #
26
+ # Return new frame size (width and height).
27
+ # This size is keeping original aspect ratio.
28
+ #
29
+ # @return [Array] New width and height size. [width, height]
30
+ #
31
+ def calculate_new_size(width, height)
32
+ ratio = width.to_f / height.to_f
33
+ target = Gnawrnip.max_frame_size
34
+
35
+ return [width, height] if target > [width, height].max
36
+
37
+ if ratio < 1
38
+ new_width = target * ratio
39
+ new_height = target
40
+ else
41
+ new_width = target
42
+ new_height = target / ratio
43
+ end
44
+
45
+ return [new_width, new_height]
46
+ end
47
+ end
48
+ end
49
+
@@ -0,0 +1,53 @@
1
+ require 'oily_png'
2
+
3
+ module Gnawrnip
4
+ class Image
5
+ #
6
+ # @parma [File] Screenshot image file (png)
7
+ #
8
+ def initialize(file)
9
+ @file = file
10
+ analysis
11
+ end
12
+
13
+ #
14
+ # @return [Fixnum] Width of image
15
+ #
16
+ def width
17
+ @dimension.width
18
+ end
19
+
20
+ #
21
+ # @return [Fixnum] Height of image
22
+ #
23
+ def height
24
+ @dimension.height
25
+ end
26
+
27
+ def to_base64
28
+ Base64.strict_encode64(File.read(@file.path))
29
+ end
30
+
31
+ def resize(width, height)
32
+ canvas.resample_bilinear(width, height).save(@file.path)
33
+ analysis
34
+ end
35
+
36
+ def close!
37
+ @file.close!
38
+ end
39
+
40
+ private
41
+
42
+ #
43
+ # Update dimension (OilyPNG::Dimension) of Image
44
+ #
45
+ def analysis
46
+ @dimension = canvas.dimension
47
+ end
48
+
49
+ def canvas
50
+ OilyPNG::Canvas.from_file(@file)
51
+ end
52
+ end
53
+ end
@@ -4,27 +4,26 @@ module Gnawrnip
4
4
  class Publisher
5
5
 
6
6
  #
7
- # @params [Array] paths Array of screenshot image filename
7
+ # @params [Array] images Array of Gnawrnip::Image
8
8
  #
9
- def animation(paths)
10
- paths.map { |path| image_tag(path) }.join
9
+ def animation(images)
10
+ images.map { |image| image_tag(image) }.join
11
11
  end
12
12
 
13
13
  #
14
- # @params [string] path Screenshot image filename
14
+ # @params [Gnawrnip::Image] image
15
15
  #
16
- def single(path)
17
- image_tag(path)
16
+ def single(image)
17
+ image_tag(image)
18
18
  end
19
19
 
20
20
  private
21
21
 
22
- def image_tag(path, format = :png)
23
- %Q|<img src="data:image/#{format.to_s};base64,#{image_base64(path)}"/>|
24
- end
25
-
26
- def image_base64(path)
27
- Base64.strict_encode64(File.read(path))
22
+ def image_tag(image, format = :png)
23
+ width = image.width
24
+ height = image.height
25
+ data = image.to_base64
26
+ %Q|<img width="#{width}" height="#{height}" src="data:image/#{format.to_s};base64,#{data}"/>|
28
27
  end
29
28
  end
30
29
  end
@@ -1,7 +1,7 @@
1
1
  require 'tempfile'
2
2
  require 'time'
3
3
  require 'capybara'
4
- require 'oily_png'
4
+ require 'gnawrnip/developer'
5
5
 
6
6
  module Gnawrnip
7
7
  class Screenshot
@@ -28,10 +28,7 @@ module Gnawrnip
28
28
  start_time = Time.now
29
29
 
30
30
  begin
31
- tempfile = Tempfile.new(['gnawrnip', '.png'])
32
- session.save_screenshot(tempfile.path)
33
- resize(tempfile.path) if need_resize?
34
- tempfile
31
+ shot
35
32
  rescue Capybara::NotSupportedByDriverError => e
36
33
  raise e
37
34
  rescue => e
@@ -47,39 +44,13 @@ module Gnawrnip
47
44
  Capybara.current_session
48
45
  end
49
46
 
50
- def need_resize?
51
- !Gnawrnip.max_frame_size.nil?
52
- end
53
-
54
- def resize(path)
55
- image = OilyPNG::Canvas.from_file(path)
56
- new_width, new_height = calculate_new_size(image.width, image.height)
57
-
58
- image.resample_bilinear!(new_width, new_height)
59
- image.save(path)
60
- end
61
-
62
47
  #
63
- # Return new frame size (width and height).
64
- # This size is keeping original aspect ratio.
48
+ # @return [Gnawrnip::Image]
65
49
  #
66
- # @return [Array] New width and height size. [width, height]
67
- #
68
- def calculate_new_size(width, height)
69
- ratio = width.to_f / height.to_f
70
- target = Gnawrnip.max_frame_size
71
-
72
- return [width, height] if target > [width, height].max
73
-
74
- if ratio < 1
75
- new_width = target * ratio
76
- new_height = target
77
- else
78
- new_width = target
79
- new_height = target / ratio
80
- end
81
-
82
- return [new_width, new_height]
50
+ def shot
51
+ tempfile = Tempfile.new(['gnawrnip', '.png'])
52
+ session.save_screenshot(tempfile.path)
53
+ Developer.new.develop(tempfile)
83
54
  end
84
55
  end
85
56
  end
@@ -6,16 +6,16 @@ module Gnawrnip
6
6
  module StepScreenshot
7
7
  class << self
8
8
  #
9
- # @param [Array] png_base64_list array of base64 encoded image
9
+ # @param [Array] images array of Gnawrnip::Image
10
10
  #
11
- def build(png_base64_list)
12
- case png_base64_list.length
11
+ def build(images)
12
+ case images.length
13
13
  when 0
14
14
  ''
15
15
  when 1
16
- single_image(png_base64_list.first)
16
+ single_image(images.first)
17
17
  else
18
- animation_image(png_base64_list)
18
+ animation_image(images)
19
19
  end
20
20
  end
21
21
 
@@ -25,8 +25,10 @@ module Gnawrnip
25
25
  <div class="nav">
26
26
  <div class="pager"></div>
27
27
  <div class="manipulate">
28
- <span class="play selected">&#9654;</span>
29
- <span class="stop">&#9632;</span>
28
+ <i class="fa fa-2x fa-step-backward prev"></i>
29
+ <i class="fa fa-2x fa-play play"></i>
30
+ <i class="fa fa-2x fa-pause pause"></i>
31
+ <i class="fa fa-2x fa-step-forward next"></i>
30
32
  </div>
31
33
  </div>
32
34
  <div class="slides">
@@ -49,43 +51,54 @@ end
49
51
 
50
52
  module TurnipFormatter
51
53
  Template.add_js_file('http://cdnjs.cloudflare.com/ajax/libs/jquery.cycle2/20130801/jquery.cycle2.min.js')
54
+ Template.add_css_file('http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css')
52
55
 
53
56
  Template.add_js(<<-EOS)
54
57
  $(function() {
55
58
  $('.screenshot.animation').each(function() {
56
59
  var slide = $(this).find('.slides').cycle({
57
- timeout: 1000,
58
- autoHeight: "container",
60
+ timeout: #{Gnawrnip.frame_interval_ms},
61
+ autoHeight: "calc",
59
62
  pager: $(this).find('div.nav .pager')
60
63
  });
61
64
 
62
65
  var nav = $(this).find('div.nav');
63
- var playButton = nav.find('.play');
64
- var stopButton = nav.find('.stop');
65
-
66
- var coloringOfStopped = function() {
67
- playButton.removeClass("selected");
68
- stopButton.addClass("selected");
66
+ var playButton = nav.find('.play');
67
+ var pauseButton = nav.find('.pause');
68
+ var prevButton = nav.find('.prev');
69
+ var nextButton = nav.find('.next');
70
+
71
+ var setPauseManipulate = function() {
72
+ playButton.show();
73
+ pauseButton.hide();
74
+ prevButton.show();
75
+ nextButton.show();
69
76
  };
70
77
 
71
- var coloringOfPlaying = function() {
72
- playButton.addClass("selected");
73
- stopButton.removeClass("selected");
78
+ var setPlayManipulate = function() {
79
+ playButton.hide();
80
+ pauseButton.show();
81
+ prevButton.hide();
82
+ nextButton.hide();
74
83
  };
75
84
 
76
85
  playButton.click(function() { slide.cycle('resume'); });
77
- stopButton.click(function() { slide.cycle('pause'); });
86
+ pauseButton.click(function() { slide.cycle('pause'); });
87
+ prevButton.click(function() { slide.cycle('prev'); });
88
+ nextButton.click(function() { slide.cycle('next'); });
89
+
90
+ setPlayManipulate();
78
91
 
79
92
  slide.on('cycle-pager-activated', function(event, opts) {
80
93
  slide.cycle('pause');
81
94
  });
82
95
 
83
96
  slide.on('cycle-paused', function(event, opts) {
84
- coloringOfStopped();
97
+ setPauseManipulate();
85
98
  });
86
99
 
87
100
  slide.on('cycle-resumed', function(event, opts) {
88
- coloringOfPlaying();
101
+ setPlayManipulate();
89
102
  });
90
103
  });
91
104
  });
@@ -122,13 +135,16 @@ module TurnipFormatter
122
135
  }
123
136
 
124
137
  .manipulate {
125
- span {
138
+ margin-bottom: 1em;
139
+
140
+ i {
126
141
  color: black;
127
- font-size: 30px;
128
142
  cursor: pointer;
143
+ margin-left: 0.3em;
144
+ margin-right: 0.3em;
129
145
 
130
- &.selected {
131
- color: red;
146
+ &:hover {
147
+ color: #aa0000;
132
148
  }
133
149
  }
134
150
  }
@@ -1,3 +1,3 @@
1
1
  module Gnawrnip
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
@@ -0,0 +1,66 @@
1
+ require 'spec_helper'
2
+ require 'gnawrnip/developer'
3
+
4
+ module Gnawrnip
5
+ describe Developer do
6
+ let(:developer) do
7
+ Developer.new
8
+ end
9
+
10
+ before do
11
+ Image.any_instance.stub(:analysis)
12
+ end
13
+
14
+ context 'No given Gnawrnip.max_frame_size' do
15
+ describe '.develop' do
16
+ before do
17
+ Gnawrnip.max_frame_size = nil
18
+ Developer.should_not_receive(:resize)
19
+ end
20
+
21
+ it { developer.develop(nil) }
22
+ end
23
+ end
24
+
25
+ context 'Given Gnawrnip.max_frame_size' do
26
+ context 'width larger than height.' do
27
+ describe '.develop' do
28
+ before do
29
+ Gnawrnip.max_frame_size = 300
30
+ Image.any_instance.stub(:width).and_return(640)
31
+ Image.any_instance.stub(:height).and_return(480)
32
+ Image.any_instance.should_receive(:resize).with(300, 225)
33
+ end
34
+
35
+ it { developer.develop(nil) }
36
+ end
37
+ end
38
+
39
+ context 'height larger than width.' do
40
+ describe '.develop' do
41
+ before do
42
+ Gnawrnip.max_frame_size = 400
43
+ Image.any_instance.stub(:width).and_return(480)
44
+ Image.any_instance.stub(:height).and_return(640)
45
+ Image.any_instance.should_receive(:resize).with(300, 400)
46
+ end
47
+
48
+ it { developer.develop(nil) }
49
+ end
50
+ end
51
+
52
+ context 'Given max_frame_size larger than original.' do
53
+ describe '.develop' do
54
+ before do
55
+ Gnawrnip.max_frame_size = 1024
56
+ Image.any_instance.stub(:width).and_return(640)
57
+ Image.any_instance.stub(:height).and_return(480)
58
+ Image.any_instance.should_not_receive(:resize)
59
+ end
60
+
61
+ it { developer.develop(nil) }
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+ require 'gnawrnip/image'
3
+
4
+ module Gnawrnip
5
+ describe Image do
6
+ before do
7
+ Image.any_instance.stub(:canvas).and_return(canvas)
8
+ end
9
+
10
+ let(:image) do
11
+ Image.new(GnawrnipTest.image('gnawrnip/image'))
12
+ end
13
+
14
+ context 'image size is 640x480' do
15
+ let(:canvas) do
16
+ double(dimension: dimension, save: nil)
17
+ end
18
+
19
+ let(:dimension) do
20
+ double(width: 640, height: 480)
21
+ end
22
+
23
+ describe '.width' do
24
+ subject { image.width }
25
+ it { should eql 640 }
26
+ end
27
+
28
+ describe '.height' do
29
+ subject { image.height }
30
+ it { should eql 480 }
31
+ end
32
+
33
+ describe '.resize' do
34
+ let(:canvas) do
35
+ canvas = super()
36
+ canvas.should_receive(:resample_bilinear).with(320, 240).and_return(canvas)
37
+ canvas
38
+ end
39
+
40
+ before do
41
+ Image.any_instance.should_receive(:analysis).twice
42
+ end
43
+
44
+ it { image.resize(320, 240) }
45
+ end
46
+ end
47
+ end
48
+ end
@@ -8,6 +8,7 @@ module Gnawrnip
8
8
  end
9
9
 
10
10
  before do
11
+ Screenshot.stub(:take).and_return('foo')
11
12
  photographer.reset!
12
13
  photographer.take_shot
13
14
  photographer.take_shot
@@ -16,6 +16,7 @@ module Gnawrnip
16
16
  end
17
17
 
18
18
  before do
19
+ Gnawrnip.photographer.stub(:take_shot)
19
20
  Gnawrnip.photographer.stub(:frames) { ['aiueo', nil, 'lllll'] }
20
21
  end
21
22
 
@@ -11,8 +11,9 @@ module Gnawrnip
11
11
  end
12
12
  end
13
13
 
14
- subject { lambda { Screenshot.take } }
15
- it { should raise_error Capybara::NotSupportedByDriverError }
14
+ it 'should raise Capybara::NotSupportByDriverError' do
15
+ expect { Screenshot.take }.to raise_error Capybara::NotSupportedByDriverError
16
+ end
16
17
  end
17
18
  end
18
19
 
@@ -30,81 +31,24 @@ module Gnawrnip
30
31
  Time.stub(:now).and_return(now, now + 3)
31
32
  end
32
33
 
33
- subject do
34
- lambda {
34
+ it 'should raise Timeout Error' do
35
+ expect {
35
36
  Capybara.using_wait_time 2 do
36
37
  Screenshot.take
37
38
  end
38
- }
39
+ }.to raise_error Timeout::Error
39
40
  end
40
-
41
- it { should raise_error Timeout::Error }
42
41
  end
43
42
  end
44
43
  end
45
44
 
46
- context 'No given Gnawrnip.max_frame_size' do
45
+ context 'success screenshot' do
47
46
  describe '.take' do
48
- subject { Screenshot.take.read }
49
-
50
- context 'No given max frame size' do
51
- before do
52
- Gnawrnip.max_frame_size = nil
53
- Screenshot.should_not_receive(:resize)
54
- end
55
-
56
- it { should == "screenshot" }
57
- end
58
- end
59
- end
60
-
61
- context 'Given Gnawrnip.max_frame_size' do
62
- before do
63
- OilyPNG::Canvas.stub(:from_file) { oily_png }
64
- end
65
-
66
- subject { Screenshot.take.read }
67
-
68
- context 'width larger than height.' do
69
- let(:oily_png) do
70
- oily_png = double('oily_png', width: 640, height: 480, save: nil)
71
- oily_png.should_receive(:resample_bilinear!).with(300, 225)
72
- oily_png
73
- end
74
-
75
- before do
76
- Gnawrnip.max_frame_size = 300
77
- end
78
-
79
- it { should == "screenshot" }
80
- end
81
-
82
- context 'height larger than width.' do
83
- let(:oily_png) do
84
- oily_png = double('oily_png', width: 480, height: 640, save: nil)
85
- oily_png.should_receive(:resample_bilinear!).with(300, 400)
86
- oily_png
87
- end
88
-
89
- before do
90
- Gnawrnip.max_frame_size = 400
91
- end
92
-
93
- it { should == "screenshot" }
94
- end
95
-
96
- context 'Given max_frame_size larger than original.' do
97
- let(:oily_png) do
98
- oily_png = double('oily_png', width: 640, height: 480, save: nil)
99
- oily_png.should_receive(:resample_bilinear!).with(640, 480)
100
- oily_png
101
- end
102
-
103
47
  before do
104
- Gnawrnip.max_frame_size = 1024
48
+ Screenshot.should_receive(:shot).once
105
49
  end
106
50
 
107
- it { should == "screenshot" }
51
+ it { Screenshot.take }
108
52
  end
109
53
  end
110
54
  end
@@ -15,30 +15,26 @@ module Gnawrnip
15
15
  context 'has multiple data' do
16
16
  let(:data_list) do
17
17
  [
18
- GnawrnipTest.image('aiueo'),
19
- GnawrnipTest.image('12345'),
20
- GnawrnipTest.image('abcde')
18
+ double(to_base64: 'aiueo', width: 640, height: 480),
19
+ double(to_base64: '12345', width: 512, height: 200),
20
+ double(to_base64: 'abcde', width: 640, height: 320)
21
21
  ]
22
22
  end
23
23
 
24
24
  it 'should get image tag and source that base64 encoded' do
25
- data1 = Base64.strict_encode64('aiueo')
26
- data2 = Base64.strict_encode64('12345')
27
- data3 = Base64.strict_encode64('abcde')
28
25
  should include '<div class="screenshot animation">'
29
- should include '<img src="data:image/png;base64,' + data1 + '"/>'
30
- should include '<img src="data:image/png;base64,' + data2 + '"/>'
31
- should include '<img src="data:image/png;base64,' + data3 + '"/>'
26
+ should include '<img width="640" height="480" src="data:image/png;base64,aiueo"/>'
27
+ should include '<img width="512" height="200" src="data:image/png;base64,12345"/>'
28
+ should include '<img width="640" height="320" src="data:image/png;base64,abcde"/>'
32
29
  should include '<div class="nav">'
33
30
  end
34
31
  end
35
32
 
36
33
  context 'has single data' do
37
- let(:data_list) { [GnawrnipTest.image('aiueo')] }
34
+ let(:data_list) { [ double(to_base64: 'abcde', width: 640, height: 480) ] }
38
35
  it {
39
- data = Base64.strict_encode64('aiueo')
40
36
  should include '<div class="screenshot">'
41
- should include '<img src="data:image/png;base64,' + data + '"/></div>'
37
+ should include '<img width="640" height="480" src="data:image/png;base64,abcde"/></div>'
42
38
  should_not include '<div class="nav">'
43
39
  }
44
40
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gnawrnip
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
5
- prerelease:
4
+ version: 0.2.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Wataru MIYAGUNI
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-11-16 00:00:00.000000000 Z
11
+ date: 2013-11-28 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: capybara
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,39 +27,34 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: turnip_formatter
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
37
- version: 0.2.8
33
+ version: 0.2.9
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
45
- version: 0.2.8
40
+ version: 0.2.9
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: oily_png
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: bundler
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ~>
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ~>
76
67
  - !ruby/object:Gem::Version
@@ -78,49 +69,43 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rake
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: rspec
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: coveralls
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - '>='
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - '>='
124
109
  - !ruby/object:Gem::Version
125
110
  version: '0'
126
111
  description: Gnawrnip is a TurnipFormatter Add-on that provides put a screen shot
@@ -145,7 +130,9 @@ files:
145
130
  - example/web.rb
146
131
  - gnawrnip.gemspec
147
132
  - lib/gnawrnip.rb
133
+ - lib/gnawrnip/developer.rb
148
134
  - lib/gnawrnip/ext/capybara/session.rb
135
+ - lib/gnawrnip/image.rb
149
136
  - lib/gnawrnip/no_screenshot.png
150
137
  - lib/gnawrnip/photographer.rb
151
138
  - lib/gnawrnip/publisher.rb
@@ -153,6 +140,8 @@ files:
153
140
  - lib/gnawrnip/screenshot.rb
154
141
  - lib/gnawrnip/step_screenshot.rb
155
142
  - lib/gnawrnip/version.rb
143
+ - spec/gnawrnip/developer_spec.rb
144
+ - spec/gnawrnip/image_spec.rb
156
145
  - spec/gnawrnip/photographer_spec.rb
157
146
  - spec/gnawrnip/rspec_spec.rb
158
147
  - spec/gnawrnip/screenshot_spec.rb
@@ -161,35 +150,30 @@ files:
161
150
  homepage: https://github.com/gongo/gnawrnip
162
151
  licenses:
163
152
  - MIT
153
+ metadata: {}
164
154
  post_install_message:
165
155
  rdoc_options: []
166
156
  require_paths:
167
157
  - lib
168
158
  required_ruby_version: !ruby/object:Gem::Requirement
169
- none: false
170
159
  requirements:
171
- - - ! '>='
160
+ - - '>='
172
161
  - !ruby/object:Gem::Version
173
162
  version: '0'
174
- segments:
175
- - 0
176
- hash: 95231575692747815
177
163
  required_rubygems_version: !ruby/object:Gem::Requirement
178
- none: false
179
164
  requirements:
180
- - - ! '>='
165
+ - - '>='
181
166
  - !ruby/object:Gem::Version
182
167
  version: '0'
183
- segments:
184
- - 0
185
- hash: 95231575692747815
186
168
  requirements: []
187
169
  rubyforge_project:
188
- rubygems_version: 1.8.23
170
+ rubygems_version: 2.0.14
189
171
  signing_key:
190
- specification_version: 3
172
+ specification_version: 4
191
173
  summary: Add-on for TurnipFormatter with Capybara
192
174
  test_files:
175
+ - spec/gnawrnip/developer_spec.rb
176
+ - spec/gnawrnip/image_spec.rb
193
177
  - spec/gnawrnip/photographer_spec.rb
194
178
  - spec/gnawrnip/rspec_spec.rb
195
179
  - spec/gnawrnip/screenshot_spec.rb