def build_from_block(*args, &block)
      pre_block
      Docile.dsl_eval(self, *args, &block) if block
      post_block
      self
    end
def build_from_block(*args, &block)
      pre_block
      Docile.dsl_eval(self, *args, &block) if block
      post_block
      self
    end
Evaluates a DSL directly from a Ruby block, calling pre- and post- hooks.
 @param args [Array<Object>] Extra arguments to be passed into the block.