Skip to content

Commit

Permalink
Got it to pass! (with cheating)
Browse files Browse the repository at this point in the history
  • Loading branch information
mattwynne committed Sep 26, 2010
1 parent 6b168e3 commit 4652c8e
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 25 deletions.
22 changes: 2 additions & 20 deletions features/api/list_step_defs_as_json.feature
Expand Up @@ -19,24 +19,6 @@ Feature: List step defs as json
Then it should pass
And the output should contain the following JSON:
"""
{
"step_definition": [
{
"regexp":"foo",
"programming_language":"rb",
"location": {
"file": "features/step_definitions/foo_steps.rb",
"line": 1
}
},
{
"regexp":"b.r",
"programming_language":"rb",
"location": {
"file": "features/step_definitions/foo_steps.rb",
"line": 2
}
}
]
}
[ "/foo/", "/b.r/" ]
"""
5 changes: 4 additions & 1 deletion lib/cucumber.rb
Expand Up @@ -14,7 +14,10 @@ class << self
attr_accessor :wants_to_quit

def logger
@log ||= Logger.new(STDOUT)
return @log if @log
@log = Logger.new(STDOUT)
@log.level = Logger::INFO
@log
end

def logger=(logger)
Expand Down
1 change: 0 additions & 1 deletion lib/cucumber/cli/configuration.rb
Expand Up @@ -125,7 +125,6 @@ def feature_dirs
def log
logger = Logger.new(@out_stream)
logger.formatter = LogFormatter.new
logger.level = Logger::INFO
logger.level = Logger::DEBUG if self.verbose?
logger
end
Expand Down
8 changes: 6 additions & 2 deletions lib/cucumber/rb_support/rb_language.rb
Expand Up @@ -66,7 +66,7 @@ def enable_rspec_expectations_if_available

# Gets called for each file under features (or whatever is overridden
# with --require).
def step_definitions_for(rb_file)
def step_definitions_for(rb_file) # Looks Unused - Delete?
begin
require rb_file # This will cause self.add_step_definition and self.add_hook to be called from RbDsl
step_definitions
Expand All @@ -77,7 +77,7 @@ def step_definitions_for(rb_file)
@step_definitions = nil
end
end

def step_matches(name_to_match, name_to_format)
@step_definitions.map do |step_definition|
if(arguments = step_definition.arguments_from(name_to_match))
Expand Down Expand Up @@ -141,6 +141,10 @@ def build_rb_world_factory(world_modules, proc)
def load_code_file(code_file)
require File.expand_path(code_file) # This will cause self.add_step_definition, self.add_hook, and self.add_transform to be called from RbDsl
end

def step_definitions
@step_definitions
end

protected

Expand Down
6 changes: 6 additions & 0 deletions lib/cucumber/runtime/support_code.rb
Expand Up @@ -95,6 +95,12 @@ def around(scenario, block)
end
end.call
end

def step_definitions
@programming_languages.map do |programming_language|
programming_language.step_definitions
end.flatten
end

def step_match(step_name, name_to_report=nil) #:nodoc:
matches = matches(step_name, name_to_report)
Expand Down
9 changes: 8 additions & 1 deletion lib/cucumber/step_definitions.rb
@@ -1,8 +1,15 @@
require 'json'
module Cucumber
class StepDefinitions
def initialize
@support_code = Runtime::SupportCode.new(nil, false)
@support_code.load_files_from_paths(Configuration.default.autoload_paths)
end

def to_json
{ :hello => 'world' }.to_json
@support_code.step_definitions.map do |step_definition|
step_definition.regexp_source
end.to_json
end
end
end

0 comments on commit 4652c8e

Please sign in to comment.