lib/remarkable/dsl.rb in remarkable-3.0.8 vs lib/remarkable/dsl.rb in remarkable-3.0.9
- old
+ new
@@ -1,20 +1,37 @@
dir = File.dirname(__FILE__)
require File.join(dir, 'dsl', 'assertions')
require File.join(dir, 'dsl', 'optionals')
-require File.join(dir, 'dsl', 'matches')
require File.join(dir, 'dsl', 'callbacks')
-module Remarkable
+module Remarkable
+ # The DSL module is responsable for all Remarkable convenience methods.
+ # It has three main submodules:
+ #
+ # * <tt>Assertions</tt> - adds a class methods to define matcher initialization and assertions,
+ # allowing matches? to be hidden from the matcher developer and dealing
+ # with I18n in the expectations messages;
+ #
+ # * <tt>Callbacks</tt> - provides API for after_initialize and before_assert callbacks;
+ #
+ # * <tt>Optionals</tt> - add an optionals DSL, which is also used for the auto configuring blocks
+ # and dynamic descriptions.
+ #
module DSL
- ATTR_READERS = [ :matcher_arguments, :matcher_optionals, :matcher_single_assertions,
- :matcher_collection_assertions, :before_assert_callbacks, :after_initialize_callbacks
+ ATTR_READERS = [
+ :matcher_arguments,
+ :matcher_optionals,
+ :matcher_optionals_splat,
+ :matcher_optionals_block,
+ :matcher_single_assertions,
+ :matcher_collection_assertions,
+ :before_assert_callbacks,
+ :after_initialize_callbacks
] unless self.const_defined?(:ATTR_READERS)
def self.extended(base) #:nodoc:
- base.extend Assertions
+ base.send :include, Assertions
base.send :include, Callbacks
- base.send :include, Matches
base.send :include, Optionals
# Initialize matcher_arguments hash with names as an empty array
base.instance_variable_set('@matcher_arguments', { :names => [] })
end