cuki 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm use 1.8.7
data/Gemfile CHANGED
@@ -8,9 +8,11 @@ group :development do
8
8
  gem "bundler", "~> 1.0.0"
9
9
  gem "jeweler", "~> 1.6.4"
10
10
  gem "rcov", ">= 0"
11
+ gem "rspec"
11
12
  end
12
13
 
13
- group :test do
14
- gem "rspec"
14
+ group :test do
15
15
  gem "cucumber"
16
+ gem "aruba"
17
+ gem "webmock"
16
18
  end
data/Gemfile.lock CHANGED
@@ -1,7 +1,19 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ addressable (2.2.6)
5
+ aruba (0.4.6)
6
+ bcat (>= 0.6.1)
7
+ childprocess (>= 0.2.0)
8
+ cucumber (>= 1.0.2)
9
+ rdiscount (>= 1.6.8)
10
+ rspec (>= 2.6.0)
11
+ bcat (0.6.2)
12
+ rack (~> 1.0)
4
13
  builder (3.0.0)
14
+ childprocess (0.2.2)
15
+ ffi (~> 1.0.6)
16
+ crack (0.3.1)
5
17
  cucumber (1.1.0)
6
18
  builder (>= 2.1.2)
7
19
  diff-lcs (>= 1.1.2)
@@ -9,6 +21,7 @@ GEM
9
21
  json (>= 1.4.6)
10
22
  term-ansicolor (>= 1.0.6)
11
23
  diff-lcs (1.1.3)
24
+ ffi (1.0.9)
12
25
  gherkin (2.5.1)
13
26
  json (>= 1.4.6)
14
27
  git (1.2.5)
@@ -19,8 +32,10 @@ GEM
19
32
  rake
20
33
  json (1.6.1)
21
34
  nokogiri (1.5.0)
35
+ rack (1.3.4)
22
36
  rake (0.9.2)
23
37
  rcov (0.9.11)
38
+ rdiscount (1.6.8)
24
39
  rspec (2.6.0)
25
40
  rspec-core (~> 2.6.0)
26
41
  rspec-expectations (~> 2.6.0)
@@ -31,11 +46,15 @@ GEM
31
46
  rspec-mocks (2.6.0)
32
47
  shoulda (2.11.3)
33
48
  term-ansicolor (1.0.6)
49
+ webmock (1.7.7)
50
+ addressable (~> 2.2, > 2.2.5)
51
+ crack (>= 0.1.7)
34
52
 
35
53
  PLATFORMS
36
54
  ruby
37
55
 
38
56
  DEPENDENCIES
57
+ aruba
39
58
  bundler (~> 1.0.0)
40
59
  cucumber
41
60
  httpclient
@@ -44,3 +63,4 @@ DEPENDENCIES
44
63
  rcov
45
64
  rspec
46
65
  shoulda
66
+ webmock
data/README.rdoc CHANGED
@@ -32,6 +32,10 @@ Run it from the command line:
32
32
  or, if using binstubs:
33
33
 
34
34
  bin/cuki pull
35
+
36
+ You can also pull a single feature:
37
+
38
+ cuki pull features/add_product.feature
35
39
 
36
40
  == Options
37
41
 
@@ -49,7 +53,7 @@ or, if using binstubs:
49
53
  == TODO
50
54
 
51
55
  * Handle links
52
- * Add tests
56
+ * Support for pushing features to Confluence (roundtrip editing)
53
57
 
54
58
  == Copyright
55
59
 
data/Rakefile CHANGED
@@ -25,22 +25,18 @@ Jeweler::Tasks.new do |gem|
25
25
  end
26
26
  Jeweler::RubygemsDotOrgTasks.new
27
27
 
28
- require 'rake/testtask'
29
- Rake::TestTask.new(:test) do |test|
30
- test.libs << 'lib' << 'test'
31
- test.pattern = 'test/**/test_*.rb'
32
- test.verbose = true
28
+ require 'rspec/core'
29
+ require 'rspec/core/rake_task'
30
+ RSpec::Core::RakeTask.new(:spec) do |spec|
31
+ spec.pattern = FileList['spec/**/*_spec.rb']
33
32
  end
34
33
 
35
- require 'rcov/rcovtask'
36
- Rcov::RcovTask.new do |test|
37
- test.libs << 'test'
38
- test.pattern = 'test/**/test_*.rb'
39
- test.verbose = true
40
- test.rcov_opts << '--exclude "gems/*"'
34
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
35
+ spec.pattern = 'spec/**/*_spec.rb'
36
+ spec.rcov = true
41
37
  end
42
38
 
43
- task :default => :test
39
+ task :default => :spec
44
40
 
45
41
  require 'rake/rdoctask'
46
42
  Rake::RDocTask.new do |rdoc|
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.4
1
+ 0.0.5
data/cuki.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "cuki"
8
- s.version = "0.0.4"
8
+ s.version = "0.0.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Andy Waite"]
12
- s.date = "2011-10-15"
12
+ s.date = "2011-10-16"
13
13
  s.description = ""
14
14
  s.email = "andy@andywaite.com"
15
15
  s.executables = ["cuki"]
@@ -19,6 +19,8 @@ Gem::Specification.new do |s|
19
19
  ]
20
20
  s.files = [
21
21
  ".document",
22
+ ".rspec",
23
+ ".rvmrc",
22
24
  "Gemfile",
23
25
  "Gemfile.lock",
24
26
  "LICENSE.txt",
@@ -28,9 +30,19 @@ Gem::Specification.new do |s|
28
30
  "bin/cuki",
29
31
  "cuki.gemspec",
30
32
  "cuki.yaml.sample",
33
+ "features/pull/pull.feature",
34
+ "features/pull/pull_single.feature",
35
+ "features/pull/tables.feature",
36
+ "features/pull/tags.feature",
37
+ "features/pull/textile.feature",
38
+ "features/push/push.feature",
39
+ "features/push/tables.feature",
40
+ "features/push/tags.feature",
41
+ "features/step_defs/pull_steps.rb",
42
+ "features/support/env.rb",
31
43
  "lib/cuki.rb",
32
- "test/helper.rb",
33
- "test/test_cuki.rb"
44
+ "spec/cuki_spec.rb",
45
+ "spec/spec_helper.rb"
34
46
  ]
35
47
  s.homepage = "http://github.com/andyw8/cuki"
36
48
  s.licenses = ["MIT"]
@@ -48,6 +60,7 @@ Gem::Specification.new do |s|
48
60
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
49
61
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
50
62
  s.add_development_dependency(%q<rcov>, [">= 0"])
63
+ s.add_development_dependency(%q<rspec>, [">= 0"])
51
64
  else
52
65
  s.add_dependency(%q<httpclient>, [">= 0"])
53
66
  s.add_dependency(%q<nokogiri>, [">= 0"])
@@ -55,6 +68,7 @@ Gem::Specification.new do |s|
55
68
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
56
69
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
57
70
  s.add_dependency(%q<rcov>, [">= 0"])
71
+ s.add_dependency(%q<rspec>, [">= 0"])
58
72
  end
59
73
  else
60
74
  s.add_dependency(%q<httpclient>, [">= 0"])
@@ -63,6 +77,7 @@ Gem::Specification.new do |s|
63
77
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
64
78
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
65
79
  s.add_dependency(%q<rcov>, [">= 0"])
80
+ s.add_dependency(%q<rspec>, [">= 0"])
66
81
  end
67
82
  end
68
83
 
@@ -0,0 +1,62 @@
1
+ Feature: Pull
2
+
3
+ Scenario: Missing action
4
+ When I run `cuki`
5
+ Then it should fail with:
6
+ """
7
+ No action given
8
+ """
9
+
10
+ Scenario: Missing config
11
+ Given no file named "config/cuki.yaml" exists
12
+ When I run `cuki pull`
13
+ Then it should fail with:
14
+ """
15
+ No config file found at config/cuki.yaml
16
+ """
17
+
18
+ Scenario: Pull all features
19
+ Given a file named "config/cuki.yaml" with:
20
+ """
21
+ ---
22
+ host: http://example.com
23
+ mappings:
24
+ 123: products/add_product
25
+ 456: products/remove_product
26
+ """
27
+ And a Confluence page on "example.com" with id 123:
28
+ """
29
+ <input id="content-title" value="Add Product">
30
+ <div id="markupTextarea">
31
+ This feature describes adding a product
32
+ </div>
33
+ """
34
+ And a Confluence page on "example.com" with id 456:
35
+ """
36
+ <input id="content-title" value="Remove Product">
37
+ <div id="markupTextarea">
38
+ This feature describes removing a product
39
+ </div>
40
+ """
41
+ When I run `cuki pull`
42
+ Then the file "features/products/add_product.feature" should contain exactly:
43
+ """
44
+ Feature: Add Product
45
+
46
+ http://example.com/pages/editpage.action?pageId=123
47
+
48
+
49
+ This feature describes adding a product
50
+
51
+ """
52
+ Then the file "features/products/remove_product.feature" should contain exactly:
53
+ """
54
+ Feature: Remove Product
55
+
56
+ http://example.com/pages/editpage.action?pageId=456
57
+
58
+
59
+ This feature describes removing a product
60
+
61
+ """
62
+
@@ -0,0 +1,28 @@
1
+ Feature: Pull single
2
+
3
+ Scenario: Pull all features
4
+ Given a file named "config/cuki.yaml" with:
5
+ """
6
+ ---
7
+ host: http://example.com
8
+ mappings:
9
+ 123: products/add_product
10
+ 456: products/remove_product
11
+ """
12
+ And a Confluence page on "example.com" with id 123:
13
+ """
14
+ <input id="content-title" value="Add Product">
15
+ <div id="markupTextarea">
16
+ This feature describes adding a product
17
+ </div>
18
+ """
19
+ And a Confluence page on "example.com" with id 456:
20
+ """
21
+ <input id="content-title" value="Remove Product">
22
+ <div id="markupTextarea">
23
+ This feature describes removing a product
24
+ </div>
25
+ """
26
+ When I run `cuki pull features/products/add_product.feature`
27
+ Then a file named "features/products/add_product.feature" should exist
28
+ But the file "features/products/remove_product.feature" should not exist
@@ -0,0 +1,40 @@
1
+ # Assume no header for single column tables?
2
+ Feature: Tables
3
+
4
+ Scenario: Table with more than one column
5
+
6
+ Given a file named "config/cuki.yaml" with:
7
+ """
8
+ ---
9
+ host: http://example.com
10
+ mappings:
11
+ 123: products/add_product
12
+ """
13
+ And a Confluence page on "example.com" with id 123:
14
+ """
15
+ <input id="content-title" value="Add Product">
16
+ <div id="markupTextarea">
17
+ h5. Scenario: Foo
18
+
19
+ Given this:
20
+ || foo || bar ||
21
+ | a | 1 |
22
+ | b | 2 |
23
+ </div>
24
+ """
25
+ When I run `cuki pull`
26
+ Then the file "features/products/add_product.feature" should contain exactly:
27
+ """
28
+ Feature: Add Product
29
+
30
+ http://example.com/pages/editpage.action?pageId=123
31
+
32
+
33
+ Scenario: Foo
34
+
35
+ Given this:
36
+ | foo | bar |
37
+ | a | 1 |
38
+ | b | 2 |
39
+
40
+ """
@@ -0,0 +1,32 @@
1
+ Feature: Tags
2
+
3
+ Scenario:
4
+ Given a file named "config/cuki.yaml" with:
5
+ """
6
+ ---
7
+ host: http://example.com
8
+ tags:
9
+ draft: "{info:title=Draft version}"
10
+ signed_off: "{info:title=Signed-off}"
11
+ mappings:
12
+ 123: products/add_product
13
+ """
14
+ And a Confluence page on "example.com" with id 123:
15
+ """
16
+ <input id="content-title" value="Add Product">
17
+ <div id="markupTextarea">{info:title=Draft version}
18
+ h5. Scenario: Foo
19
+ </div>
20
+ """
21
+ When I run `cuki pull`
22
+ Then the file "features/products/add_product.feature" should contain exactly:
23
+ """
24
+ @draft
25
+ Feature: Add Product
26
+
27
+ http://example.com/pages/editpage.action?pageId=123
28
+
29
+
30
+ Scenario: Foo
31
+
32
+ """
@@ -0,0 +1,32 @@
1
+ Feature: Textile
2
+
3
+ Scenario:
4
+ Given a file named "config/cuki.yaml" with:
5
+ """
6
+ ---
7
+ host: http://example.com
8
+ mappings:
9
+ 123: products/add_product
10
+ """
11
+ And a Confluence page on "example.com" with id 123:
12
+ """
13
+ <input id="content-title" value="Add Product">
14
+ <div id="markupTextarea">
15
+ h5. Scenario: Foo
16
+
17
+ h6. Scenario Outline: Bar
18
+ </div>
19
+ """
20
+ When I run `cuki pull`
21
+ Then the file "features/products/add_product.feature" should contain exactly:
22
+ """
23
+ Feature: Add Product
24
+
25
+ http://example.com/pages/editpage.action?pageId=123
26
+
27
+
28
+ Scenario: Foo
29
+
30
+ Scenario Outline: Bar
31
+
32
+ """
@@ -0,0 +1,79 @@
1
+ @pending
2
+ Feature: Push
3
+
4
+ Background:
5
+ Given a file named "config/cuki.yaml" with:
6
+ """
7
+ ---
8
+ host: http://mywiki
9
+ mappings:
10
+ 123: products/add_product
11
+ """
12
+
13
+ Scenario: Push a feature with no scenarios
14
+ Given a file named "config/cuki.yaml" with:
15
+ """
16
+ Feature: Hello world & all
17
+
18
+ This is my feature
19
+ """
20
+ When I run `cuki push features/products/add_product.feature`
21
+ Then the feature should be pushed to "http://mywiki/pages/editpage.action?pageId=123"
22
+ And the Confluence content should be:
23
+ """
24
+ This is my feature
25
+ """
26
+ And the Confluence title should be:
27
+ """
28
+ Hello world & all
29
+ """
30
+
31
+ Scenario: Push a feature containing a scenario
32
+ Given a file named "config/cuki.yaml" with:
33
+ """
34
+ Scenario: My scenario
35
+ Given something
36
+ When something
37
+ Then something
38
+ """
39
+ When I push that feature
40
+ Then the Confluence content should include:
41
+ """
42
+ h2. My scenario
43
+
44
+ Given something
45
+ When something
46
+ Then something
47
+ """
48
+
49
+ Scenario: Push a feature containing a scenario outline
50
+
51
+ The first row of the examples table should be a header row.
52
+ Given a feature file in "features/hello_world.feature"
53
+ And that feature includes the scenario:
54
+ """
55
+ Scenario: My scenario
56
+ Given <condition>
57
+ When <action>
58
+ Then <outcome>
59
+ Examples:
60
+ | condition | action | outcome |
61
+ | a | b | c |
62
+ """
63
+ When I push that feature
64
+ Then the Confluence content should include:
65
+ """
66
+ h2. My scenario
67
+
68
+ Given <condition>
69
+ When <action>
70
+ Then <outcome>
71
+ Examples:
72
+ || condition || action || outcome ||
73
+ | a | b | c |
74
+
75
+ """
76
+
77
+ Scenario: Push a feature containing a scenario outline with multiple example
78
+ Pending
79
+
@@ -0,0 +1,3 @@
1
+ @pending
2
+ Feature: Tables
3
+
@@ -0,0 +1,25 @@
1
+ @pending
2
+ Feature: Tags
3
+
4
+ Tags on a feature or scenario should be turned into {info} macros.
5
+
6
+ Scenario: Tagged feature
7
+
8
+ Tag names should be titleised, with underscores converted to spaces.
9
+ Given the feature:
10
+ """
11
+ @pending @in_progress @some-other
12
+ Feature: Hello world
13
+
14
+ Here is the feature
15
+ """
16
+ When I push that feature to Confluence
17
+ Then the Confluence content should be:
18
+ """
19
+ {info:Pending}
20
+ {info:In Progress}
21
+ {info:Some-other}
22
+
23
+ Here is a feature
24
+ """
25
+
@@ -0,0 +1,17 @@
1
+ Given /^a Confluence page on "([^"]*)" with id (\d+):$/ do |host, id, content|
2
+
3
+ # Since the command-line app runs in a difference process, we need serialize
4
+ # the URLs to be stubbed
5
+
6
+ @stubs ||= {}
7
+ @stubs["http://#{host}/pages/editpage.action?pageId=#{id}"] = content
8
+
9
+ File.open('stubs.json', 'w') do |f|
10
+ f.write @stubs.to_json
11
+ end
12
+
13
+ end
14
+
15
+ Given /^no file named "([^"]*)" exists$/ do |file|
16
+ File.delete(file) if File.exist?(file)
17
+ end
@@ -0,0 +1,9 @@
1
+ #ENV['PATH'] = "#{File.expand_path(File.dirname(__FILE__) + '/../../bin')}#{File::PATH_SEPARATOR}#{ENV['PATH']}"
2
+
3
+ require 'aruba/cucumber'
4
+ require 'webmock/cucumber'
5
+
6
+ Before do
7
+ @dirs = ["."]
8
+ FileUtils.rm_rf 'features/products'
9
+ end
data/lib/cuki.rb CHANGED
@@ -3,6 +3,16 @@ require 'httpclient'
3
3
  require 'nokogiri'
4
4
  require 'yaml'
5
5
  require 'CGI'
6
+ require 'webmock'
7
+ require 'json'
8
+
9
+ include WebMock::API
10
+ if File.exist?('stubs.json')
11
+ stubs = JSON.parse(File.open('stubs.json').read)
12
+ stubs.each_pair do |url, body|
13
+ stub_request(:get, url).to_return(:status => 200, :body => body, :headers => {})
14
+ end
15
+ end
6
16
 
7
17
  class Cuki
8
18
 
@@ -13,21 +23,35 @@ class Cuki
13
23
  end
14
24
 
15
25
  def initialize(args)
16
- raise "No command given" if args.empty?
26
+ if args.empty?
27
+ puts "No action given"
28
+ exit(1)
29
+ end
17
30
  parse_config_file
18
- command = args.first
19
- if 'pull' == command
31
+ action = args.first
32
+ if 'pull' == action
20
33
  verify_project
21
34
  configure_http_client
22
- @config['mappings'].each { |id, filepath| process_feature id, filepath }
23
- autoformat
24
- elsif 'push' == command
35
+ file = args[1]
36
+ if file
37
+ puts "got file: #{file}"
38
+ key = file.gsub('features/', '').gsub('.feature', '')
39
+ puts "key: #{key}"
40
+ id = @config['mappings'].invert[key]
41
+ filepath = key
42
+ process_feature id, filepath
43
+ else
44
+ @config['mappings'].each { |id, filepath| process_feature id, filepath }
45
+ end
46
+ #autoformat
47
+ elsif 'push' == action
25
48
  feature_to_be_pushed = args[1] # e.g. features/products/add_product.feature
26
49
  feature_as_in_yaml = feature_to_be_pushed.gsub('features/', '').gsub('.feature', '')
27
50
  id = @config['mappings'].invert[feature_as_in_yaml]
28
51
  raise "No mapping found for #{feature_as_in_yaml}" unless id
29
52
  else
30
- raise "Unknown command '#{command}"
53
+ puts "Unknown action '#{action}"
54
+ exit(1)
31
55
  end
32
56
  end
33
57
 
@@ -36,10 +60,14 @@ class Cuki
36
60
  def verify_project
37
61
  # check features folder exists
38
62
  raise "features folder not found" unless File.exists?('features')
39
- autoformat
63
+ #autoformat
40
64
  end
41
65
 
42
66
  def parse_config_file
67
+ unless File.exist?(CONFIG_PATH)
68
+ puts "No config file found at #{CONFIG_PATH}"
69
+ exit(1)
70
+ end
43
71
  @config = YAML::load( File.open( CONFIG_PATH ) )
44
72
  raise "Host not found in #{CONFIG_PATH}" unless @config["host"]
45
73
  raise "Mappings not found in #{CONFIG_PATH}" unless @config["mappings"]
@@ -58,13 +86,20 @@ class Cuki
58
86
  response = @client.get wiki_link
59
87
  doc = Nokogiri(response.body)
60
88
 
61
- process_tags
89
+ unless doc.at('#content-title')
90
+ puts "Not a valid confluence page:"
91
+ puts doc.to_s
92
+ exit(1)
93
+ end
62
94
 
63
95
  @content += "Feature: " + doc.at('#content-title')[:value] + "\n\n"
64
96
  @content += "#{wiki_link}\n\n"
65
97
  @content += CGI.unescapeHTML(doc.css('#markupTextarea').text)
66
98
 
67
99
  clean
100
+
101
+ process_tags
102
+
68
103
  save_file filepath
69
104
  end
70
105
 
@@ -85,20 +120,24 @@ class Cuki
85
120
  @content.gsub!('\\', '')
86
121
 
87
122
  # remove any unwanted headers
88
- @content.gsub!(/h\d\. /, '')
123
+ @content.gsub!(/h\d\. (Scenario: .*)/, '\1')
124
+ @content.gsub!(/h\d\. (Scenario Outline: .*)/, '\1')
89
125
 
90
- # remove any other confluence markup
91
- @content.gsub!(/\{.*\}/, '')
92
126
  end
93
127
 
94
128
  def process_tags
95
129
  tags = []
96
130
  if @config['tags']
97
- @config['tags'].each do |tag, snippet|
98
- tags << "@#{tag}" if @content.include?(snippet)
131
+ @config['tags'].each_pair do |tag, snippet|
132
+ tags << "@#{tag}" if @content.include?(snippet)
133
+ end
134
+ end
135
+ unless tags.empty?
136
+ @content = tags.join(' ') + "\n" + @content
137
+ tags.each do |tag|
138
+ @content.gsub!(@config['tags'][tag.gsub('@', '')], '')
99
139
  end
100
140
  end
101
- @content += tags.join(' ') + "\n" unless tags.empty?
102
141
  end
103
142
 
104
143
  def save_file(filepath)
data/spec/cuki_spec.rb ADDED
@@ -0,0 +1,7 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Cuki" do
4
+ it "fails" do
5
+ fail "hey buddy, you should probably rename this file and start specing for real"
6
+ end
7
+ end
@@ -0,0 +1,12 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'rspec'
4
+ require 'cuki'
5
+
6
+ # Requires supporting files with custom matchers and macros, etc,
7
+ # in ./support/ and its subdirectories.
8
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
+
10
+ RSpec.configure do |config|
11
+
12
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cuki
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 4
10
- version: 0.0.4
9
+ - 5
10
+ version: 0.0.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andy Waite
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-10-15 00:00:00 Z
18
+ date: 2011-10-16 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  requirement: &id001 !ruby/object:Gem::Requirement
@@ -105,6 +105,20 @@ dependencies:
105
105
  name: rcov
106
106
  prerelease: false
107
107
  type: :development
108
+ - !ruby/object:Gem::Dependency
109
+ requirement: &id007 !ruby/object:Gem::Requirement
110
+ none: false
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ hash: 3
115
+ segments:
116
+ - 0
117
+ version: "0"
118
+ version_requirements: *id007
119
+ name: rspec
120
+ prerelease: false
121
+ type: :development
108
122
  description: ""
109
123
  email: andy@andywaite.com
110
124
  executables:
@@ -116,6 +130,8 @@ extra_rdoc_files:
116
130
  - README.rdoc
117
131
  files:
118
132
  - .document
133
+ - .rspec
134
+ - .rvmrc
119
135
  - Gemfile
120
136
  - Gemfile.lock
121
137
  - LICENSE.txt
@@ -125,9 +141,19 @@ files:
125
141
  - bin/cuki
126
142
  - cuki.gemspec
127
143
  - cuki.yaml.sample
144
+ - features/pull/pull.feature
145
+ - features/pull/pull_single.feature
146
+ - features/pull/tables.feature
147
+ - features/pull/tags.feature
148
+ - features/pull/textile.feature
149
+ - features/push/push.feature
150
+ - features/push/tables.feature
151
+ - features/push/tags.feature
152
+ - features/step_defs/pull_steps.rb
153
+ - features/support/env.rb
128
154
  - lib/cuki.rb
129
- - test/helper.rb
130
- - test/test_cuki.rb
155
+ - spec/cuki_spec.rb
156
+ - spec/spec_helper.rb
131
157
  homepage: http://github.com/andyw8/cuki
132
158
  licenses:
133
159
  - MIT
data/test/helper.rb DELETED
@@ -1,18 +0,0 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- begin
4
- Bundler.setup(:default, :development)
5
- rescue Bundler::BundlerError => e
6
- $stderr.puts e.message
7
- $stderr.puts "Run `bundle install` to install missing gems"
8
- exit e.status_code
9
- end
10
- require 'test/unit'
11
- require 'shoulda'
12
-
13
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
- $LOAD_PATH.unshift(File.dirname(__FILE__))
15
- require 'cuki'
16
-
17
- class Test::Unit::TestCase
18
- end
data/test/test_cuki.rb DELETED
@@ -1,7 +0,0 @@
1
- require 'helper'
2
-
3
- class TestCuki < Test::Unit::TestCase
4
- should "probably rename this file and start testing for real" do
5
- flunk "hey buddy, you should probably rename this file and start testing for real"
6
- end
7
- end