lib/generators/templates/model.erb
module SixSaferpay
class <%= name %>
attr_accessor(
<%- attributes.each do |attr| -%>
:<%= attr.name %>,
<%- end -%>
)
def initialize(
<%- attributes.each_with_index do |attr, index| -%>
<%= "#{attr.name}:"-%>
<%- unless attr.mandatory? -%>
<%- -%><%= ' nil' -%>
<%- end -%>
<%- unless attr == attributes.last -%>
<%- -%><%= ',' %>
<%- end -%>
<%- end %>
)
<%- attributes.each_with_index do |attr, index| -%>
<%- if attr.string? || attr.boolean? -%>
<%= "@#{attr.name} = "-%><%= "#{attr.name}" %>
<%- else -%>
<%- %>
<%= "if #{attr.name}" %>
<%= "@#{attr.name} = "-%>
<%- -%><%= "SixSaferpay::#{attr.type}.new(**#{attr.name}.to_h)" %>
<%= "end" %>
<%- end -%>
<%- end -%>
end
def to_hash
hash = Hash.new
<%- attributes.each do |attr| -%>
<%- if attr.string? -%>
<%- if attr.mandatory? -%>
<%= "hash.merge!(#{attr.name}: @#{attr.name})" %>
<%- else -%>
<%= "if @#{attr.name}" %>
<%= "hash.merge!(#{attr.name}: @#{attr.name})" %>
<%= "end" %>
<%- end -%>
<%- elsif attr.boolean? -%>
<%- if attr.mandatory? -%>
<%= "hash.merge!(#{attr.name}: @#{attr.name})" %>
<%- else -%>
<%= "if !@#{attr.name}.nil?" %>
<%= "hash.merge!(#{attr.name}: @#{attr.name})" %>
<%= "end" %>
<%- end -%>
<%- else -%>
<%= "if @#{attr.name}" %>
<%= "hash.merge!(#{attr.name}: @#{attr.name}.to_h)" %>
<%= "end" %>
<%- end -%>
<%- end -%>
hash
end
alias_method :to_h, :to_hash
end
end