cukesalad 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. data/Examples/Calculator/Gemfile +4 -0
  2. data/Examples/Calculator/Gemfile.lock +36 -20
  3. data/Examples/Calculator/README.md +7 -0
  4. data/Examples/Calculator/cucumber.yml +1 -1
  5. data/Examples/Calculator/features/addition.feature +1 -1
  6. data/Examples/Calculator/features/lib/{alternative → browser}/roles/calculating_web_user.rb +1 -1
  7. data/Examples/Calculator/features/lib/default/roles/calculating_individual.rb +3 -5
  8. data/Examples/Calculator/features/lib/default/tasks/reference/calculations.rb +4 -2
  9. data/Examples/Calculator/features/subtraction.feature +1 -1
  10. data/Examples/Calculator/lib/calculator_operations.rb +4 -0
  11. data/Examples/Calculator/lib/web_calculator.rb +17 -20
  12. data/Examples/Calculator/views/index.erb +7 -0
  13. data/Examples/Calculator/views/layout.erb +2 -0
  14. data/Gemfile.lock +12 -12
  15. data/VERSION +1 -1
  16. data/cukesalad.gemspec +2 -2
  17. data/features/README.markdown +39 -273
  18. data/features/a_simple_tutorial/README.markdown +277 -0
  19. data/features/creating_a_new_project.feature +24 -22
  20. data/features/defining_roles/README.md +29 -0
  21. data/features/{define_a_role.feature → defining_roles/define_a_role.feature} +8 -0
  22. data/features/{prepare_the_actor_for_the_role.feature → defining_roles/prepare_the_actor_for_the_role.feature} +0 -0
  23. data/features/defining_tasks/README.md +12 -0
  24. data/features/{define_a_task.feature → defining_tasks/define_a_task.feature} +58 -17
  25. data/features/{define_a_task_with_arguments.feature → defining_tasks/define_a_task_with_arguments.feature} +0 -0
  26. data/features/{remember_information_between_steps.feature → defining_tasks/remember_information_between_steps.feature} +0 -0
  27. data/features/expectations/README.md +21 -0
  28. data/features/{expressing_expectations.feature → expectations/expressing_expectations.feature} +0 -0
  29. data/features/lib/tasks/interactively_run.rb +5 -0
  30. data/features/lib/tasks/see_the_step_has.rb +1 -1
  31. data/lib/cukesalad/actor.rb +5 -5
  32. data/lib/cukesalad/cli.rb +1 -1
  33. data/lib/cukesalad/cucumber_steps.rb +3 -7
  34. data/lib/cukesalad/specifics.rb +3 -3
  35. data/lib/cukesalad/version.rb +1 -1
  36. data/spec/cukesalad/cli_spec.rb +1 -1
  37. metadata +35 -24
@@ -0,0 +1,21 @@
1
+ In your scenario, you'll want to express expectations in a number of forms.
2
+
3
+ The most comprehensive representation of the various ways you can express expectations is in the full set of cukesalad features.
4
+
5
+ The most basic is as follows:
6
+
7
+ Then I should see the answer '10'
8
+
9
+ For this to work, you need a task that returns a value.
10
+
11
+ in_order_to "see the answer" do
12
+ look_at_the_display
13
+ end
14
+
15
+ Your role will need a method called `look_at_the_display` that returns a value.
16
+
17
+ See the expectations examples for the fundamentals.
18
+
19
+ See the full set of cukesalad features for examples of the different forms your expectations can take.
20
+
21
+ All of the cukesalad features use cukesalad to test itself.
@@ -0,0 +1,5 @@
1
+ in_order_to "interactively run", the_command: :command, and_type: :answer do
2
+ @aruba_timeout_seconds = 10
3
+ run_interactive unescape( the :command )
4
+ type "#{the :answer}\n"
5
+ end
@@ -1,4 +1,4 @@
1
- in_order_to "SeeItHas" do
1
+ in_order_to "see it has" do
2
2
  outcome = {1 => "failed", 0 => "passed"}
3
3
  return 'pending' if all_output.include? 'pending'
4
4
  outcome[@last_exit_status]
@@ -2,17 +2,17 @@ require 'cukesalad/director'
2
2
 
3
3
  module CukeSalad
4
4
  class Actor
5
-
5
+
6
6
  def initialize this_type_of_role, directed_by=Director.new
7
7
  @director = directed_by
8
8
  @note_pad = {}
9
9
  get_into_character_for this_type_of_role
10
10
  end
11
-
11
+
12
12
  def perform described_task, details = {}
13
13
  get_ready_to_perform described_task
14
14
  @info = details
15
- perform_task
15
+ perform_task
16
16
  end
17
17
  alias :answer :perform
18
18
 
@@ -21,10 +21,10 @@ module CukeSalad
21
21
  see_how_to_do the_role
22
22
  role_preparation
23
23
  end
24
-
24
+
25
25
  def get_ready_to_perform something
26
26
  the_thing = @director.how_do_i_perform something
27
- see_how_to_do the_thing
27
+ see_how_to_do the_thing
28
28
  end
29
29
 
30
30
  def see_how_to_do something
data/lib/cukesalad/cli.rb CHANGED
@@ -54,7 +54,7 @@ module CukeSalad
54
54
 
55
55
  def configure
56
56
  cd "features/support"
57
- content = "require 'cukesalad'\n begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end"
57
+ content = "\nrequire 'cukesalad'\nbegin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end"
58
58
  append_to_file "env.rb",content
59
59
  end
60
60
 
@@ -1,4 +1,4 @@
1
- require 'cukesalad'
1
+ require 'cukesalad/salad'
2
2
 
3
3
  def in_order_to(do_something, *with_attributes, &actions)
4
4
  CukeSalad::TaskAuthor.in_order_to(do_something, *with_attributes, &actions)
@@ -7,15 +7,11 @@ end
7
7
  World(CukeSalad::TaskAuthor)
8
8
  World(CukeSalad::Specifics)
9
9
 
10
- When /^I say hello CukeSalad$/ do
11
- puts "CukeSalad says: Hello!!"
12
- end
13
-
14
- Given /^(?:I am|you are) a ([a-zA-Z ]+)$/ do |role|
10
+ Given /^(?:I am|you are) a(?:n)? ([a-zA-Z ]+)$/ do |role|
15
11
  @actor = CukeSalad::Actor.new(role)
16
12
  end
17
13
 
18
- When /^(?:I|you) (?:attempt to|was able to|were able to|did)? ([A-Z a-z_-]*)(?:[:|,] (.*))?:?$/ do | this_task, details, *and_more |
14
+ When /^(?:I (?!am)|you (?!are))(?:attempt to |was able to |were able to |did )?((?!should)[A-Z a-z\d_-]*)(?:[:|,] (.*))?:?$/ do | this_task, details, *and_more |
19
15
  info = understand_the details unless details.nil?
20
16
  info[info.keys.last] = and_more[0] unless and_more.empty?
21
17
  @actor.perform this_task, info unless info.nil?
@@ -3,14 +3,14 @@ module CukeSalad
3
3
  def understand_the details
4
4
  @info = with_specifics_from( details )
5
5
  end
6
-
6
+
7
7
  def value_of(symbol)
8
8
  @info[symbol]
9
9
  end
10
10
 
11
11
  def with_specifics_from details
12
12
  result = {}
13
- names_and_values_in(details).each_slice(2) do |name_value|
13
+ names_and_values_in(details).each_slice(2) do |name_value|
14
14
  result[symbolized name_value[0]] = the_value_from_the name_value[1]
15
15
  end
16
16
  result
@@ -29,7 +29,7 @@ module CukeSalad
29
29
  name.strip.gsub(' ', '_').to_sym
30
30
  end
31
31
 
32
- def the_value_from_the item
32
+ def the_value_from_the item
33
33
  item.gsub(/((?:^'|'$)|(?:^"|"$))/, '') unless item.nil?
34
34
  end
35
35
  end
@@ -1,3 +1,3 @@
1
1
  module CukeSalad
2
- VERSION = "0.7.0"
2
+ VERSION = "0.8.0"
3
3
  end
@@ -42,7 +42,7 @@ describe CukeSalad::CLI do
42
42
  end
43
43
 
44
44
  it 'env.rb has the right content' do
45
- content = "require 'cukesalad'\n begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end"
45
+ content = "\nrequire 'cukesalad'\nbegin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end"
46
46
  file_content(file).should == content
47
47
  end
48
48
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: cukesalad
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.7.0
5
+ version: 0.8.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - RiverGlide
@@ -10,17 +10,16 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-07-03 00:00:00 +01:00
14
- default_executable: cukesalad
13
+ date: 2011-09-14 00:00:00 Z
15
14
  dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: cucumber
18
17
  requirement: &id001 !ruby/object:Gem::Requirement
19
18
  none: false
20
19
  requirements:
21
- - - ">="
20
+ - - "="
22
21
  - !ruby/object:Gem::Version
23
- version: 0.10.0
22
+ version: 1.0.2
24
23
  type: :runtime
25
24
  prerelease: false
26
25
  version_requirements: *id001
@@ -40,9 +39,9 @@ dependencies:
40
39
  requirement: &id003 !ruby/object:Gem::Requirement
41
40
  none: false
42
41
  requirements:
43
- - - ">="
42
+ - - "="
44
43
  - !ruby/object:Gem::Version
45
- version: 0.3.5
44
+ version: 0.4.3
46
45
  type: :runtime
47
46
  prerelease: false
48
47
  version_requirements: *id003
@@ -99,7 +98,7 @@ files:
99
98
  - Examples/Calculator/features/a_place_to_start.feature
100
99
  - Examples/Calculator/features/addition.feature
101
100
  - Examples/Calculator/features/complex_calculations.feature
102
- - Examples/Calculator/features/lib/alternative/roles/calculating_web_user.rb
101
+ - Examples/Calculator/features/lib/browser/roles/calculating_web_user.rb
103
102
  - Examples/Calculator/features/lib/default/roles/calculating_individual.rb
104
103
  - Examples/Calculator/features/lib/default/tasks/arithmetic/add.rb
105
104
  - Examples/Calculator/features/lib/default/tasks/arithmetic/calculate.rb
@@ -111,10 +110,13 @@ files:
111
110
  - Examples/Calculator/features/support/env.rb
112
111
  - Examples/Calculator/features/typical_workflow.feature
113
112
  - Examples/Calculator/lib/calculator.rb
113
+ - Examples/Calculator/lib/calculator_operations.rb
114
114
  - Examples/Calculator/lib/config.ru
115
115
  - Examples/Calculator/lib/web_calculator.rb
116
116
  - Examples/Calculator/spec/calculator_spec.rb
117
117
  - Examples/Calculator/spec/web_calculator_spec.rb
118
+ - Examples/Calculator/views/index.erb
119
+ - Examples/Calculator/views/layout.erb
118
120
  - Gemfile
119
121
  - Gemfile.lock
120
122
  - LICENSE
@@ -125,17 +127,24 @@ files:
125
127
  - cucumber.yml
126
128
  - cukesalad.gemspec
127
129
  - features/README.markdown
130
+ - features/a_simple_tutorial/README.markdown
128
131
  - features/creating_a_new_project.feature
129
- - features/define_a_role.feature
130
- - features/define_a_task.feature
131
- - features/define_a_task_with_arguments.feature
132
- - features/expressing_expectations.feature
132
+ - features/defining_roles/README.md
133
+ - features/defining_roles/define_a_role.feature
134
+ - features/defining_roles/prepare_the_actor_for_the_role.feature
135
+ - features/defining_tasks/README.md
136
+ - features/defining_tasks/define_a_task.feature
137
+ - features/defining_tasks/define_a_task_with_arguments.feature
138
+ - features/defining_tasks/remember_information_between_steps.feature
139
+ - features/expectations/README.md
140
+ - features/expectations/expressing_expectations.feature
133
141
  - features/lib/roles/step_free_cuker.rb
134
142
  - features/lib/tasks/create_a_file.rb
135
143
  - features/lib/tasks/create_a_new_cukesalad_project.rb
136
144
  - features/lib/tasks/create_a_role.rb
137
145
  - features/lib/tasks/create_a_task.rb
138
146
  - features/lib/tasks/create_directories.rb
147
+ - features/lib/tasks/interactively_run.rb
139
148
  - features/lib/tasks/not_create_a_role.rb
140
149
  - features/lib/tasks/not_create_a_task.rb
141
150
  - features/lib/tasks/not_previously_take_note_of_something.rb
@@ -143,8 +152,6 @@ files:
143
152
  - features/lib/tasks/run_a_scenario.rb
144
153
  - features/lib/tasks/see_a_reply.rb
145
154
  - features/lib/tasks/see_the_step_has.rb
146
- - features/prepare_the_actor_for_the_role.feature
147
- - features/remember_information_between_steps.feature
148
155
  - features/support/env.rb
149
156
  - lib/cukesalad.rb
150
157
  - lib/cukesalad/actor.rb
@@ -163,7 +170,6 @@ files:
163
170
  - spec/cukesalad/specifics_spec.rb
164
171
  - spec/cukesalad/task_author_spec.rb
165
172
  - spec/spec_helper.rb
166
- has_rdoc: true
167
173
  homepage: https://github.com/RiverGlide/CukeSalad
168
174
  licenses:
169
175
  - MIT
@@ -177,7 +183,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
177
183
  requirements:
178
184
  - - ">="
179
185
  - !ruby/object:Gem::Version
180
- hash: 3570330056691710889
186
+ hash: 2889682039650591259
181
187
  segments:
182
188
  - 0
183
189
  version: "0"
@@ -186,30 +192,37 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
192
  requirements:
187
193
  - - ">="
188
194
  - !ruby/object:Gem::Version
189
- hash: 3570330056691710889
195
+ hash: 2889682039650591259
190
196
  segments:
191
197
  - 0
192
198
  version: "0"
193
199
  requirements: []
194
200
 
195
201
  rubyforge_project:
196
- rubygems_version: 1.6.1
202
+ rubygems_version: 1.8.10
197
203
  signing_key:
198
204
  specification_version: 3
199
205
  summary: Friction Free BDD/ATDD with cucumber
200
206
  test_files:
201
207
  - features/README.markdown
208
+ - features/a_simple_tutorial/README.markdown
202
209
  - features/creating_a_new_project.feature
203
- - features/define_a_role.feature
204
- - features/define_a_task.feature
205
- - features/define_a_task_with_arguments.feature
206
- - features/expressing_expectations.feature
210
+ - features/defining_roles/README.md
211
+ - features/defining_roles/define_a_role.feature
212
+ - features/defining_roles/prepare_the_actor_for_the_role.feature
213
+ - features/defining_tasks/README.md
214
+ - features/defining_tasks/define_a_task.feature
215
+ - features/defining_tasks/define_a_task_with_arguments.feature
216
+ - features/defining_tasks/remember_information_between_steps.feature
217
+ - features/expectations/README.md
218
+ - features/expectations/expressing_expectations.feature
207
219
  - features/lib/roles/step_free_cuker.rb
208
220
  - features/lib/tasks/create_a_file.rb
209
221
  - features/lib/tasks/create_a_new_cukesalad_project.rb
210
222
  - features/lib/tasks/create_a_role.rb
211
223
  - features/lib/tasks/create_a_task.rb
212
224
  - features/lib/tasks/create_directories.rb
225
+ - features/lib/tasks/interactively_run.rb
213
226
  - features/lib/tasks/not_create_a_role.rb
214
227
  - features/lib/tasks/not_create_a_task.rb
215
228
  - features/lib/tasks/not_previously_take_note_of_something.rb
@@ -217,8 +230,6 @@ test_files:
217
230
  - features/lib/tasks/run_a_scenario.rb
218
231
  - features/lib/tasks/see_a_reply.rb
219
232
  - features/lib/tasks/see_the_step_has.rb
220
- - features/prepare_the_actor_for_the_role.feature
221
- - features/remember_information_between_steps.feature
222
233
  - features/support/env.rb
223
234
  - spec/cukesalad/actor_spec.rb
224
235
  - spec/cukesalad/cli_spec.rb