chronicle-foursquare 0.1.1 → 0.2.0

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
2
  SHA256:
3
- metadata.gz: b127e38ea0c2b7e3393023e9d1deeab3b9b1ec098dbf8bcc1ad0dd16eb8ee107
4
- data.tar.gz: 885e48e2f24f23182ff8ab04fae71caebb8713ba55e0e12b82f5f66c0ebc797a
3
+ metadata.gz: ebbe08ff2aed1578b59faa4de18500e7b8125e16da15f44987161af7b076ec7f
4
+ data.tar.gz: 5fc91f76c5b5b1e5fbe0e3c36cbe3b5f85fd7eaaf8a8f361686c75d3515b7078
5
5
  SHA512:
6
- metadata.gz: 5d374d7055cc2eec0f690c5b2cc5f7f4bb62d985541064d3bc8215187f033b904660aa050b9b96faa00e6f10bedce4b753237779fbb6f0d4cf29548e1b0f40db
7
- data.tar.gz: 3723eb0eec233292e9dc24c6d4e7b5db4f3854c6019ca3442a7d30659ed1d258b4833cf8a99d2f669a1e87abaaab636e4b2b0ea1799cb28ecc082906ddc33069
6
+ metadata.gz: 7ea5b83f185f9dc7387822fcbec917517edc1cb5ecc5ca9b220b4924224849703e6528c17432866de09f6fbdebbd40db36e6defa78385c603ac1854f39b28b60
7
+ data.tar.gz: de5b48c9e3c6175898b2f9801ebd963ffe4bd50a1377677b27b7318083ac8646e59a81ff97b2be82e387c3d85231c38af1dd85e0b10efa8b0ca3291ed985ecb3
data/.rubocop.yml ADDED
@@ -0,0 +1,2 @@
1
+ inherit_gem:
2
+ chronicle-core: .rubocop-plugin.yml
data/Gemfile CHANGED
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- source "https://rubygems.org"
3
+ source 'https://rubygems.org'
4
4
 
5
5
  # Specify your gem's dependencies in chronicle-foursquare.gemspec
6
6
  gemspec
7
7
 
8
- gem "rake", "~> 13.0"
8
+ gem 'rake', '~> 13.0'
data/README.md CHANGED
@@ -28,7 +28,7 @@ $ chronicle-etl secrets:set foursquare client_secret
28
28
  Next, we need an access token for accessing your data. We can use the authorization flow:
29
29
 
30
30
  ```sh
31
- $ chronicle-etl authorizations:new foursquare
31
+ $ chronicle-etl authorizations:foursquare
32
32
  ```
33
33
 
34
34
  This will open a browser window to authorize on foursquare.com. When the flow is complete, access/refresh tokens will be saved in the chronicle secret system under the "foursquare" namespace. It'll be available automatically whenever you use this plugin.
@@ -37,23 +37,21 @@ This will open a browser window to authorize on foursquare.com. When the flow is
37
37
  ```sh
38
38
  # Extract recent checkins
39
39
  $ chronicle-etl --extractor foursquare --since 1w
40
+
40
41
  # Transform as Chronicle Schema
41
- $ chronicle-etl --extractor foursquare --since 1w --transformer foursquare --loader json
42
+ $ chronicle-etl --extractor foursquare --since 1w --schema chronicle
43
+
44
+ # Get a table of dates and place name
45
+ $ chronicle-etl --extractor foursquare --since 1w --schema chronicle --fields end_time object.name --loader table
42
46
  ```
43
47
 
44
48
  ## Available Connectors
45
49
 
46
50
  ### Extractors
47
51
 
48
- #### `checkins`
52
+ #### `checkin`
49
53
 
50
54
  Extractor for your Foursquare (via the Swarm app) checkins
51
55
 
52
56
  ##### Settings
53
57
  - `access_token`: (required) API access token for foursquare. By default, it's loaded from secrets under the `foursquare` namespace. You can check if it's available with `chronicle-etl secrets:list foursquare`
54
-
55
- ### Transformers
56
-
57
- #### `visit`
58
-
59
- Transform a visit into Chronicle Schema
data/Rakefile CHANGED
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "bundler/gem_tasks"
3
+ require 'bundler/gem_tasks'
4
4
  task default: %i[]
data/bin/console CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- require "bundler/setup"
5
- require "chronicle/foursquare"
4
+ require 'bundler/setup'
5
+ require 'chronicle/foursquare'
6
6
 
7
7
  # You can add fixtures and/or initialization code here to make experimenting
8
8
  # with your gem easier. You can also use a different console, if you like.
@@ -11,5 +11,5 @@ require "chronicle/foursquare"
11
11
  # require "pry"
12
12
  # Pry.start
13
13
 
14
- require "irb"
14
+ require 'irb'
15
15
  IRB.start(__FILE__)
@@ -1,46 +1,51 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path("../lib", __FILE__)
3
+ lib = File.expand_path('lib', __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require "chronicle/foursquare/version"
5
+ require 'chronicle/foursquare/version'
6
6
 
7
7
  Gem::Specification.new do |spec|
8
- spec.name = "chronicle-foursquare"
8
+ spec.name = 'chronicle-foursquare'
9
9
  spec.version = Chronicle::Foursquare::VERSION
10
- spec.authors = ["Andrew Louis"]
11
- spec.email = ["andrew@hyfen.net"]
10
+ spec.authors = ['Andrew Louis']
11
+ spec.email = ['andrew@hyfen.net']
12
12
 
13
- spec.summary = "Foursquare importer for Chronicle"
14
- spec.description = "Foursquare connectors"
15
- spec.homepage = "https://github.com/chronicle-app/chronicle-foursquare"
13
+ spec.summary = 'Foursquare importer for Chronicle'
14
+ spec.description = 'Foursquare connectors'
15
+ spec.homepage = 'https://github.com/chronicle-app/chronicle-foursquare'
16
+
17
+ spec.required_ruby_version = '>= 3.0'
16
18
 
17
19
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
20
  # to allow pushing to a single host or delete this section to allow pushing to any host.
19
21
  if spec.respond_to?(:metadata)
20
- spec.metadata['allowed_push_host'] = "https://rubygems.org"
22
+ spec.metadata['allowed_push_host'] = 'https://rubygems.org'
21
23
 
22
- spec.metadata["homepage_uri"] = spec.homepage
23
- spec.metadata["source_code_uri"] = "https://github.com/chronicle-app/chronicle-foursquare"
24
- spec.metadata["changelog_uri"] = "https://github.com/chronicle-app/chronicle-foursquare"
24
+ spec.metadata['homepage_uri'] = spec.homepage
25
+ spec.metadata['source_code_uri'] = 'https://github.com/chronicle-app/chronicle-foursquare'
26
+ spec.metadata['changelog_uri'] = 'https://github.com/chronicle-app/chronicle-foursquare'
25
27
  else
26
- raise "RubyGems 2.0 or newer is required to protect against " \
27
- "public gem pushes."
28
+ raise 'RubyGems 2.0 or newer is required to protect against ' \
29
+ 'public gem pushes.'
28
30
  end
29
31
 
30
32
  # Specify which files should be added to the gem when it is released.
31
33
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
32
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
34
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
33
35
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
34
36
  end
35
- spec.bindir = "exe"
37
+ spec.bindir = 'exe'
36
38
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
37
- spec.require_paths = ["lib"]
38
-
39
- spec.add_dependency "chronicle-etl", "~> 0.5"
40
- spec.add_dependency "faraday", "~> 2"
41
- spec.add_dependency "omniauth-oauth2", "~> 1"
42
-
43
- spec.add_development_dependency "bundler", "~> 2.3"
44
- spec.add_development_dependency "rake", "~> 13.0.6"
45
- spec.add_development_dependency "pry-byebug", "~> 3.9"
39
+ spec.require_paths = ['lib']
40
+
41
+ spec.add_dependency 'chronicle-core', '~> 0.3'
42
+ spec.add_dependency 'chronicle-etl', '~> 0.6'
43
+ spec.add_dependency 'faraday', '~> 2'
44
+ spec.add_dependency 'omniauth-oauth2', '~> 1'
45
+
46
+ spec.add_development_dependency 'bundler', '~> 2.3'
47
+ spec.add_development_dependency 'pry-byebug', '~> 3.10'
48
+ spec.add_development_dependency 'rake', '~> 13.0'
49
+ spec.add_development_dependency 'rubocop', '~> 1.63'
50
+ spec.metadata['rubygems_mfa_required'] = 'true'
46
51
  end
@@ -5,12 +5,12 @@ module Chronicle
5
5
  class Authorizer < Chronicle::ETL::OauthAuthorizer
6
6
  provider :foursquare
7
7
  omniauth_strategy :foursquare
8
- pluck_secrets({
9
- access_token: [:credentials, :token],
8
+ pluck_secrets({
9
+ access_token: %i[credentials token],
10
10
  uid: [:uid],
11
- first_name: [:info, :first_name],
12
- last_name: [:info, :last_name],
13
- email: [:info, :email],
11
+ first_name: %i[info first_name],
12
+ last_name: %i[info last_name],
13
+ email: %i[info email]
14
14
  })
15
15
  end
16
16
  end
@@ -1,15 +1,17 @@
1
1
  module Chronicle
2
2
  module Foursquare
3
- class CheckinsExtractor < Chronicle::ETL::Extractor
3
+ class CheckinExtractor < Chronicle::ETL::Extractor
4
4
  register_connector do |r|
5
- r.provider = 'foursquare'
6
- r.description = 'checkins'
5
+ r.source = :foursquare
6
+ r.type = :checkin
7
+ r.strategy = :api
8
+ r.description = 'foursquare checkin'
7
9
  end
8
10
 
9
11
  setting :access_token, required: true
10
12
 
11
13
  def prepare
12
- raise(Chronicle::ETL::ExtractionError, "Access token is missing") if @config.access_token.empty?
14
+ raise(Chronicle::ETL::ExtractionError, 'Access token is missing') if @config.access_token.empty?
13
15
 
14
16
  @proxy = Chronicle::Foursquare::Proxy.new(access_token: @config.access_token)
15
17
  @actor = load_actor
@@ -22,7 +24,7 @@ module Chronicle
22
24
 
23
25
  def extract
24
26
  @checkins.each do |checkin|
25
- yield Chronicle::ETL::Extraction.new(data: checkin, meta: { actor: @actor})
27
+ yield build_extraction(data: checkin, meta: { actor: @actor })
26
28
  end
27
29
  end
28
30
 
@@ -2,84 +2,79 @@ module Chronicle
2
2
  module Foursquare
3
3
  class CheckinTransformer < Chronicle::ETL::Transformer
4
4
  register_connector do |r|
5
- r.provider = 'foursquare'
6
- r.description = 'foursquare checkin'
7
- r.identifier = 'checkin'
5
+ r.source = :foursquare
6
+ r.type = :checkin
7
+ r.strategy = :api
8
+ r.description = 'a checkin'
9
+ r.from_schema = :extraction
10
+ r.to_schema = :chronicle
8
11
  end
9
12
 
10
- def transform
11
- build_checkin
13
+ def transform(record)
14
+ checkin = record.data
15
+ actor = record.extraction.meta[:actor]
16
+ build_checkin(checkin, actor)
12
17
  end
13
18
 
14
- def timestamp
15
- Time.at(checkin[:createdAt])
16
- end
19
+ private
17
20
 
18
- def id
19
- checkin[:id]
21
+ def build_checkin(checkin, actor)
22
+ Chronicle::Models::CheckInAction.new do |r|
23
+ r.source = 'foursquare'
24
+ r.end_time = Time.at(checkin[:createdAt])
25
+ r.agent = build_agent(actor)
26
+ r.object = build_venue(checkin)
27
+ end
20
28
  end
21
29
 
22
- private
30
+ def build_venue(checkin)
31
+ venue = checkin[:venue]
32
+ location = venue[:location]
23
33
 
24
- def build_checkin
25
- record = ::Chronicle::ETL::Models::Activity.new
26
- record.provider = 'foursquare'
27
- record.end_at = timestamp
28
- record.provider_id = id
29
- record.lat = checkin[:venue][:location][:lat]
30
- record.lng = checkin[:venue][:location][:lng]
31
- record.dedupe_on << ['provider', 'provider_id', 'verb']
32
- record.involved = build_venue
33
- record.actor = build_actor
34
- record
35
- end
34
+ # TODO: represent categories (https://github.com/chronicle-app/chronicle-core/issues/10)
36
35
 
37
- def build_venue
38
- record = ::Chronicle::ETL::Models::Entity.new
39
- record.provider = 'foursquare'
40
- record.provider = checkin[:venue][:id]
41
- record.represents = 'venue'
42
- record.title = checkin[:venue][:name]
43
- record.provider_id = checkin[:venue][:id]
44
- record.lat = checkin[:venue][:location][:lat]
45
- record.lng = checkin[:venue][:location][:lng]
46
- record.dedupe_on << ['provider', 'provider_id', 'represents']
47
- record.abouts = checkin[:venue][:categories].map{|category| build_category(category)}
48
- record
49
- end
36
+ Chronicle::Models::Place.new do |r|
37
+ r.source = 'foursquare'
38
+ r.name = venue[:name]
39
+ r.latitude = location[:lat]
40
+ r.longitude = location[:lng]
41
+ r.source_id = venue[:id]
50
42
 
51
- def build_actor
52
- record = ::Chronicle::ETL::Models::Entity.new
53
- record.provider = 'foursquare'
54
- record.represents = 'identity'
55
- record.title = "#{actor[:firstName]} #{actor[:lastName]}"
56
- record.provider_id = actor[:id]
57
- record.provider_url = actor[:canonicalUrl]
58
- record.dedupe_on << ['provider_url']
59
- record.dedupe_on << ['provider', 'provider_id', 'represents']
60
- record.attachments = [::Chronicle::ETL::Models::Attachment.new({
61
- url_original: actor[:photo][:prefix] + "260x260" + actor[:photo][:suffix]
62
- })]
63
- record
64
- end
43
+ r.address = Chronicle::Models::PostalAddress.new do |a|
44
+ a.description = location&.dig(:formattedAddress)&.join(', ')
45
+ a.address_country = location[:country]
46
+ a.address_locality = location[:city]
47
+ a.address_region = location[:state]
48
+ a.postal_code = location[:postalCode]
49
+ a.street_address = location[:address]
50
+ end
65
51
 
66
- def build_category(category)
67
- record = ::Chronicle::ETL::Models::Entity.new
68
- record.provider = 'foursquare'
69
- record.provider_id = category[:id]
70
- record.represents = 'topic'
71
- record.title = category[:name]
72
- record.dedupe_on << ['provider', 'provider_id', 'represents']
73
- record
52
+ r.dedupe_on = [%i[source source_id type]]
53
+ end
74
54
  end
75
55
 
76
- def checkin
77
- @checkin ||= @extraction.data
78
- end
56
+ def build_agent(actor)
57
+ image_url = "#{actor[:photo][:prefix]}260x260#{actor[:photo][:suffix]}"
58
+ name = "#{actor[:firstName]} #{actor[:lastName]}"
79
59
 
80
- def actor
81
- @actor ||= @extraction.meta[:actor]
60
+ Chronicle::Models::Person.new do |r|
61
+ r.source = 'foursquare'
62
+ r.name = name
63
+ r.image = image_url
64
+ r.source_id = actor[:id]
65
+ r.url = actor[:canonicalUrl]
66
+ end
82
67
  end
68
+
69
+ # def build_category(category)
70
+ # record = ::Chronicle::ETL::Models::Entity.new
71
+ # record.provider = 'foursquare'
72
+ # record.provider_id = category[:id]
73
+ # record.represents = 'topic'
74
+ # record.title = category[:name]
75
+ # record.dedupe_on << ['provider', 'provider_id', 'represents']
76
+ # record
77
+ # end
83
78
  end
84
79
  end
85
80
  end
@@ -3,9 +3,9 @@ require 'faraday'
3
3
  module Chronicle
4
4
  module Foursquare
5
5
  class Proxy
6
- API_VERSION = 20170310
6
+ API_VERSION = 20_170_310
7
7
 
8
- def initialize(access_token: )
8
+ def initialize(access_token:)
9
9
  @access_token = access_token
10
10
  end
11
11
 
@@ -39,7 +39,7 @@ module Chronicle
39
39
  load_endpoint('users/self/checkins', params)[:response][:checkins][:items]
40
40
  end
41
41
 
42
- def load_endpoint(endpoint, params={})
42
+ def load_endpoint(endpoint, params = {})
43
43
  params = params.merge({
44
44
  oauth_token: @access_token,
45
45
  v: API_VERSION
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Chronicle
4
4
  module Foursquare
5
- VERSION = "0.1.1"
5
+ VERSION = '0.2.0'
6
6
  end
7
7
  end
@@ -1,10 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'chronicle/etl'
4
+ require 'chronicle/models'
4
5
 
5
- require_relative "foursquare/version"
6
- require_relative "../omniauth/strategies/foursquare"
7
- require_relative "foursquare/proxy"
8
- require_relative "foursquare/authorizer"
9
- require_relative "foursquare/checkins_extractor"
10
- require_relative "foursquare/checkin_transformer"
6
+ require_relative 'foursquare/version'
7
+ require_relative '../omniauth/strategies/foursquare'
8
+ require_relative 'foursquare/proxy'
9
+ require_relative 'foursquare/authorizer'
10
+ require_relative 'foursquare/checkin_extractor'
11
+ require_relative 'foursquare/checkin_transformer'
@@ -11,28 +11,28 @@ module OmniAuth
11
11
  module Strategies
12
12
  class Foursquare < OmniAuth::Strategies::OAuth2
13
13
  option :client_options, {
14
- :site => 'https://foursquare.com',
15
- :authorize_url => '/oauth2/authenticate',
16
- :token_url => '/oauth2/access_token'
14
+ site: 'https://foursquare.com',
15
+ authorize_url: '/oauth2/authenticate',
16
+ token_url: '/oauth2/access_token'
17
17
  }
18
18
 
19
19
  uid { raw_info['id'] }
20
20
 
21
21
  info do
22
22
  {
23
- :first_name => raw_info['firstName'],
24
- :last_name => raw_info['lastName'],
25
- :name => "#{raw_info['firstName']} #{raw_info['lastName']}",
26
- :email => (raw_info['contact'] || {})['email'],
27
- :phone => (raw_info['contact'] || {})['phone'],
28
- :image => raw_info['photo'],
29
- :location => raw_info['homeCity'],
30
- :description => raw_info['bio']
23
+ first_name: raw_info['firstName'],
24
+ last_name: raw_info['lastName'],
25
+ name: "#{raw_info['firstName']} #{raw_info['lastName']}",
26
+ email: (raw_info['contact'] || {})['email'],
27
+ phone: (raw_info['contact'] || {})['phone'],
28
+ image: raw_info['photo'],
29
+ location: raw_info['homeCity'],
30
+ description: raw_info['bio']
31
31
  }
32
32
  end
33
33
 
34
34
  extra do
35
- { :raw_info => raw_info }
35
+ { raw_info: raw_info }
36
36
  end
37
37
 
38
38
  def request_phase
@@ -41,8 +41,12 @@ module OmniAuth
41
41
  end
42
42
 
43
43
  def auth_hash
44
- OmniAuth::Utils.deep_merge(super, client_params.merge({
45
- :grant_type => 'authorization_code'}))
44
+ OmniAuth::Utils.deep_merge(super,
45
+ client_params.merge(
46
+ {
47
+ grant_type: 'authorization_code'
48
+ }
49
+ ))
46
50
  end
47
51
 
48
52
  def raw_info
@@ -54,7 +58,7 @@ module OmniAuth
54
58
  private
55
59
 
56
60
  def client_params
57
- {:client_id => options[:client_id], :redirect_uri => callback_url ,:response_type => "code"}
61
+ { client_id: options[:client_id], redirect_uri: callback_url, response_type: 'code' }
58
62
  end
59
63
  end
60
64
  end
metadata CHANGED
@@ -1,29 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chronicle-foursquare
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Louis
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-18 00:00:00.000000000 Z
11
+ date: 2024-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: chronicle-core
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.3'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.3'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: chronicle-etl
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: '0.5'
33
+ version: '0.6'
20
34
  type: :runtime
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: '0.5'
40
+ version: '0.6'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: faraday
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -66,34 +80,48 @@ dependencies:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
82
  version: '2.3'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry-byebug
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.10'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '3.10'
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: rake
71
99
  requirement: !ruby/object:Gem::Requirement
72
100
  requirements:
73
101
  - - "~>"
74
102
  - !ruby/object:Gem::Version
75
- version: 13.0.6
103
+ version: '13.0'
76
104
  type: :development
77
105
  prerelease: false
78
106
  version_requirements: !ruby/object:Gem::Requirement
79
107
  requirements:
80
108
  - - "~>"
81
109
  - !ruby/object:Gem::Version
82
- version: 13.0.6
110
+ version: '13.0'
83
111
  - !ruby/object:Gem::Dependency
84
- name: pry-byebug
112
+ name: rubocop
85
113
  requirement: !ruby/object:Gem::Requirement
86
114
  requirements:
87
115
  - - "~>"
88
116
  - !ruby/object:Gem::Version
89
- version: '3.9'
117
+ version: '1.63'
90
118
  type: :development
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
122
  - - "~>"
95
123
  - !ruby/object:Gem::Version
96
- version: '3.9'
124
+ version: '1.63'
97
125
  description: Foursquare connectors
98
126
  email:
99
127
  - andrew@hyfen.net
@@ -102,6 +130,7 @@ extensions: []
102
130
  extra_rdoc_files: []
103
131
  files:
104
132
  - ".gitignore"
133
+ - ".rubocop.yml"
105
134
  - CODE_OF_CONDUCT.md
106
135
  - Gemfile
107
136
  - README.md
@@ -111,8 +140,8 @@ files:
111
140
  - chronicle-foursquare.gemspec
112
141
  - lib/chronicle/foursquare.rb
113
142
  - lib/chronicle/foursquare/authorizer.rb
143
+ - lib/chronicle/foursquare/checkin_extractor.rb
114
144
  - lib/chronicle/foursquare/checkin_transformer.rb
115
- - lib/chronicle/foursquare/checkins_extractor.rb
116
145
  - lib/chronicle/foursquare/proxy.rb
117
146
  - lib/chronicle/foursquare/version.rb
118
147
  - lib/omniauth/strategies/foursquare.rb
@@ -123,6 +152,7 @@ metadata:
123
152
  homepage_uri: https://github.com/chronicle-app/chronicle-foursquare
124
153
  source_code_uri: https://github.com/chronicle-app/chronicle-foursquare
125
154
  changelog_uri: https://github.com/chronicle-app/chronicle-foursquare
155
+ rubygems_mfa_required: 'true'
126
156
  post_install_message:
127
157
  rdoc_options: []
128
158
  require_paths:
@@ -131,14 +161,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
131
161
  requirements:
132
162
  - - ">="
133
163
  - !ruby/object:Gem::Version
134
- version: '0'
164
+ version: '3.0'
135
165
  required_rubygems_version: !ruby/object:Gem::Requirement
136
166
  requirements:
137
167
  - - ">="
138
168
  - !ruby/object:Gem::Version
139
169
  version: '0'
140
170
  requirements: []
141
- rubygems_version: 3.3.3
171
+ rubygems_version: 3.4.10
142
172
  signing_key:
143
173
  specification_version: 4
144
174
  summary: Foursquare importer for Chronicle