class Level
Helper class when creating nested resources
Public Class Methods
new(levels)
click to toggle source
# File lib/cucumber-rest-bdd/level.rb, line 15 def initialize(levels) arr = [] while (matches = /^ (?:for|in|on) ([^"]+?)(?: with (?:key|id))? "([^"]*)"/ .match(levels)) levels = levels[matches[0].length, levels.length] item = { resource: get_resource(matches[1]), id: matches[2] } item[:id] = item[:id].to_i if item[:id] =~ /^\d+$/ arr.append(item) end @urls = arr.reverse end
Public Instance Methods
hash()
click to toggle source
# File lib/cucumber-rest-bdd/level.rb, line 31 def hash hash = {} @urls.each do |l| hash[parse_field("#{parse_field(l[:resource]).singularize}_id")] = l[:id] end hash end
last_hash()
click to toggle source
# File lib/cucumber-rest-bdd/level.rb, line 39 def last_hash last = @urls.last unless last.nil? key = parse_field("#{parse_field(last[:resource]).singularize}_id") return { key => last[:id] } end {} end
to_s()
click to toggle source
# File lib/cucumber-rest-bdd/level.rb, line 50 def to_s url end
url()
click to toggle source
# File lib/cucumber-rest-bdd/level.rb, line 27 def url @urls.map { |l| "#{l[:resource]}/#{l[:id]}/" }.join end