Brunomm/br_nfe

View on GitHub
lib/br_nfe/service/association/have_intermediario.rb

Summary

Maintainability
A
1 hr
Test Coverage
module BrNfe
    module Service
        module Association
            module HaveIntermediario
                def intermediario
                    yield(intermediario || new_intermediario) if block_given?
                    @intermediario.is_a?(BrNfe.intermediario_service_class) ? @intermediario : nil
                end

                def intermediario=(value)
                    if value.is_a?(BrNfe.intermediario_service_class) || value.nil? 
                        @intermediario = value
                    elsif value.is_a?(Hash)
                        intermediario ? intermediario.assign_attributes(value) : new_intermediario(value)
                    end
                end
                
            protected

                def new_intermediario(params={})
                    @intermediario = BrNfe.intermediario_service_class.new(params)
                end
            end
        end
    end
end