geo.erb 821 B

1234567891011121314151617181920212223242526272829303132
  1. <%
  2. # sorting ip addresses in ascending order is more efficient for nginx - so we need
  3. # to convert them to numbers first via IPAddr
  4. require 'ipaddr'
  5. -%>
  6. geo <%= @address ? "#{@address} " : '' %>$<%= @name %> {
  7. <% if @ranges -%>
  8. ranges;
  9. <% end -%>
  10. <% if @default -%>
  11. default <%= @default %>;
  12. <% end -%>
  13. <% if @delete -%>
  14. delete <%= @delete %>;
  15. <% end -%>
  16. <% if @proxies -%>
  17. <%- if @proxy_recursive -%>
  18. proxy_recursive;
  19. <%- end -%>
  20. <%- [@proxies].flatten.each do |proxy| -%>
  21. proxy <%= proxy %>;
  22. <%- end -%>
  23. <% end -%>
  24. <% if @networks -%>
  25. <%- field_width = @networks.inject(0) { |l,(k,v)| k.size > l ? k.size : l } -%>
  26. <%- @networks.sort_by{|k,v| IPAddr.new(k.split('-').first).to_i }.each do |key,value| -%>
  27. <%= sprintf("%-*s", field_width, key) %> <%= value %>;
  28. <%- end -%>
  29. <% end -%>
  30. }