kappa-maki 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/kappa-maki.rb +80 -0
- metadata +74 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1a3ce22d3ef8e5072b53567abe382e6cb770199a
|
4
|
+
data.tar.gz: ad838f6ce317d6f98bc6c45e225fbc59c4b336ab
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 76b0ddbb53c3dfe6a3b5b5af2adec537e9ef193bea191a7b9eec6d06d5e89d9c64042dcf1249ea826f8d77d44ff3e324df9d4b0ac1cbe491b8dad958eed8cdd4
|
7
|
+
data.tar.gz: 7e6f6a8c8193c7a5f5694dc3f10f587063e13ce04b7370642a88fb161c2cca661b92876bbb7f6ac81e693b32e8abea751aacc1b7c6fd4f6bcf79338625ca889d
|
data/lib/kappa-maki.rb
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
|
3
|
+
module Cucumber
|
4
|
+
module Features
|
5
|
+
# This is the module where users will add their features.
|
6
|
+
end
|
7
|
+
|
8
|
+
class FeatureSteps
|
9
|
+
include RSpec::Matchers
|
10
|
+
def self.namespace
|
11
|
+
self.name.split('::').last
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.underscore_step_name(step_string)
|
15
|
+
step_string.gsub(/[^a-zA-Z0-9!?]/, '_').downcase.to_sym
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.camelize_feature_name(feature_name)
|
19
|
+
feature_name.gsub(/[^a-zA-Z0-9!?]/, '')
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.namespace_step(step_string)
|
23
|
+
"[#{self.namespace}] #{step_string}"
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.step(step_string, &block)
|
27
|
+
if step_string.class == Regexp
|
28
|
+
raise "Feature-scoped step definitions do not allow regular expressions. Use simple strings instead."
|
29
|
+
end
|
30
|
+
|
31
|
+
method_name = self.underscore_step_name(step_string)
|
32
|
+
|
33
|
+
if method_name.length < 3
|
34
|
+
raise "Step definition must be at least 3 characters long. Step: '#{step_string}'"
|
35
|
+
end
|
36
|
+
|
37
|
+
define_method(method_name, &block)
|
38
|
+
|
39
|
+
namespaced_step = self.namespace_step(step_string)
|
40
|
+
|
41
|
+
feature_class = self
|
42
|
+
|
43
|
+
delegate_block = Proc.new do
|
44
|
+
@instance ||= feature_class.new
|
45
|
+
@instance.send method_name
|
46
|
+
end
|
47
|
+
|
48
|
+
Cucumber::RbSupport::RbDsl.register_rb_step_definition(namespaced_step, delegate_block)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
module SupportCode_NamespacedSteps
|
54
|
+
def find_match(test_step)
|
55
|
+
feature_name = test_step.source.first.short_name
|
56
|
+
|
57
|
+
feature_namespace = Cucumber::FeatureSteps.camelize_feature_name(feature_name)
|
58
|
+
underscored_step = Cucumber::FeatureSteps.underscore_step_name(test_step.name)
|
59
|
+
|
60
|
+
# Instantiate the feature steps class for the duration of the scenario, if not already.
|
61
|
+
# Instance variables will be scoped therein, and only usable for the life of the scenario.
|
62
|
+
feature_class = Cucumber::Features.const_get(feature_namespace)
|
63
|
+
@feature ||= feature_class.new
|
64
|
+
|
65
|
+
begin
|
66
|
+
# Local (namespaced) step definitions override global ones, if both are defined.
|
67
|
+
step_match(feature_class.namespace_step(test_step.name))
|
68
|
+
rescue Cucumber::Undefined
|
69
|
+
super
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
module Cucumber
|
75
|
+
class Runtime
|
76
|
+
class SupportCode
|
77
|
+
prepend SupportCode_NamespacedSteps
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
metadata
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: kappa-maki
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Allan Tokuda
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-10-22 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: cucumber-ruby
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.1'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '3.1'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '3.1'
|
41
|
+
description: Provide Cucumber users the ability to create locally scoped step definitions
|
42
|
+
and methods such that they are only usable from within one feature. In the style
|
43
|
+
of Spinach.
|
44
|
+
email: praetis@gmail.com
|
45
|
+
executables: []
|
46
|
+
extensions: []
|
47
|
+
extra_rdoc_files: []
|
48
|
+
files:
|
49
|
+
- lib/kappa-maki.rb
|
50
|
+
homepage: http://rubygems.org/gems/kappa-maki
|
51
|
+
licenses:
|
52
|
+
- MIT
|
53
|
+
metadata: {}
|
54
|
+
post_install_message:
|
55
|
+
rdoc_options: []
|
56
|
+
require_paths:
|
57
|
+
- lib
|
58
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
requirements: []
|
69
|
+
rubyforge_project:
|
70
|
+
rubygems_version: 2.2.2
|
71
|
+
signing_key:
|
72
|
+
specification_version: 4
|
73
|
+
summary: Kappa Maki
|
74
|
+
test_files: []
|