Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
**/.git
25 changes: 25 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
FROM ruby:3.2.0-slim AS base

RUN apt-get update && \
apt-get install -y \
build-essential \
pkg-config && \
rm -rf /var/lib/apt/lists/*

RUN groupadd --gid 999 cruises && \
useradd --system --create-home --uid 999 --gid cruises cruises

WORKDIR /app
RUN chown cruises:cruises .

COPY Gemfile* ./

RUN bundle install

FROM base

USER cruises

COPY --chown=cruises:cruises . .

CMD rake console
4 changes: 4 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
source 'https://rubygems.org'

gem 'activerecord', require: "active_record"
gem 'sqlite3'
32 changes: 32 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
GEM
remote: https://rubygems.org/
specs:
activemodel (7.0.4)
activesupport (= 7.0.4)
activerecord (7.0.4)
activemodel (= 7.0.4)
activesupport (= 7.0.4)
activesupport (7.0.4)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
concurrent-ruby (1.1.10)
i18n (1.12.0)
concurrent-ruby (~> 1.0)
mini_portile2 (2.8.1)
minitest (5.17.0)
sqlite3 (1.5.4)
mini_portile2 (~> 2.8.0)
tzinfo (2.0.5)
concurrent-ruby (~> 1.0)

PLATFORMS
x86_64-linux

DEPENDENCIES
activerecord
sqlite3

BUNDLED WITH
2.4.1
18 changes: 18 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
require "bundler/setup"

load "active_record/railties/databases.rake"

task :environment do
require "./config/application"
end

task :console => :environment do
require "irb"

ARGV.clear
IRB.start
end

task :import => :environment do
CruiseImporter.new.import
end
18 changes: 18 additions & 0 deletions config/application.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
RAKE_PATH = File.expand_path(".")
RAKE_ENV = ENV.fetch("RAKE_ENV", "development")

Bundler.require :default, RAKE_ENV

# Configuration for ActiveRecord rake tasks
ActiveRecord::Tasks::DatabaseTasks.root = RAKE_PATH
ActiveRecord::Tasks::DatabaseTasks.env = RAKE_ENV
ActiveRecord::Tasks::DatabaseTasks.db_dir = "db"
ActiveRecord::Tasks::DatabaseTasks.migrations_paths = ["db/migrate"]
ActiveRecord::Tasks::DatabaseTasks.seed_loader = nil

# Set up ActiveRecord database connection
ActiveRecord::Base.configurations = YAML.load_file("config/database.yml")
ActiveRecord::Base.establish_connection RAKE_ENV.to_sym

# Load all of our libs and models
Dir[File.join(__dir__, '..', '{lib,models}', '*.rb')].each { |file| require file }
3 changes: 3 additions & 0 deletions config/database.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
development:
adapter: sqlite3
database: ./db/cruises.db
Binary file added db/cruises.db
Binary file not shown.
285 changes: 285 additions & 0 deletions db/cruises.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,285 @@
[
{
"name": "7 Night Western Caribbean & Perfect Day",
"cruiseline": "Royal Caribbean",
"ship": "Harmony of the Seas",
"start_date": "2022-07-17",
"end_date": "2022-07-24",
"cabin": "12643",
"itinerary": [
{
"type": "port",
"date": "2022-07-17",
"name": "Port Canaveral, Florida"
},
{
"type": "port",
"date": "2022-07-18",
"name": "Perfect Day at CocoCay, Bahamas"
},
{
"type": "port",
"date": "2022-07-19",
"name": "Nassau, Bahamas"
},
{
"type": "cruising",
"date": "2022-07-20"
},
{
"type": "port",
"date": "2022-07-21",
"name": "Falmouth, Jamaica"
},
{
"type": "port",
"date": "2022-07-22",
"name": "Labadee, Haiti"
},
{
"type": "cruising",
"date": "2022-07-23"
},
{
"type": "port",
"date": "2022-07-24",
"name": "Port Canaveral, Florida"
}
]
},
{
"name": "Caribbean - Western",
"cruiseline": "Carnival",
"ship": "Carnival Breeze",
"start_date": "2021-12-27",
"end_date": "2022-01-03",
"cabin": "9346",
"itinerary": [
{
"type": "port",
"date": "2021-12-27",
"name": "Galveston, Texas"
},
{
"type": "cruising",
"date": "2021-12-28"
},
{
"type": "port",
"date": "2021-12-29",
"name": "Cozumel, Mexico"
},
{
"type": "port",
"date": "2021-12-30",
"name": "Belize City, Belize"
},
{
"type": "port",
"date": "2021-12-31",
"name": "Roatan, Bay Islands, Honduras"
},
{
"type": "cruising",
"date": "2022-01-01"
},
{
"type": "cruising",
"date": "2022-01-02"
},
{
"type": "port",
"date": "2022-01-03",
"name": "Galveston, Texas"
}
]
},
{
"name": "7 Night Eastern Caribbean Cruise",
"cruiseline": "Royal Caribbean",
"ship": "Symphony of the Seas",
"start_date": "2019-06-29",
"end_date": "2019-07-06",
"cabin": "8262",
"itinerary": [
{
"type": "port",
"date": "2019-06-29",
"name": "Miami, Florida"
},
{
"type": "cruising",
"date": "2019-06-30"
},
{
"type": "cruising",
"date": "2019-07-01"
},
{
"type": "port",
"date": "2019-07-02",
"name": "Saint Maarten (Phillipsburg), Netherlands Antilles"
},
{
"type": "port",
"date": "2019-07-03",
"name": "San Juan, Puerto Rico"
},
{
"type": "port",
"date": "2019-07-04",
"name": "Labadee, Haiti"
},
{
"type": "cruising",
"date": "2019-07-05"
},
{
"type": "port",
"date": "2019-07-06",
"name": "Miami, Florida"
}
]
},
{
"name": "7 Night Eastern Caribbean Cruise",
"cruiseline": "Royal Caribbean",
"ship": "Harmony of the Seas",
"start_date": "2018-07-07",
"end_date": "2018-07-14",
"cabin": "10560",
"itinerary": [
{
"type": "port",
"date": "2018-07-07",
"name": "Fort Lauderdale, Florida"
},
{
"type": "port",
"date": "2018-07-08",
"name": "Nassau, Bahamas"
},
{
"type": "cruising",
"date": "2018-07-09"
},
{
"type": "port",
"date": "2018-07-10",
"name": "Saint Thomas, US Virgin Islands"
},
{
"type": "port",
"date": "2018-07-11",
"name": "Saint Kitts and Nevis (Basse Terre)"
},
{
"type": "cruising",
"date": "2018-07-12"
},
{
"type": "cruising",
"date": "2018-07-13"
},
{
"type": "port",
"date": "2018-07-14",
"name": "Fort Lauderdale, Florida"
}
]
},
{
"name": "7 Night Western Caribbean Cruise",
"cruiseline": "Royal Caribbean",
"ship": "Liberty of the Seas",
"start_date": "2017-07-02",
"end_date": "2017-07-09",
"cabin": "8640",
"itinerary": [
{
"type": "port",
"date": "2017-07-02",
"name": "Galveston, Texas"
},
{
"type": "cruising",
"date": "2017-07-03"
},
{
"type": "port",
"date": "2017-07-04",
"name": "Cozumel, Mexico"
},
{
"type": "port",
"date": "2017-07-05",
"name": "Grand Cayman, Cayman Islands"
},
{
"type": "port",
"date": "2017-07-06",
"name": "Falmouth, Jamaica"
},
{
"type": "cruising",
"date": "2017-07-07"
},
{
"type": "cruising",
"date": "2017-07-08"
},
{
"type": "port",
"date": "2017-07-09",
"name": "Galveston, Texas"
}
]
},
{
"name": "Caribbean - Western",
"cruiseline": "Carnival",
"ship": "Carnival Freedom",
"start_date": "2015-07-25",
"end_date": "2015-08-01",
"cabin": "6289",
"itinerary": [
{
"type": "port",
"date": "2015-07-25",
"name": "Galveston, Texas"
},
{
"type": "cruising",
"date": "2015-07-26"
},
{
"type": "cruising",
"date": "2015-07-27"
},
{
"type": "port",
"date": "2015-07-28",
"name": "Roatan, Bay Islands, Honduras"
},
{
"type": "port",
"date": "2015-07-29",
"name": "Belize City, Belize"
},
{
"type": "port",
"date": "2015-07-30",
"name": "Cozumel, Mexico"
},
{
"type": "cruising",
"date": "2015-07-31"
},
{
"type": "port",
"date": "2015-08-01",
"name": "Galveston, Texas"
}
]
}
]
Loading