diff --git a/db/migrations/0005_add_ip_table.rb b/db/migrations/0005_add_ip_table.rb new file mode 100644 index 0000000..0026285 --- /dev/null +++ b/db/migrations/0005_add_ip_table.rb @@ -0,0 +1,18 @@ +Sequel.migration do + + up do + create_table(:ip_addresses) do + primary_key :id + String :address, null: false + String :dns_name + String :comment + DateTime :created_at, default: Sequel::CURRENT_TIMESTAMP + DateTime :updated_at, default: Sequel::CURRENT_TIMESTAMP + end + end + + down do + drop_table(:ip_addresses) + end + +end diff --git a/lib/models/ip_address.rb b/lib/models/ip_address.rb new file mode 100644 index 0000000..8e16058 --- /dev/null +++ b/lib/models/ip_address.rb @@ -0,0 +1,5 @@ +class IpAddress < Sequel::Model + + + +end diff --git a/lib/routes.rb b/lib/routes.rb index 55e4212..20a3c12 100644 --- a/lib/routes.rb +++ b/lib/routes.rb @@ -5,3 +5,5 @@ require_relative 'routes/item.rb' require_relative 'routes/license.rb' require_relative 'routes/search.rb' + +require_relative 'routes/ip_tracker.rb' diff --git a/lib/routes/ip_tracker.rb b/lib/routes/ip_tracker.rb new file mode 100644 index 0000000..eb1fddc --- /dev/null +++ b/lib/routes/ip_tracker.rb @@ -0,0 +1,31 @@ +require 'ipaddr' + +namespace '/ip-tracker' do + + get '' do + ip_addresses = IpAddress.all() + ip_addresses.sort! { |a,b| IPAddr.new( a.address ) <=> IPAddr.new( b.address ) } + + erb :'ip/ip-tracker', :locals => { + :title => 'IP Tracker', + :ip_addresses => ip_addresses + } + end + + get '/add' do + erb :'ip/add', :locals => { + :title => 'Add IP Address' + } + end + + post '/add' do + ip = IpAddress.create( + address: params[:ip_address], + dns_name: params[:ip_dns], + comment: params[:ip_comment] + ) + + redirect '/ip-tracker' + end + +end diff --git a/raven.rb b/raven.rb index da968a5..f0abbd3 100644 --- a/raven.rb +++ b/raven.rb @@ -26,6 +26,7 @@ require_relative 'lib/models/item.rb' require_relative 'lib/models/item_comment.rb' require_relative 'lib/models/license.rb' require_relative 'lib/models/license_comment.rb' +require_relative 'lib/models/ip_address.rb' # Load helper functions require_relative 'lib/helpers.rb' diff --git a/views/ip/add.erb b/views/ip/add.erb new file mode 100644 index 0000000..41b7b98 --- /dev/null +++ b/views/ip/add.erb @@ -0,0 +1,32 @@ +
Address | +DNS Name | +Comments | +
---|---|---|
<%= ip.address %> | +<%= ip.dns_name %> | +<%= ip.comment %> | +
There are no IP addresses to show at this time. Trying adding some.
+ <% end %> +