Sha256: eafd6b8cce8cd88e8540ccff6ade9d2a768b6da3cdb4fc02d41e1285ea36e69e

Contents?: true

Size: 851 Bytes

Versions: 2

Compression:

Stored size: 851 Bytes

Contents

module Dox
  module DSL
    class Documentation
      attr_accessor :subject
      attr_accessor :_resource
      attr_accessor :_action
      attr_accessor :_group

      def initialize(opts = {})
        self.subject = opts.fetch :subject
      end

      def resource(name = nil, &block)
        self._resource = Resource.new(name: name)
        _resource.instance_eval(&block)
      end

      def action(name = nil, &block)
        self._action = Action.new(name: name)
        _action.instance_eval(&block)
      end

      def group(name = nil, &block)
        self._group = ResourceGroup.new(name: name)
        _group.instance_eval(&block)
      end

      def config
        {}.merge(_resource ? _resource.config : {})
          .merge(_action ? _action.config : {})
          .merge(_group ? _group.config : {})
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dox-0.0.3 lib/dox/dsl/documentation.rb
dox-0.0.2 lib/dox/dsl/documentation.rb