smashrun-ruby 0.1.2 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 9933ab7a4d03fabdde1506b9e11b0c6373db9550
4
- data.tar.gz: c4fd2cd6ea33c40da6b1b70b4fc98d2165439213
2
+ SHA256:
3
+ metadata.gz: 4fc507695124aea34f2f5eb47c5003ccf6d75271b4d9d49b58c8041f26021e99
4
+ data.tar.gz: f2900b63167fd19c44e92e4b0655a91dbfee175bfc4c4cfc548193bcd6477d1a
5
5
  SHA512:
6
- metadata.gz: 84bc5dbfb0c45811687fc4f73e51ee9ff6a7dc6b834760d588ea6342afea8f77297d737a701f08611d6e6da12c09607ef035374bfb8b428bdd40307088fefadd
7
- data.tar.gz: 1ad401357bd282d2f7773d6cf1d9e8b53a71d9b7c8bc5bdfe1e40266cc7cdde02391f018e43b530b4e7215e5532ba55b1b66f0caf785ddef45cbcdadb11306cc
6
+ metadata.gz: f84d14ee7f124a41cf7e4260e3a2e9198dca69193a29e99e3f68ffcabaa150e52a7d28c74d5b4598eefe835246b16ba582e391861e172ec9e19aa6440b02c80a
7
+ data.tar.gz: d842ec667a71afd8fcdf26c249748803b83a9c1e3aa89720cd43caab6ad4c027536e9089d114313dbf5950bcc32f4a5096f3af56801f1e905a0ca8f8506f19be
data/.document CHANGED
File without changes
@@ -0,0 +1,45 @@
1
+ name: Ruby Gem
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - master
7
+ push:
8
+ branches:
9
+ - master
10
+
11
+ jobs:
12
+ build:
13
+ name: Build + Publish
14
+ runs-on: ubuntu-latest
15
+
16
+ steps:
17
+ - uses: actions/checkout@master
18
+ - name: Set up Ruby 2.6
19
+ uses: actions/setup-ruby@v1
20
+ with:
21
+ version: 2.6.x
22
+
23
+ - name: Publish to GPR
24
+ run: echo pending
25
+ # run: |
26
+ # mkdir -p $HOME/.gem
27
+ # touch $HOME/.gem/credentials
28
+ # chmod 0600 $HOME/.gem/credentials
29
+ # printf -- "---\n:github: Bearer ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
30
+ # gem build *.gemspec
31
+ # gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
32
+ env:
33
+ GEM_HOST_API_KEY: ${{secrets.GPR_AUTH_TOKEN}}
34
+ OWNER: naveed-ahmad
35
+
36
+ - name: Publish to RubyGems
37
+ run: |
38
+ mkdir -p $HOME/.gem
39
+ touch $HOME/.gem/credentials
40
+ chmod 0600 $HOME/.gem/credentials
41
+ printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
42
+ gem build *.gemspec
43
+ gem push *.gem
44
+ env:
45
+ GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_AUTH_TOKEN}}
data/Gemfile CHANGED
@@ -5,7 +5,7 @@ source "https://rubygems.org"
5
5
 
6
6
  source 'https://rubygems.org'
7
7
  gem 'oauth2', '~> 1.4.0'
8
- gem 'oj', '~> 3.3.5'
8
+ gem 'oj', '~> 3.9.1'
9
9
 
10
10
  # Add dependencies to develop your gem here.
11
11
  # Include everything needed to run rake, tests, features, etc.
@@ -13,5 +13,4 @@ group :development do
13
13
  gem "rdoc", "~> 3.12"
14
14
  gem "bundler", "~> 1.0"
15
15
  gem "juwelier", "~> 2.1.0"
16
- gem "simplecov", ">= 0"
17
16
  end
data/Gemfile.lock CHANGED
@@ -5,7 +5,6 @@ GEM
5
5
  builder (3.2.3)
6
6
  descendants_tracker (0.0.4)
7
7
  thread_safe (~> 0.3, >= 0.3.1)
8
- docile (1.1.5)
9
8
  faraday (0.9.2)
10
9
  multipart-post (>= 1.2, < 3)
11
10
  git (1.3.0)
@@ -31,29 +30,26 @@ GEM
31
30
  semver
32
31
  jwt (1.5.6)
33
32
  mime-types (2.99.3)
34
- mini_portile2 (2.3.0)
33
+ mini_portile2 (2.5.0)
35
34
  multi_json (1.12.2)
36
35
  multi_xml (0.6.0)
37
36
  multipart-post (2.0.0)
38
- nokogiri (1.8.1)
39
- mini_portile2 (~> 2.3.0)
37
+ nokogiri (1.11.1)
38
+ mini_portile2 (~> 2.5.0)
39
+ racc (~> 1.4)
40
40
  oauth2 (1.4.0)
41
41
  faraday (>= 0.8, < 0.13)
42
42
  jwt (~> 1.0)
43
43
  multi_json (~> 1.3)
44
44
  multi_xml (~> 0.5)
45
45
  rack (>= 1.2, < 3)
46
- oj (3.3.6)
47
- rack (2.0.3)
48
- rake (12.1.0)
46
+ oj (3.9.1)
47
+ racc (1.5.2)
48
+ rack (2.2.3)
49
+ rake (13.0.3)
49
50
  rdoc (3.12.2)
50
51
  json (~> 1.4)
51
52
  semver (1.0.1)
52
- simplecov (0.15.1)
53
- docile (~> 1.1.0)
54
- json (>= 1.8, < 3)
55
- simplecov-html (~> 0.10.0)
56
- simplecov-html (0.10.2)
57
53
  thread_safe (0.3.6)
58
54
 
59
55
  PLATFORMS
@@ -63,9 +59,8 @@ DEPENDENCIES
63
59
  bundler (~> 1.0)
64
60
  juwelier (~> 2.1.0)
65
61
  oauth2 (~> 1.4.0)
66
- oj (~> 3.3.5)
62
+ oj (~> 3.9.1)
67
63
  rdoc (~> 3.12)
68
- simplecov
69
64
 
70
65
  BUNDLED WITH
71
- 1.13.7
66
+ 1.17.2
data/LICENSE.txt CHANGED
File without changes
data/README.md ADDED
@@ -0,0 +1,72 @@
1
+ # smashrun
2
+
3
+ Ruby gem for [Smashrun api](https://api.smashrun.com/v1/documentation)
4
+
5
+ Register your application for getting client id and secret: https://api.smashrun.com/register
6
+
7
+ ## Usage
8
+
9
+ ### Authentication
10
+
11
+ ```ruby
12
+ Smashrun.configure do |config|
13
+ config.client_id = 'your app client id'
14
+ config.client_secret = 'your app client secret'
15
+ end
16
+
17
+ client = Smashrun::Client.new(user_access_token)
18
+ ```
19
+
20
+ ### Refresh user's access token
21
+ Smashrun tokens are valid for 12 weeks, you can refresh access tokens using user's refresh token.
22
+
23
+ ```ruby
24
+ client.refresh_token(refresh_token)
25
+ ```
26
+ You better save new access token and refresh token.
27
+
28
+
29
+ ### Fetching activities
30
+
31
+ ```ruby
32
+ client.activities # => list of recent activities
33
+ ```
34
+ You can also use **fromDateUTC**, **page** or **count** for filtering and paginating activities list
35
+
36
+ ```ruby
37
+ client.activities page: 1, count: 100
38
+
39
+ client.activities fromDateUTC: 2.days.ago.to_i, page: 2
40
+ ```
41
+
42
+ If you want to minimize download size or need to quickly check for new activities, use following api methods instead.
43
+ ```ruby
44
+ client.latest_activities_briefs # retrive activities with minimal info( id, startTime, distance and duration)
45
+
46
+ client.latest_activities_ids # or just ids
47
+ ````
48
+
49
+
50
+ ### Fetching single activity detail
51
+
52
+ ```ruby
53
+ client.activity_detail activity_id # full activity detail
54
+ client.activity_svg_polyline activity_id # retrive SVG polyline for route of activity
55
+ client.activity_geojson activity_id # retrive activity route in GeoJSON format
56
+ client.activity_splits activity_id, 'distance_unit' # retrive splits of an activity in specified unit ( mi for mile and km for kilometer)
57
+ ````
58
+
59
+ ### Fetching user detail
60
+ ```ruby
61
+ client.athlete
62
+ ```
63
+
64
+ ### Posting new activities
65
+
66
+ Pending...
67
+
68
+
69
+ ## Copyright
70
+
71
+ Copyright (c) 20117 Naveed Ahmad. See LICENSE.txt for further details.
72
+
data/Rakefile CHANGED
@@ -14,13 +14,13 @@ require 'juwelier'
14
14
  Juwelier::Tasks.new do |gem|
15
15
  # gem is a Gem::Specification... see http://guides.rubygems.org/specification-reference/ for more options
16
16
  gem.name = "smashrun-ruby"
17
- gem.homepage = "http://github.com/naveed-ahmad/smashrun"
17
+ gem.homepage = "http://github.com/naveed-ahmad/smashrun-ruby"
18
18
  gem.license = "MIT"
19
19
  gem.summary = "Ruby gem for Smashrun api"
20
20
  gem.description = gem.summary
21
21
  gem.email = "naveedahmada036@gmail.com"
22
22
  gem.authors = ["Naveed Ahmad"]
23
-
23
+
24
24
  # dependencies defined in Gemfile
25
25
  end
26
26
  Juwelier::RubygemsDotOrgTasks.new
@@ -31,18 +31,12 @@ Rake::TestTask.new(:test) do |test|
31
31
  test.verbose = true
32
32
  end
33
33
 
34
- desc "Code coverage detail"
35
- task :simplecov do
36
- ENV['COVERAGE'] = "true"
37
- Rake::Task['test'].execute
38
- end
39
-
40
34
  task :default => :test
41
35
 
42
36
  require 'rdoc/task'
43
37
  Rake::RDocTask.new do |rdoc|
44
38
  version = File.exist?('VERSION') ? File.read('VERSION') : ""
45
-
39
+
46
40
  rdoc.rdoc_dir = 'rdoc'
47
41
  rdoc.title = "smashrun-ruby #{version}"
48
42
  rdoc.rdoc_files.include('README*')
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.3.2
data/lib/smashrun.rb CHANGED
File without changes
@@ -3,7 +3,7 @@ module Smashrun
3
3
  OAUTH_URLS = { site: 'https://api.smashrun.com',
4
4
  authorize_url: 'https://secure.smashrun.com/oauth2/authenticate',
5
5
  token_url: 'https://secure.smashrun.com/oauth2/token'
6
- }
6
+ }.freeze
7
7
 
8
8
  def initialize(access_token)
9
9
  client = OAuth2::Client.new(Smashrun.client_id, Smashrun.client_secret, OAUTH_URLS)
@@ -11,62 +11,63 @@ module Smashrun
11
11
  @token = OAuth2::AccessToken.new(client, access_token)
12
12
  end
13
13
 
14
- def get_refresh_token(token)
14
+ def refresh_token(token)
15
15
  @token.refresh_token = token
16
16
  @token.refresh!.to_hash
17
17
  end
18
18
 
19
- # Retrieve latest activities
20
- def get_activities()
21
- Oj.load(@token.get("/v1/my/activities").body)
22
- end
23
-
24
19
  # Filter activities, valid options are: *fromDateUTC*, *page* and *count*
25
- def search_activities(params={})
26
- Oj.load(@token.get("/v1/my/activities/search", params).body)
20
+ def activities(params={})
21
+ uri = params.present? ? "/v1/my/activities/search" : "/v1/my/activities"
22
+ request uri, params
27
23
  end
28
24
 
29
25
  # Returns the first 100 smashrun run ids.
30
26
  def latest_activities_ids
31
- Oj.load(@token.get("/v1/my/activities/search/ids").body)
27
+ request "/v1/my/activities/search/ids"
32
28
  end
33
29
 
34
30
  # Returns an array of json objects containing the runId, startTime, distance (in kilometers), and duration
35
31
  def latest_activities_briefs
36
- Oj.load(@token.get("/v1/my/activities/search/briefs").body)
32
+ request "/v1/my/activities/search/briefs"
37
33
  end
38
34
 
39
35
  # To retrieve a Google encoded polyline of a run route to easily draw a route map in Google maps.
40
36
  def activity_polyline(activity_id)
41
- Oj.load(@token.get("/v1/my/activities/#{activity_id}/polyline").body)
37
+ request "/v1/my/activities/#{activity_id}/polyline"
42
38
  end
43
-
39
+
44
40
  # To retrieve an SVG polyline of a run route.
45
41
  def activity_svg_polyline(activity_id)
46
- Oj.load(@token.get("/v1/my/activities/#{activity_id}/polyline/svg").body)
42
+ request "/v1/my/activities/#{activity_id}/polyline/svg"
47
43
  end
48
44
 
49
45
  # To retrieve a GeoJSON representation a run route.
50
46
  def activity_geojson(activity_id)
51
- Oj.load(@token.get("/v1/my/activities/#{activity_id}/polyline/geojson").body)
47
+ request "/v1/my/activities/#{activity_id}/polyline/geojson"
52
48
  end
53
-
49
+
54
50
  # To retrieve a detail of single activity.
55
51
  def activity_detail(activity_id)
56
- Oj.load(@token.get("/v1/my/activities/#{activity_id}").body)
52
+ request "/v1/my/activities/#{activity_id}"
57
53
  end
58
-
54
+
59
55
  # Retrive activity splits
60
56
  def activity_splits(activity_id, unit)
61
57
  unless ['km', 'mi'].include?(unit)
62
58
  raise ArgumentError.new("Invlaid distance unit for splits. Valid units are km or mi")
63
59
  end
64
-
65
- Oj.load(@token.get("/v1/my/activities/#{activity_id}/splits/#{unit}").body)
60
+
61
+ request "/v1/my/activities/#{activity_id}/splits/#{unit}"
62
+ end
63
+
64
+ def athlete
65
+ request "/v1/my/userinfo"
66
66
  end
67
67
 
68
- def profile_info
69
- Oj.load(@token.get("/v1/my/userinfo").body)
68
+ protected
69
+ def request(uri, params={})
70
+ Oj.load @token.get(uri, params: params).body
70
71
  end
71
72
  end
72
73
  end
File without changes
@@ -2,28 +2,29 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: smashrun-ruby 0.1.2 ruby lib
5
+ # stub: smashrun-ruby 0.3.1 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
- s.name = "smashrun-ruby"
9
- s.version = "0.1.2"
8
+ s.name = "smashrun-ruby".freeze
9
+ s.version = "0.3.2"
10
10
 
11
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
- s.require_paths = ["lib"]
13
- s.authors = ["Naveed Ahmad"]
14
- s.date = "2017-10-02"
15
- s.description = "Ruby gem for Smashrun api"
16
- s.email = "naveedahmada036@gmail.com"
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib".freeze]
13
+ s.authors = ["Naveed Ahmad".freeze]
14
+ s.date = "2019-09-14"
15
+ s.description = "Ruby gem for Smashrun api".freeze
16
+ s.email = "naveedahmada036@gmail.com".freeze
17
17
  s.extra_rdoc_files = [
18
18
  "LICENSE.txt",
19
- "README.rdoc"
19
+ "README.md"
20
20
  ]
21
21
  s.files = [
22
22
  ".document",
23
+ ".github/workflows/gempush.yml",
23
24
  "Gemfile",
24
25
  "Gemfile.lock",
25
26
  "LICENSE.txt",
26
- "README.rdoc",
27
+ "README.md",
27
28
  "Rakefile",
28
29
  "VERSION",
29
30
  "lib/smashrun.rb",
@@ -33,36 +34,33 @@ Gem::Specification.new do |s|
33
34
  "test/helper.rb",
34
35
  "test/test_smashrun.rb"
35
36
  ]
36
- s.homepage = "http://github.com/naveed-ahmad/smashrun"
37
- s.licenses = ["MIT"]
38
- s.rubygems_version = "2.4.8"
39
- s.summary = "Ruby gem for Smashrun api"
37
+ s.homepage = "http://github.com/naveed-ahmad/smashrun-ruby".freeze
38
+ s.licenses = ["MIT".freeze]
39
+ s.rubygems_version = "3.0.3".freeze
40
+ s.summary = "Ruby gem for Smashrun api".freeze
40
41
 
41
42
  if s.respond_to? :specification_version then
42
43
  s.specification_version = 4
43
44
 
44
45
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
45
- s.add_runtime_dependency(%q<oauth2>, ["~> 1.4.0"])
46
- s.add_runtime_dependency(%q<oj>, ["~> 3.3.5"])
47
- s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
48
- s.add_development_dependency(%q<bundler>, ["~> 1.0"])
49
- s.add_development_dependency(%q<juwelier>, ["~> 2.1.0"])
50
- s.add_development_dependency(%q<simplecov>, [">= 0"])
46
+ s.add_runtime_dependency(%q<oauth2>.freeze, ["~> 1.4.0"])
47
+ s.add_runtime_dependency(%q<oj>.freeze, ["~> 3.10.2"])
48
+ s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
49
+ s.add_development_dependency(%q<bundler>.freeze, ["~> 1.0"])
50
+ s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.1.0"])
51
51
  else
52
- s.add_dependency(%q<oauth2>, ["~> 1.4.0"])
53
- s.add_dependency(%q<oj>, ["~> 3.3.5"])
54
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
55
- s.add_dependency(%q<bundler>, ["~> 1.0"])
56
- s.add_dependency(%q<juwelier>, ["~> 2.1.0"])
57
- s.add_dependency(%q<simplecov>, [">= 0"])
52
+ s.add_dependency(%q<oauth2>.freeze, ["~> 1.4.0"])
53
+ s.add_dependency(%q<oj>.freeze, ["~> 3.10.2"])
54
+ s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
55
+ s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
56
+ s.add_dependency(%q<juwelier>.freeze, ["~> 2.1.0"])
58
57
  end
59
58
  else
60
- s.add_dependency(%q<oauth2>, ["~> 1.4.0"])
61
- s.add_dependency(%q<oj>, ["~> 3.3.5"])
62
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
63
- s.add_dependency(%q<bundler>, ["~> 1.0"])
64
- s.add_dependency(%q<juwelier>, ["~> 2.1.0"])
65
- s.add_dependency(%q<simplecov>, [">= 0"])
59
+ s.add_dependency(%q<oauth2>.freeze, ["~> 1.4.0"])
60
+ s.add_dependency(%q<oj>.freeze, ["~> 3.10.2"])
61
+ s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
62
+ s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
63
+ s.add_dependency(%q<juwelier>.freeze, ["~> 2.1.0"])
66
64
  end
67
65
  end
68
66
 
data/test/helper.rb CHANGED
File without changes
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smashrun-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Naveed Ahmad
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-02 00:00:00.000000000 Z
11
+ date: 2019-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oauth2
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 3.3.5
33
+ version: 3.10.2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 3.3.5
40
+ version: 3.10.2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rdoc
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -80,33 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 2.1.0
83
- - !ruby/object:Gem::Dependency
84
- name: simplecov
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
83
  description: Ruby gem for Smashrun api
98
84
  email: naveedahmada036@gmail.com
99
85
  executables: []
100
86
  extensions: []
101
87
  extra_rdoc_files:
102
88
  - LICENSE.txt
103
- - README.rdoc
89
+ - README.md
104
90
  files:
105
91
  - ".document"
92
+ - ".github/workflows/gempush.yml"
106
93
  - Gemfile
107
94
  - Gemfile.lock
108
95
  - LICENSE.txt
109
- - README.rdoc
96
+ - README.md
110
97
  - Rakefile
111
98
  - VERSION
112
99
  - lib/smashrun.rb
@@ -115,7 +102,7 @@ files:
115
102
  - smashrun-ruby.gemspec
116
103
  - test/helper.rb
117
104
  - test/test_smashrun.rb
118
- homepage: http://github.com/naveed-ahmad/smashrun
105
+ homepage: http://github.com/naveed-ahmad/smashrun-ruby
119
106
  licenses:
120
107
  - MIT
121
108
  metadata: {}
@@ -134,8 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
121
  - !ruby/object:Gem::Version
135
122
  version: '0'
136
123
  requirements: []
137
- rubyforge_project:
138
- rubygems_version: 2.4.8
124
+ rubygems_version: 3.2.3
139
125
  signing_key:
140
126
  specification_version: 4
141
127
  summary: Ruby gem for Smashrun api
data/README.rdoc DELETED
@@ -1,19 +0,0 @@
1
- = smashrun
2
-
3
- Description goes here.
4
-
5
- == Contributing to smashrun
6
-
7
- * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
8
- * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
9
- * Fork the project.
10
- * Start a feature/bugfix branch.
11
- * Commit and push until you are happy with your contribution.
12
- * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
13
- * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
14
-
15
- == Copyright
16
-
17
- Copyright (c) 2017 Naveed Ahmad. See LICENSE.txt for
18
- further details.
19
-