Skip to content

Commit 41647eb

Browse files
committed
Add standardrb linter.
1 parent a3af0cb commit 41647eb

18 files changed

+153
-140
lines changed

.github/workflows/standardrb.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: Standard Ruby
2+
3+
on: [push]
4+
5+
jobs:
6+
build:
7+
runs-on: ubuntu-latest
8+
permissions:
9+
checks: write
10+
contents: write
11+
steps:
12+
- name: Standard Ruby
13+
uses: standardrb/standard-ruby-action@v1

Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
source 'https://rubygems.org'
1+
source "https://rubygems.org"
22

33
gemspec

Rakefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ require "rspec/core/rake_task"
33

44
RSpec::Core::RakeTask.new(:spec)
55

6-
task :default => :spec
6+
task default: :spec

lib/tenkit.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# frozen_string_literal: true
22

3-
require_relative 'tenkit/container'
4-
require_relative 'tenkit/client'
5-
require_relative 'tenkit/config'
6-
require_relative 'tenkit/version'
7-
require_relative 'tenkit/weather'
8-
require_relative 'tenkit/tenkit_error'
3+
require_relative "tenkit/container"
4+
require_relative "tenkit/client"
5+
require_relative "tenkit/config"
6+
require_relative "tenkit/version"
7+
require_relative "tenkit/weather"
8+
require_relative "tenkit/tenkit_error"
99

1010
module Tenkit
1111
class << self

lib/tenkit/client.rb

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,55 @@
11
# frozen_string_literal: true
22

3-
require 'jwt'
4-
require 'openssl'
5-
require 'httparty'
6-
require_relative './weather_response'
3+
require "jwt"
4+
require "openssl"
5+
require "httparty"
6+
require_relative "weather_response"
77

88
module Tenkit
99
class Client
1010
include HTTParty
11-
base_uri 'https://weatherkit.apple.com/api/v1'
11+
base_uri "https://weatherkit.apple.com/api/v1"
1212

1313
DATA_SETS = {
14-
current_weather: 'currentWeather',
15-
forecast_daily: 'forecastDaily',
16-
forecast_hourly: 'forecastHourly',
17-
forecast_next_hour: 'forecastNextHour',
18-
trend_comparison: 'trendComparison',
19-
weather_alerts: 'weatherAlerts'
14+
current_weather: "currentWeather",
15+
forecast_daily: "forecastDaily",
16+
forecast_hourly: "forecastHourly",
17+
forecast_next_hour: "forecastNextHour",
18+
trend_comparison: "trendComparison",
19+
weather_alerts: "weatherAlerts"
2020
}.freeze
2121

2222
def initialize
2323
Tenkit.config.validate!
2424
end
2525

26-
def availability(lat, lon, country: 'US')
26+
def availability(lat, lon, country: "US")
2727
get("/availability/#{lat}/#{lon}?country=#{country}")
2828
end
2929

30-
def weather(lat, lon, data_sets: [:current_weather], language: 'en')
30+
def weather(lat, lon, data_sets: [:current_weather], language: "en")
3131
path_root = "/weather/#{language}/#{lat}/#{lon}?dataSets="
32-
path = path_root + data_sets.map { |ds| DATA_SETS[ds] }.compact.join(',')
32+
path = path_root + data_sets.map { |ds| DATA_SETS[ds] }.compact.join(",")
3333
response = get(path)
3434
WeatherResponse.new(response)
3535
end
3636

37-
def weather_alert(id, language: 'en')
38-
puts 'TODO: implement weather alert endpoint'
37+
def weather_alert(id, language: "en")
38+
puts "TODO: implement weather alert endpoint"
3939
puts language
4040
puts id
4141
end
4242

4343
private
4444

4545
def get(url)
46-
headers = { Authorization: "Bearer #{token}" }
47-
self.class.get(url, { headers: headers })
46+
headers = {Authorization: "Bearer #{token}"}
47+
self.class.get(url, {headers: headers})
4848
end
4949

5050
def header
5151
{
52-
alg: 'ES256',
52+
alg: "ES256",
5353
kid: Tenkit.config.key_id,
5454
id: "#{Tenkit.config.team_id}.#{Tenkit.config.service_id}"
5555
}
@@ -69,7 +69,7 @@ def key
6969
end
7070

7171
def token
72-
JWT.encode payload, key, 'ES256', header
72+
JWT.encode payload, key, "ES256", header
7373
end
7474
end
7575
end

lib/tenkit/config.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class Config
1414
def validate!
1515
missing_required = REQUIRED_ATTRIBUTES.filter { |required| instance_variable_get(required).nil? }
1616
if missing_required.length > 0
17-
raise TenkitError, "#{missing_required.join(', ')} cannot be blank. check that you have configured your credentials"
17+
raise TenkitError, "#{missing_required.join(", ")} cannot be blank. check that you have configured your credentials"
1818
end
1919
end
2020
end

lib/tenkit/next_hour_forecast.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module Tenkit
22
class NextHourForecast
33
def initialize(forecast_next_hour)
4-
return if forecast_next_hour.nil?
4+
nil if forecast_next_hour.nil?
55
end
66
end
77
end

lib/tenkit/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# frozen_string_literal: true
22

33
module Tenkit
4-
VERSION = '0.0.6'
4+
VERSION = "0.0.6"
55
end

lib/tenkit/weather.rb

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
1-
require_relative './next_hour_forecast'
2-
require_relative './trend_comparison'
3-
require_relative './weather_alert_collection'
1+
require_relative "next_hour_forecast"
2+
require_relative "trend_comparison"
3+
require_relative "weather_alert_collection"
44

55
module Tenkit
66
class Weather
77
attr_reader :current_weather,
8-
:forecast_daily,
9-
:forecast_hourly,
10-
:forecast_next_hour,
11-
:trend_comparison,
12-
:weather_alerts
8+
:forecast_daily,
9+
:forecast_hourly,
10+
:forecast_next_hour,
11+
:trend_comparison,
12+
:weather_alerts
1313

1414
def initialize(response)
1515
parsed_response = JSON.parse(response.body)
1616

17-
current_weather = parsed_response['currentWeather']
18-
forecast_daily = parsed_response['forecastDaily']
19-
forecast_hourly = parsed_response['forecastHourly']
20-
forecast_next_hour = parsed_response['forecastNextHour']
21-
trend_comparison = parsed_response['trendComparison']
22-
weather_alerts = parsed_response['weatherAlerts']
17+
current_weather = parsed_response["currentWeather"]
18+
forecast_daily = parsed_response["forecastDaily"]
19+
forecast_hourly = parsed_response["forecastHourly"]
20+
forecast_next_hour = parsed_response["forecastNextHour"]
21+
trend_comparison = parsed_response["trendComparison"]
22+
weather_alerts = parsed_response["weatherAlerts"]
2323

2424
@current_weather = CurrentWeather.new(current_weather)
2525
@forecast_daily = DailyForecast.new(forecast_daily)
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
require_relative './weather_alert_summary'
1+
require_relative "weather_alert_summary"
22

33
module Tenkit
44
class WeatherAlertCollection
@@ -7,8 +7,8 @@ class WeatherAlertCollection
77
def initialize(weather_alerts)
88
return if weather_alerts.nil?
99

10-
@alerts = weather_alerts['alerts'].map { |alert| WeatherAlertSummary.new(alert) }
11-
@details_url = weather_alerts['detailsUrl']
10+
@alerts = weather_alerts["alerts"].map { |alert| WeatherAlertSummary.new(alert) }
11+
@details_url = weather_alerts["detailsUrl"]
1212
end
1313
end
1414
end

lib/tenkit/weather_alert_summary.rb

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,39 @@
11
module Tenkit
22
class WeatherAlertSummary
33
attr_reader :area_id,
4-
:area_name,
5-
:certainty,
6-
:country_code,
7-
:description,
8-
:details_url,
9-
:effective_time,
10-
:event_end_time,
11-
:event_onset_time,
12-
:expire_time,
13-
:id,
14-
:issued_time,
15-
:responses,
16-
:severity,
17-
:source,
18-
:urgency
4+
:area_name,
5+
:certainty,
6+
:country_code,
7+
:description,
8+
:details_url,
9+
:effective_time,
10+
:event_end_time,
11+
:event_onset_time,
12+
:expire_time,
13+
:id,
14+
:issued_time,
15+
:responses,
16+
:severity,
17+
:source,
18+
:urgency
1919

2020
def initialize(weather_alert)
21-
@area_id = weather_alert['areaId']
22-
@area_name = weather_alert['areaName']
23-
@certainty = weather_alert['certainty']
24-
@country_code = weather_alert['countryCode']
25-
@description = weather_alert['description']
26-
@details_url = weather_alert['detailsUrl']
27-
@effective_time = weather_alert['effectiveTime']
28-
@event_end_time = weather_alert['eventEndTime']
29-
@event_onset_time = weather_alert['eventOnsetTime']
30-
@expire_time = weather_alert['expireTime']
31-
@id = weather_alert['id']
32-
@issued_time = weather_alert['issued_time']
33-
@responses = weather_alert['responses']
34-
@severity = weather_alert['severity']
35-
@source = weather_alert['source']
36-
@urgency = weather_alert['urgency']
21+
@area_id = weather_alert["areaId"]
22+
@area_name = weather_alert["areaName"]
23+
@certainty = weather_alert["certainty"]
24+
@country_code = weather_alert["countryCode"]
25+
@description = weather_alert["description"]
26+
@details_url = weather_alert["detailsUrl"]
27+
@effective_time = weather_alert["effectiveTime"]
28+
@event_end_time = weather_alert["eventEndTime"]
29+
@event_onset_time = weather_alert["eventOnsetTime"]
30+
@expire_time = weather_alert["expireTime"]
31+
@id = weather_alert["id"]
32+
@issued_time = weather_alert["issued_time"]
33+
@responses = weather_alert["responses"]
34+
@severity = weather_alert["severity"]
35+
@source = weather_alert["source"]
36+
@urgency = weather_alert["urgency"]
3737
end
3838
end
3939
end

lib/tenkit/weather_response.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
require_relative './response'
1+
require_relative "response"
22

33
module Tenkit
44
class WeatherResponse < Response

spec/tenkit/mock/weather.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6355,4 +6355,3 @@ def self.all_data_sets
63556355
end
63566356
end
63576357
end
6358-

spec/tenkit/spec_helper.rb

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
require_relative '../../lib/tenkit'
1+
require_relative "../../lib/tenkit"
22

3-
require 'webmock/rspec'
4-
require 'dotenv'
3+
require "webmock/rspec"
4+
require "dotenv"
55
Dotenv.load
66

77
Tenkit.configure do |c|
8-
c.team_id = ENV.fetch('TID')
9-
c.service_id = ENV.fetch('SID')
10-
c.key_id = ENV.fetch('KID')
11-
c.key = ENV.fetch('AUTH_KEY')
8+
c.team_id = ENV.fetch("TID")
9+
c.service_id = ENV.fetch("SID")
10+
c.key_id = ENV.fetch("KID")
11+
c.key = ENV.fetch("AUTH_KEY")
1212
end
13-

spec/tenkit/tenkit/config_spec.rb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
require_relative '../../../lib/tenkit'
1+
require_relative "../../../lib/tenkit"
22

33
RSpec.describe Tenkit::Config do
4-
describe '#validate!' do
5-
it 'raises a Tenkit::TenkitError exception if missing required config vals' do
4+
describe "#validate!" do
5+
it "raises a Tenkit::TenkitError exception if missing required config vals" do
66
config = Tenkit::Config.new
77
expect { config.validate! }.to raise_error Tenkit::TenkitError
8-
config.team_id = '123'
8+
config.team_id = "123"
99
expect { config.validate! }.to raise_error Tenkit::TenkitError
10-
config.service_id = 'abc'
10+
config.service_id = "abc"
1111
expect { config.validate! }.to raise_error Tenkit::TenkitError
12-
config.key_id = 'hij'
12+
config.key_id = "hij"
1313
expect { config.validate! }.to raise_error Tenkit::TenkitError
14-
config.key = '====PRIVATE KEY===='
14+
config.key = "====PRIVATE KEY===="
1515
expect { config.validate! }.not_to raise_error
1616
end
1717
end

spec/tenkit/tenkit/weather_spec.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
it "includes expected metadata" do
1818
expect(subject.name).to eq "CurrentWeather"
19-
expect(subject.metadata.attribution_url).to start_with 'https://'
19+
expect(subject.metadata.attribution_url).to start_with "https://"
2020
expect(subject.metadata.latitude).to be 37.32
2121
expect(subject.metadata.longitude).to be 122.03
2222
end
@@ -51,12 +51,12 @@
5151
end
5252

5353
it "excludes learn_more_url node" do
54-
expect(subject.respond_to? :learn_more_url).to be false
54+
expect(subject.respond_to?(:learn_more_url)).to be false
5555
end
5656

5757
it "includes expected metadata" do
5858
expect(subject.name).to eq "DailyForecast"
59-
expect(subject.metadata.attribution_url).to start_with 'https://'
59+
expect(subject.metadata.attribution_url).to start_with "https://"
6060
expect(subject.metadata.latitude).to be 37.32
6161
expect(subject.metadata.longitude).to be 122.03
6262
end
@@ -88,7 +88,7 @@
8888

8989
it "includes expected metadata" do
9090
expect(subject.name).to eq "HourlyForecast"
91-
expect(subject.metadata.attribution_url).to start_with 'https://'
91+
expect(subject.metadata.attribution_url).to start_with "https://"
9292
expect(subject.metadata.latitude).to be 37.32
9393
expect(subject.metadata.longitude).to be 122.03
9494
end

0 commit comments

Comments
 (0)