Commit 517a55e3
Changed files (4)
app
models
db
spec
models
app/models/location.rb
@@ -1,4 +1,6 @@
-class Location
+class Location < ActiveRecord::Base
+ belongs_to :locatable, polymorphic: true
+
GEO_IP=GeoIP.new('config/GeoLiteCity.dat')
class << self
db/migrate/20140927141151_create_locations.rb
@@ -0,0 +1,13 @@
+class CreateLocations < ActiveRecord::Migration
+ def change
+ create_table :locations, id: :uuid do |t|
+ t.integer :locatable_id
+ t.string :locatable_type
+ t.string :latitude
+ t.string :longitude
+ t.string :city
+ t.string :country
+ t.timestamps
+ end
+ end
+end
db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20140920033516) do
+ActiveRecord::Schema.define(version: 20140927141151) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -31,8 +31,8 @@ ActiveRecord::Schema.define(version: 20140920033516) do
create_table "avatars", force: true do |t|
t.integer "user_id"
- t.datetime "created_at", null: false
- t.datetime "updated_at", null: false
+ t.datetime "created_at"
+ t.datetime "updated_at"
t.string "avatar"
t.boolean "avatar_processing"
t.string "avatar_tmp"
@@ -85,8 +85,8 @@ ActiveRecord::Schema.define(version: 20140920033516) do
t.datetime "failed_at"
t.string "locked_by"
t.string "queue"
- t.datetime "created_at", null: false
- t.datetime "updated_at", null: false
+ t.datetime "created_at"
+ t.datetime "updated_at"
end
add_index "delayed_jobs", ["priority", "run_at"], name: "delayed_jobs_priority", using: :btree
@@ -103,8 +103,19 @@ ActiveRecord::Schema.define(version: 20140920033516) do
create_table "interests", force: true do |t|
t.string "name"
- t.datetime "created_at", null: false
- t.datetime "updated_at", null: false
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ end
+
+ create_table "locations", id: :uuid, default: "uuid_generate_v4()", force: true do |t|
+ t.integer "locatable_id"
+ t.string "locatable_type"
+ t.string "latitude"
+ t.string "longitude"
+ t.string "city"
+ t.string "country"
+ t.datetime "created_at"
+ t.datetime "updated_at"
end
create_table "photos", force: true do |t|
@@ -146,13 +157,15 @@ ActiveRecord::Schema.define(version: 20140920033516) do
t.integer "taggings_count", default: 0
end
+ add_index "tags", ["name"], name: "index_tags_on_name", unique: true, using: :btree
+
create_table "tutorials", force: true do |t|
t.string "heading"
t.text "description"
t.string "url"
t.integer "user_id"
- t.datetime "created_at", null: false
- t.datetime "updated_at", null: false
+ t.datetime "created_at"
+ t.datetime "updated_at"
t.string "image_url"
t.string "author"
t.string "author_url"
@@ -181,12 +194,12 @@ ActiveRecord::Schema.define(version: 20140920033516) do
add_index "user_sessions", ["user_id"], name: "index_user_sessions_on_user_id", using: :btree
create_table "users", force: true do |t|
- t.string "email", default: "", null: false
- t.string "encrypted_password", limit: 128, default: "", null: false
+ t.string "email", default: "", null: false
+ t.string "encrypted_password", default: "", null: false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
- t.integer "sign_in_count", default: 0
+ t.integer "sign_in_count", default: 0
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.string "current_sign_in_ip"
@@ -205,13 +218,13 @@ ActiveRecord::Schema.define(version: 20140920033516) do
t.datetime "confirmed_at"
t.datetime "confirmation_sent_at"
t.string "unconfirmed_email"
- t.integer "failed_attempts", default: 0
+ t.integer "failed_attempts", default: 0
t.string "unlock_token"
t.datetime "locked_at"
t.string "authentication_token"
t.string "invitation_token"
t.string "full_address"
- t.integer "creations_count", default: 0
+ t.integer "creations_count", default: 0
t.boolean "admin"
end
spec/models/location_spec.rb
@@ -0,0 +1,14 @@
+require 'rails_helper'
+
+describe Location do
+ describe "#create" do
+ it 'can create a new location' do
+ location = Location.create!(latitude: '100', longitude: '100', city: 'Calgary', country: 'Canada')
+ expect(location).to_not be_nil
+ expect(location.latitude).to eql('100')
+ expect(location.longitude).to eql('100')
+ expect(location.city).to eql('Calgary')
+ expect(location.country).to eql('Canada')
+ end
+ end
+end