Module: Smooth::DslAdapter

Included in:
Smooth
Defined in:
lib/smooth/dsl_adapter.rb

Instance Method Summary collapse

Instance Method Details

#api(name, *args, &block) ⇒ Object

Creates or opens an API definition



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/smooth/dsl_adapter.rb', line 4

def api(name, *args, &block)
  Smooth.current_api_name = name

  config_block = block_given?

  instance = Smooth.fetch_api(name) do |_key|
    options = args.dup.extract_options!

    Smooth::Api.new(name, options)
  end

  instance.tap { |obj| obj.instance_eval(&block) if config_block }
end

#resource(name, *args, &block) ⇒ Object

Creates or opens a resource definition



19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/smooth/dsl_adapter.rb', line 19

def resource(name, *args, &block)
  options = args.extract_options!

  api = case
    when options[:api].is_a?(Symbol) || options[:api].is_a?(String)
      Smooth.fetch_api(options[:api])
    when options[:api].is_a?(Smooth::Api)
      options[:api]
    else
      Smooth.current_api
  end

  api.resource(name, options, &block)
end