From a6ffc31747713a121f3326ebd250a6ab7bef2fc2 Mon Sep 17 00:00:00 2001 From: Tanner Nelson Date: Wed, 18 May 2016 15:47:09 -0400 Subject: [PATCH] change strucutre --- Package.swift | 15 +- Sources/{Fluent => }/Action.swift | 0 Sources/{Fluent => }/Comparison.swift | 0 Sources/{Fluent => }/Database.swift | 0 Sources/{Fluent => }/Driver.swift | 0 Sources/{Fluent => }/Filter.swift | 0 Sources/FluentDev/Address.swift | 16 -- Sources/FluentDev/User.swift | 20 --- Sources/FluentDev/main.swift | 210 ------------------------- Sources/{Fluent => }/Helper.swift | 0 Sources/{Fluent => }/Limit.swift | 0 Sources/{Fluent => }/Model.swift | 0 Sources/{Fluent => }/PrintDriver.swift | 0 Sources/{Fluent => }/Query.swift | 0 Sources/{Fluent => }/SQL.swift | 0 Sources/{Fluent => }/Scope.swift | 0 Sources/Tests/FluentTests.swift | 64 -------- Sources/{Fluent => }/Value.swift | 0 Sources/libc/libc.swift | 5 - 19 files changed, 2 insertions(+), 328 deletions(-) rename Sources/{Fluent => }/Action.swift (100%) rename Sources/{Fluent => }/Comparison.swift (100%) rename Sources/{Fluent => }/Database.swift (100%) rename Sources/{Fluent => }/Driver.swift (100%) rename Sources/{Fluent => }/Filter.swift (100%) delete mode 100644 Sources/FluentDev/Address.swift delete mode 100644 Sources/FluentDev/User.swift delete mode 100644 Sources/FluentDev/main.swift rename Sources/{Fluent => }/Helper.swift (100%) rename Sources/{Fluent => }/Limit.swift (100%) rename Sources/{Fluent => }/Model.swift (100%) rename Sources/{Fluent => }/PrintDriver.swift (100%) rename Sources/{Fluent => }/Query.swift (100%) rename Sources/{Fluent => }/SQL.swift (100%) rename Sources/{Fluent => }/Scope.swift (100%) delete mode 100644 Sources/Tests/FluentTests.swift rename Sources/{Fluent => }/Value.swift (100%) delete mode 100755 Sources/libc/libc.swift diff --git a/Package.swift b/Package.swift index fc6f268d..6a5a2a86 100644 --- a/Package.swift +++ b/Package.swift @@ -2,18 +2,7 @@ import PackageDescription let package = Package( name: "Fluent", - targets: [ - Target( - name: "Fluent", - dependencies: [ - .Target(name: "libc") - ] - ), - Target( - name: "FluentDev", - dependencies: [ - .Target(name: "Fluent"), - ] - ), + dependencies: [ + .Package(url: "https://github.com/qutheory/libc.git", majorVersion: 0, minor: 1), ] ) \ No newline at end of file diff --git a/Sources/Fluent/Action.swift b/Sources/Action.swift similarity index 100% rename from Sources/Fluent/Action.swift rename to Sources/Action.swift diff --git a/Sources/Fluent/Comparison.swift b/Sources/Comparison.swift similarity index 100% rename from Sources/Fluent/Comparison.swift rename to Sources/Comparison.swift diff --git a/Sources/Fluent/Database.swift b/Sources/Database.swift similarity index 100% rename from Sources/Fluent/Database.swift rename to Sources/Database.swift diff --git a/Sources/Fluent/Driver.swift b/Sources/Driver.swift similarity index 100% rename from Sources/Fluent/Driver.swift rename to Sources/Driver.swift diff --git a/Sources/Fluent/Filter.swift b/Sources/Filter.swift similarity index 100% rename from Sources/Fluent/Filter.swift rename to Sources/Filter.swift diff --git a/Sources/FluentDev/Address.swift b/Sources/FluentDev/Address.swift deleted file mode 100644 index 82bb13d1..00000000 --- a/Sources/FluentDev/Address.swift +++ /dev/null @@ -1,16 +0,0 @@ -import Fluent - -class Address: Model { - static var entity: String { - return "addresses" - } - - var id: Value? - - func serialize() -> [String: Value?] { - return [:] - } - - required init(serialized: [String: Value]) { - } -} diff --git a/Sources/FluentDev/User.swift b/Sources/FluentDev/User.swift deleted file mode 100644 index eccd743c..00000000 --- a/Sources/FluentDev/User.swift +++ /dev/null @@ -1,20 +0,0 @@ -import Fluent - -class User: Model { - init(name: String) { - self.name = name - } - - var id: Value? - var name: String - - func serialize() -> [String: Value?] { - return [ - "name": self.name - ] - } - - required init(serialized: [String: Value]) { - name = serialized["name"]?.string ?? "" - } -} \ No newline at end of file diff --git a/Sources/FluentDev/main.swift b/Sources/FluentDev/main.swift deleted file mode 100644 index 273b7f45..00000000 --- a/Sources/FluentDev/main.swift +++ /dev/null @@ -1,210 +0,0 @@ -import Fluent - -/** -import FluentSQLite -import FluentMongo - -//Database.driver = PostgreSQLDriver(connectionInfo: "host='localhost' port='5432' dbname='demodb0' user='princeugwuh' password=''") - -let sqlite: Database -let mongo: Database -let fake: Database - -do { - let sqliteDriver = try FluentSQLite.SQLiteDriver() - sqlite = Database(driver: sqliteDriver) - - let mongoDriver = try FluentMongo.MongoDriver( - database: "test", - user: "test", - password: "test", - port: 27017 - ) - - mongo = Database(driver: mongoDriver) - - //fake = Database() -} catch { - fatalError("Could not open database \(error)") -} - -print("Hello, Fluent!") - -do { - User.database = sqlite - let sqliteUsers = try User.all() - - User.database = mongo - let mongoUsers = try User.all() - - //User.database = fake - //let _ = try User.all() - - print("SQLite Users") - print(sqliteUsers) - - print("Mongo Users") - print(mongoUsers) - - User.database = sqlite - let sqliteUsersFilter = try User.query.filter("name", "Jill").all() - - User.database = mongo - let mongoUsersFilter = try User.query.filter("name", "Jill").all() - - print("SQLite Users Filter") - print(sqliteUsersFilter) - - print("Mongo Users Filter") - print(mongoUsersFilter) - - //User.database = fake - //let _ = try? User.find(1) - - User.database = sqlite - let sqliteUser = try User.find(1) - - User.database = mongo - let mongoUser = try User.find(1) - - print("SQLite Users Find") - print(sqliteUser) - - print("Mongo Users Find") - print(mongoUser) - - var newMongoUser = User(name: "Bill") - var newSqliteUser = User(name: "Bills") - - User.database = sqlite - try newSqliteUser.save() - - User.database = mongo - try newMongoUser.save() - - print("SQLite User Save") - print(newSqliteUser) - - print("Mongo User Save") - print(newMongoUser) - - User.database = sqlite - try newSqliteUser.delete() - - User.database = mongo - try newMongoUser.delete() - - print("SQLite User Delete") - print(newSqliteUser) - - print("Mongo User Delete") - print(newMongoUser) - - - User.database = sqlite - let sqliteUsersSubset = try User.query.filter("name", .in, ["Jill", "Tanner"]).all() - - User.database = mongo - let mongoUsersSubset = try User.query.filter("name", .in, ["Jill", "Tanner"]).all() - - print("SQLite Users Subset") - print(sqliteUsersSubset) - - print("Mongo Users Subset") - print(mongoUsersSubset) - - User.database = sqlite - let sqliteUsersInverseSubset = try User.query.filter("name", .notIn, ["Bills", "Tanner"]).all() - - User.database = mongo - let mongoUsersInverseSubset = try User.query.filter("name", .notIn, ["Bill", "Tanner"]).all() - - print("SQLite Users Inverse Subset") - print(sqliteUsersInverseSubset) - - print("Mongo Users Inverse Subset") - print(mongoUsersInverseSubset) -} catch { - print("Could not fetch. Error: \(error)") -} - - */ - -/* - -//: Model (Active Record) - -do { - let result = try User.first() -} catch ModelError.NotFound(let message) { - print(message) -} -let _ = try? User.last() - -let _ = try? User.take(50) -let _ = try? User.find(1) -let _ = try? User.find(1, 2, 4) -let _ = try? User.find("name", .Equals, "Jane Doe") -let _ = try? User.find("name", in: ["Tanner", "Jane"]) - -let u = User(name: "Vapor") -let _ = try? u.save() -u.id = "5" //simulate save -let _ = try? u.delete() - -//: Query Builder - Different looks of using Query Builder Class - -// Insert - -let _ = try? Query(database: sqlite).insert(u.serialize()) - -// Update - -let _ = try? Query(database: sqlite).update(u.serialize()) - -// Retrieve All Rows - -let _ = try? Query(database: sqlite).all() - -// Retrieve A Single Row - -let _ = try? Query(database: sqlite).filter("name", "John").first() -let _ = try? Query(database: sqlite).filter("name", .Equals, "Parker Collins").distinct().first() // with distinct - -// Chucking - -//-> TODO - -// List / Pluck - -let _ = try? Query(database: sqlite).list("title") - - -// Aggregates - -let _ = try? Query(database: sqlite).count() -let _ = try? Query(database: sqlite).count("name") -let _ = try? Query(database: sqlite).maximum() -let _ = try? Query(database: sqlite).minimum() -let _ = try? Query(database: sqlite).average() - -// Joins - -let _ = try? Query(database: sqlite).join(Address.self)?.all("\(Address.entity).*") - -// Where - -let _ = try? Query(database: sqlite).filter("name", .Equals, "John").or { query in - query.filter("phone", .NotEquals, "2234567890").and { query in - query.filter("address", .Equals, "100 Apt Ln").filter("other", 1) - } - }.all() - -// Order By - -let _ = try? Query(database: sqlite).filter("name", .Equals, "John").sort("name", .Ascending).all() - -// Limit And Offset - -let _ = try? Query(database: sqlite).filter("name", .Equals, "John").limit().all() -let _ = try? Query(database: sqlite).filter("name", .Equals, "Jane").limit(10).offset(5).all() */ diff --git a/Sources/Fluent/Helper.swift b/Sources/Helper.swift similarity index 100% rename from Sources/Fluent/Helper.swift rename to Sources/Helper.swift diff --git a/Sources/Fluent/Limit.swift b/Sources/Limit.swift similarity index 100% rename from Sources/Fluent/Limit.swift rename to Sources/Limit.swift diff --git a/Sources/Fluent/Model.swift b/Sources/Model.swift similarity index 100% rename from Sources/Fluent/Model.swift rename to Sources/Model.swift diff --git a/Sources/Fluent/PrintDriver.swift b/Sources/PrintDriver.swift similarity index 100% rename from Sources/Fluent/PrintDriver.swift rename to Sources/PrintDriver.swift diff --git a/Sources/Fluent/Query.swift b/Sources/Query.swift similarity index 100% rename from Sources/Fluent/Query.swift rename to Sources/Query.swift diff --git a/Sources/Fluent/SQL.swift b/Sources/SQL.swift similarity index 100% rename from Sources/Fluent/SQL.swift rename to Sources/SQL.swift diff --git a/Sources/Fluent/Scope.swift b/Sources/Scope.swift similarity index 100% rename from Sources/Fluent/Scope.swift rename to Sources/Scope.swift diff --git a/Sources/Tests/FluentTests.swift b/Sources/Tests/FluentTests.swift deleted file mode 100644 index 1fb6aed8..00000000 --- a/Sources/Tests/FluentTests.swift +++ /dev/null @@ -1,64 +0,0 @@ -import XCTest -@testable import Fluent - -#if os(Linux) - extension FluentTests: XCTestCaseProvider { - var allTests : [(String, () throws -> Void)] { - return [ - ("testModel", testModel) - ] - } - } -#endif - -class FluentTests: XCTestCase { - class TestDriver: Driver { - func execute(query: Query) throws -> [[String: Value]] { - let sql = SQL(query: query) - if sql.statement == "SELECT * FROM test LIMIT 1;" { - return [["id": 0, "success": true]] - } - return [] - } - } - - class TestModel: Model { - static var entity: String { - return "test" - } - - private(set) var id: String? = "0" - - var success: Bool = false - - func serialize() -> [String: Value?] { - return ["id": nil, "success": false] - } - - required init(serialized: [String: Value]) { - self.id = serialized["id"] as? String ?? "" - self.success = serialized["success"] as? Bool ?? false - } - } - - // MARK - Test - - func prepare() { - Database.driver = TestDriver() - } - - func testFluent() { - prepare() - do { - if let test = try Query().first() { - if !test.success { - XCTFail() - } - } else { - XCTFail() - } - } catch { - XCTFail() - } - } -} \ No newline at end of file diff --git a/Sources/Fluent/Value.swift b/Sources/Value.swift similarity index 100% rename from Sources/Fluent/Value.swift rename to Sources/Value.swift diff --git a/Sources/libc/libc.swift b/Sources/libc/libc.swift deleted file mode 100755 index 8aad8042..00000000 --- a/Sources/libc/libc.swift +++ /dev/null @@ -1,5 +0,0 @@ -#if os(Linux) - @_exported import Glibc -#else - @_exported import Darwin.C -#endif