# encoding: utf-8 <% tabs = 0 -%> <% project.namespaces.each do |item| -%> <%= " " * tabs %>module <%= item %> <% tabs += 1 -%> <% end -%> <%= " " * tabs %>module <%= project.const %> <% tabs += 1 -%> <% policy.namespaces.each do |item| -%> <%= " " * tabs %>module <%= item %> <% tabs += 1 -%> <% end -%> <%= " " * tabs %># Implements the following policy (invariant): <%= " " * tabs %># <%= " " * tabs %># @todo Describe the policy <%= " " * tabs %># <%= " " * tabs %># @example <%= " " * tabs %># <%= project.type %>::<%= policy.type %>.new( <% attributes.each do |item| -%> <%= " " * tabs %># <%= item.name %>: @todo, <% end -%> <%= " " * tabs %># ) <%= " " * tabs %># <%= " " * tabs %>class <%= policy.const %> <%= " " * tabs %> include Policy::Base <%= " " * tabs %> # @!scope class <%= " " * tabs %> # @!method new(attributes) <%= " " * tabs %> # Creates the policy object with a list of attributes <%= " " * tabs %> # <%= " " * tabs %> # @param [Hash] attributes <%= " " * tabs %> # <%= " " * tabs %> # @return [<%= project.type %>::<%= policy.type %>] <% if attributes.any? -%> <%= " " * tabs %> # @private <%= " " * tabs %> def initialize(<%= attributes.map { |item| "#{ item.name }:" }.join(", ") -%>) <% attributes.each do |item| -%> <%= " " * tabs %> @<%= item.name %> = <%= item.name %> <% end -%> <%= " " * tabs %> end <% attributes.each do |item| -%> <%= " " * tabs %> # # @!attribute [r] <%= item.name %> <%= " " * tabs %> # # @todo Describe the attribute <%= " " * tabs %> # # <%= " " * tabs %> # # @return [<%= item.type %>] <%= " " * tabs %> # attr_reader :<%= item.name %> <% end -%> <% end -%> <%= " " * tabs %> # Define necessary validations using either `validates` <%= " " * tabs %> # or `validate` declarations. <%= " " * tabs %>end # class <%= policy.const %> <% policy.namespaces.reverse.each do |item| -%> <% tabs -= 1 -%> <%= " " * tabs %>end # module <%= item %> <% end -%> <% tabs -= 1 -%> <%= " " * tabs %>end # module <%= project.const %> <% project.namespaces.reverse.each do |item| -%> <% tabs -= 1 -%> <%= " " * tabs %>end # module <%= item %> <% end -%>