Module: Beefcake::Message::Dsl

Defined in:
lib/beefcake.rb

Instance Method Summary collapse

Instance Method Details

#field(rule, name, type, fn, opts) ⇒ Object



52
53
54
55
56
57
58
# File 'lib/beefcake.rb', line 52

def field(rule, name, type, fn, opts)
  if fields.include?(fn)
    raise DuplicateFieldNumber.new(fn, name)
  end
  fields[fn] = Field.new(rule, name, type, fn, opts)
  attr_accessor name
end

#fieldsObject



60
61
62
# File 'lib/beefcake.rb', line 60

def fields
  @fields ||= {}
end

#optional(name, type, fn, opts = {}) ⇒ Object



48
49
50
# File 'lib/beefcake.rb', line 48

def optional(name, type, fn, opts={})
  field(:optional, name, type, fn, opts)
end

#repeated(name, type, fn, opts = {}) ⇒ Object



44
45
46
# File 'lib/beefcake.rb', line 44

def repeated(name, type, fn, opts={})
  field(:repeated, name, type, fn, opts)
end

#required(name, type, fn, opts = {}) ⇒ Object



40
41
42
# File 'lib/beefcake.rb', line 40

def required(name, type, fn, opts={})
  field(:required, name, type, fn, opts)
end