lib/Checked/Demand/Vars.rb in Checked-1.2.3 vs lib/Checked/Demand/Vars.rb in Checked-2.0.0

- old
+ new

@@ -1,63 +1,103 @@ -module Checked +class Checked class Demand - class Vars + class Vars < Sinatra::Base - include Uni_Arch::Base - include Demand::Base - namespace '/var!' + include Checked::Arch + + map '/:type!' - route + get + def not_empty! + demand !return!.empty?, "...can't be empty." + end + + get + def be! + meth, vals = args_hash['args'] + answer = return!.send meth, *vals + bool! answer + demand answer, "...failed #{meth} with #{vals.inspect}" + end + + get + def not_be! + meth, vals = args_hash['args'] + answer = return!.send(meth, *vals) + bool! answer + demand !answer, "...#{meth} should not be true with #{vals.inspect}" + end + + get + def empty! + demand return!.empty?, "...must be empty." + end + + get + def not_empty! + demand !return!.empty?, "...can't be empty." + end + + map '/var!' # =============================== + + get + def check! + return! + end + + get def either! - request.headers.args.flatten.detect { |m| + answer = args_hash['args'].flatten.detect { |m| begin - target.send m + return!.send m true rescue Failed false end } + demand answer, "...is not any: #{args_hash['args'].inspect}" end - route + get def be! - rejected = request.headers.args.flatten.select { |m| - !(target.send m) + rejected = args_hash['args'].flatten.select { |m| + !(return!.send m) } - fail!("...must be: #{rejected.map(&:to_s).join(', ')}") unless rejected.empty? + demand rejected.empty?, "...must be all of these: #{rejected.map(&:to_s).join(', ')}" end - route + get def not_be! - rejected = request.headers.args.flatten.select { |m| - !!(target.send m) + rejected = args_hash['args'].flatten.select { |m| + !!(return!.send m) } - fail!("...must not be: #{rejected.map(&:to_s).join(', ')}") unless rejected.empty? + demand rejected.empty?, "...must not be: #{rejected.map(&:to_s).join(', ')}" end - route + get def one_of! - klasses = request.headers.args - return true if klasses.flatten.any? { |k| target.is_a?(k) } - fail! "...can only be of class/module: #{klasses.map(&:to_s).join(', ')}" + klasses = args_hash['args'] + demand \ + klasses.flatten.any? { |k| return!.is_a?(k) }, \ + "...can only be of class/module: #{klasses.map(&:to_s).join(', ')}" end - route + get def nil! - fail!("...must be nil.") unless target.nil? + demand return!.nil?, "...must be nil." end - route + get def not_nil! - fail!("...can't be nil.") if target.nil? + demand !return!.nil?, "...can't be nil." end - route + get def respond_to! - rejected = request.headers.args.reject { |m| - !target.respond_to?(m) + rejected = args_hash['args'].reject { |m| + !return!.respond_to?(m) } - fail!("...must respond to #{rejected.inspect}") unless rejected.empty? + demand rejected.empty?, "...must respond to #{rejected.inspect}" end end # === class Vars end # === class Demand end # === module Checked