class NForm::Service

Services expect valid input A service performs a single action A service should not accept unfiltered user input, but accept a form object when user input is required

Attributes

form[R]

Public Class Methods

call(*args) click to toggle source
# File lib/nform/service.rb, line 21
def self.call(*args)
  new(*args).call
end
form_class(klass=nil) click to toggle source

Setter Macro

# File lib/nform/service.rb, line 26
def self.form_class(klass=nil)
  @form_class ||= begin
    klass || const_get(:Form)
  end
end
new(input) click to toggle source
# File lib/nform/service.rb, line 13
def initialize(input)
  @form = get_form(input)
end

Public Instance Methods

call() click to toggle source
# File lib/nform/service.rb, line 17
def call
  raise "Must be defined in subclass"
end

Private Instance Methods

error!(message) click to toggle source
# File lib/nform/service.rb, line 41
def error!(message)
  raise ServiceError.new(message)
end
form_class() click to toggle source
# File lib/nform/service.rb, line 37
def form_class
  self.class.form_class
end
get_form(input) click to toggle source
# File lib/nform/service.rb, line 33
def get_form(input)
  input.is_a?(form_class) ? input : form_class.new(input)
end
validate!() click to toggle source
# File lib/nform/service.rb, line 45
def validate!
end