Ruby: клиентская или серверная сторона?

Я просто решил свою собственную проблему:

    func getWeightData(forDay days: Int, completion: @escaping ((_ weight: Double?, _ date: Date?) -> Void)) {
    // Getting quantityType as stepCount
    guard let bodyMassType = HKObjectType.quantityType(forIdentifier: .bodyMass) else {
        print("*** Unable to create a bodyMass type ***")
        return
    }

    let now = Date()
    let startDate = Calendar.current.date(byAdding: DateComponents(day: -days), to: now)!

    var interval = DateComponents()
    interval.day = 1

    var anchorComponents = Calendar.current.dateComponents([.day, .month, .year], from: now)
    anchorComponents.hour = 0
    let anchorDate = Calendar.current.date(from: anchorComponents)!

    // Note to myself:: StatisticsQuery!! Nicht Collection! Option .mostRecent. Achtung, unten auch setzen!!
    let query = HKStatisticsCollectionQuery(quantityType: bodyMassType,
                                            quantitySamplePredicate: nil,
                                            options: [.mostRecent],
                                            anchorDate: anchorDate,
                                            intervalComponents: interval)
    query.initialResultsHandler = { _, results, error in
        guard let results = results else {
            print("ERROR")
            return
        }

        results.enumerateStatistics(from: startDate, to: now) { statistics, _ in
            // hier wieder .mostRecent!
            if let sum = statistics.mostRecentQuantity() {
                let bodyMassValue = sum.doubleValue(for: HKUnit.gramUnit(with: .kilo)).roundToDecimal(2)
                completion(bodyMassValue, statistics.startDate)
                return
            } 
        }
    }
    healthStore.execute(query)
}

Это загружает данные из последнего n дни и возвращает bodyMass, а также дату

8
задан daOnlyBG 2 September 2014 в 06:12
поделиться

3 ответа

Ruby (обычно) не выполняется в браузере, поэтому, если вы спрашиваете об этом в контексте браузера веб-сервера / клиента, тогда Ruby является серверным.

Вы можете конечно, также выполнять автономный код Ruby на любой машине с интерпретатором Ruby. Это не ограничивается веб-приложениями.

9
ответ дан 5 December 2019 в 05:34
поделиться

Оба?

В конце концов, есть программы Ruby, которые не используются как часть клиент-серверной архитектуры.

Если вы говорите о Ruby on Rails, то это обычно используется только на стороне сервера.

11
ответ дан 5 December 2019 в 05:34
поделиться

Ruby - это универсальный язык сценариев / программирования, который может выполняться как в клиентской, так и в серверной среде.

На стороне клиента вы можете использовать его для создания приложения с графическим интерфейсом пользователя (или интерфейса командной строки) для взаимодействия с данными, связи с сервером, игры с мультимедиа / игры и т. Д. Некоторыми примерами фреймворка на этом уровне могут быть Shoes, MacRuby и т. д.

На стороне сервера вы можете использовать его для хранения и сохранения данных, проверки и выполнения транзакций и т. д. Здесь используются такие фреймворки, как Rails, Merb, Sinatra и другие, и, пожалуй, это самый известный режим работы.

Как было сказано на предыдущем плакате, в контексте архитектуры серверного / клиентского веб-приложения Ruby будет запускаться на стороне сервера. Если я не ошибаюсь, были некоторые улучшения для запуска Ruby через браузер (например, JS), но, вероятно, это не то, что нужно учитывать для производственных нужд.

10
ответ дан 5 December 2019 в 05:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: