salesforce_streamer 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7e5279cbf060a7998dda26f5b8243f4f7f45a235df437b6e5b43dded0a0db770
4
- data.tar.gz: fe42569934ea906d2a90426367233918558abf2848be187263af5556ab56ae3e
3
+ metadata.gz: 0b2b0f558cddea62f7daa6836378714c462efee9041651c018a3c03ba12f9e37
4
+ data.tar.gz: 0b78a376cc983420c7d0306db33ad81c91d29817048893f975b9647d748ccc75
5
5
  SHA512:
6
- metadata.gz: d3f90343488c893ef58bf82ef39105acaef83283476228d7263f524ca87855dd781212cb8b107786def223c32bfea43d9f299a15bca50e95698c3b733350ad9a
7
- data.tar.gz: 68467636cccd05ffdd5acc046b32f8f8d5dff0a14b9a72f7bcb18ac102b7664d4bb69538b5613200964f3186b596f345c1c7de83bbf1191a36df811bd825d589
6
+ metadata.gz: 9a94f0948ab22945f7609e8164330fb273eb32c3366e259fb40ea9b8dd0b39d7b7634972df36af6c4e2e57ce5cf43ee48d9e9ec6c6f46f61354c58144ee68c98
7
+ data.tar.gz: 4759ab638d353562eeda92be76d660314d7ea37b2bc7f2e2290cf1502f58282e63e8672bb15eeffd093600ae87fb9e63911e67cbfdd47a196697369c75a88983
data/.gitignore CHANGED
@@ -1,5 +1,4 @@
1
1
  /.bundle/
2
- /.byebug_history
3
2
  /.yardoc
4
3
  /_yardoc/
5
4
  /coverage/
@@ -10,4 +9,7 @@
10
9
 
11
10
  # rspec failure tracking
12
11
  .rspec_status
13
- .env
12
+
13
+ # Cached rubocop config files
14
+ .rubocop-http*
15
+ vidar.yml
data/.rubocop.yml ADDED
@@ -0,0 +1,8 @@
1
+ require:
2
+ - rubocop-performance
3
+
4
+ inherit_from:
5
+ - https://raw.githubusercontent.com/RenoFi/rubocop/master/ruby.yml
6
+
7
+ AllCops:
8
+ TargetRubyVersion: 2.6
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.6.5
data/.travis.yml CHANGED
@@ -3,6 +3,8 @@ sudo: false
3
3
  language: ruby
4
4
  cache: bundler
5
5
  rvm:
6
- - 2.6
7
6
  - 2.5
8
- before_install: gem install bundler -v 2.0.1
7
+ - 2.6
8
+ before_install: gem install bundler -v 2.0.2
9
+ script:
10
+ - bundle exec rake
data/Gemfile CHANGED
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  source 'https://rubygems.org'
4
2
 
5
3
  # Specify your gem's dependencies in salesforce_streamer.gemspec
data/Gemfile.lock CHANGED
@@ -1,17 +1,18 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- salesforce_streamer (0.3.0)
4
+ salesforce_streamer (0.4.0)
5
5
  faye (= 0.8.9)
6
- restforce (~> 3.1.0)
6
+ restforce (~> 4.2)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
11
  addressable (2.7.0)
12
12
  public_suffix (>= 2.0.2, < 5.0)
13
+ ast (2.4.0)
13
14
  byebug (11.0.1)
14
- codecov (0.1.14)
15
+ codecov (0.1.16)
15
16
  json
16
17
  simplecov
17
18
  url
@@ -27,7 +28,7 @@ GEM
27
28
  em-socksify (0.3.2)
28
29
  eventmachine (>= 1.0.0.beta.4)
29
30
  eventmachine (1.2.7)
30
- faraday (0.17.0)
31
+ faraday (0.17.1)
31
32
  multipart-post (>= 1.2, < 3)
32
33
  faraday_middleware (0.13.1)
33
34
  faraday (>= 0.7.4, < 1.0)
@@ -43,34 +44,52 @@ GEM
43
44
  websocket-driver (>= 0.5.1)
44
45
  hashie (3.6.0)
45
46
  http_parser.rb (0.6.0)
47
+ jaro_winkler (1.5.4)
46
48
  json (2.2.0)
49
+ jwt (2.2.1)
47
50
  multipart-post (2.1.1)
51
+ parallel (1.19.1)
52
+ parser (2.6.5.0)
53
+ ast (~> 2.4.0)
48
54
  public_suffix (4.0.1)
49
55
  rack (2.0.7)
50
- rake (10.5.0)
51
- restforce (3.1.0)
56
+ rainbow (3.0.0)
57
+ rake (13.0.1)
58
+ restforce (4.2.0)
52
59
  faraday (>= 0.9.0, <= 1.0)
53
60
  faraday_middleware (>= 0.8.8, <= 1.0)
54
61
  hashie (>= 1.2.0, < 4.0)
55
62
  json (>= 1.7.5)
56
- rspec (3.8.0)
57
- rspec-core (~> 3.8.0)
58
- rspec-expectations (~> 3.8.0)
59
- rspec-mocks (~> 3.8.0)
60
- rspec-core (3.8.2)
61
- rspec-support (~> 3.8.0)
62
- rspec-expectations (3.8.4)
63
+ jwt (>= 1.5.6)
64
+ rspec (3.9.0)
65
+ rspec-core (~> 3.9.0)
66
+ rspec-expectations (~> 3.9.0)
67
+ rspec-mocks (~> 3.9.0)
68
+ rspec-core (3.9.0)
69
+ rspec-support (~> 3.9.0)
70
+ rspec-expectations (3.9.0)
63
71
  diff-lcs (>= 1.2.0, < 2.0)
64
- rspec-support (~> 3.8.0)
65
- rspec-mocks (3.8.1)
72
+ rspec-support (~> 3.9.0)
73
+ rspec-mocks (3.9.0)
66
74
  diff-lcs (>= 1.2.0, < 2.0)
67
- rspec-support (~> 3.8.0)
68
- rspec-support (3.8.2)
69
- simplecov (0.17.0)
75
+ rspec-support (~> 3.9.0)
76
+ rspec-support (3.9.0)
77
+ rubocop (0.76.0)
78
+ jaro_winkler (~> 1.5.1)
79
+ parallel (~> 1.10)
80
+ parser (>= 2.6)
81
+ rainbow (>= 2.2.2, < 4.0)
82
+ ruby-progressbar (~> 1.7)
83
+ unicode-display_width (>= 1.4.0, < 1.7)
84
+ rubocop-performance (1.5.1)
85
+ rubocop (>= 0.71.0)
86
+ ruby-progressbar (1.10.1)
87
+ simplecov (0.17.1)
70
88
  docile (~> 1.1)
71
89
  json (>= 1.8, < 3)
72
90
  simplecov-html (~> 0.10.0)
73
91
  simplecov-html (0.10.2)
92
+ unicode-display_width (1.6.0)
74
93
  url (0.3.2)
75
94
  websocket-driver (0.7.1)
76
95
  websocket-extensions (>= 0.1.0)
@@ -81,11 +100,12 @@ PLATFORMS
81
100
  ruby
82
101
 
83
102
  DEPENDENCIES
84
- bundler (~> 2.0)
85
- byebug (~> 11.0.1)
86
- codecov (~> 0.1.14)
87
- rake (~> 10.0)
88
- rspec (~> 3.0)
103
+ byebug
104
+ codecov
105
+ rake
106
+ rspec
107
+ rubocop
108
+ rubocop-performance
89
109
  salesforce_streamer!
90
110
 
91
111
  BUNDLED WITH
data/Rakefile CHANGED
@@ -1,8 +1,8 @@
1
- # frozen_string_literal: true
2
-
3
1
  require 'bundler/gem_tasks'
4
2
  require 'rspec/core/rake_task'
3
+ require 'rubocop/rake_task'
5
4
 
6
5
  RSpec::Core::RakeTask.new(:spec)
6
+ RuboCop::RakeTask.new
7
7
 
8
- task default: :spec
8
+ task default: %i[rubocop spec]
data/bin/console CHANGED
@@ -1,6 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
2
  require 'bundler/setup'
5
3
  require 'salesforce_streamer'
6
4
 
data/exe/streamer CHANGED
@@ -1,6 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
2
  require 'salesforce_streamer'
5
3
  require 'salesforce_streamer/cli'
6
4
 
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  # Original source code at
4
2
  # https://github.com/dwaite/cookiejar/blob/master/lib/cookiejar/cookie_validation.rb
5
3
  # Re-opening the CookieValidation module to rewrite the domains_match method to
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module SalesforceStreamer
4
2
  class CLI
5
3
  def initialize(argv)
@@ -21,8 +19,7 @@ module SalesforceStreamer
21
19
  @config.config_file = arg
22
20
  end
23
21
 
24
- o.on '-e', '--environment ENVIRONMENT',
25
- 'The environment to run the app on (default development)' do |arg|
22
+ o.on '-e', '--environment ENVIRONMENT', 'The environment to run the app on (default development)' do |arg|
26
23
  @config.environment = arg
27
24
  end
28
25
 
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module SalesforceStreamer
4
2
  # Manages server configuration.
5
3
  class Configuration
@@ -16,7 +14,7 @@ module SalesforceStreamer
16
14
  def initialize
17
15
  @environment = ENV['RACK_ENV'] || :development
18
16
  @logger = Logger.new(IO::NULL)
19
- @exception_adapter = proc { |exc| raise exc }
17
+ @exception_adapter = proc { |exc| fail(exc) }
20
18
  @persistence_adapter = RedisReplay.new
21
19
  @manage_topics = false
22
20
  @config_file = './config/streamer.yml'
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module SalesforceStreamer
4
2
  class MissingCLIFlagError < StandardError
5
3
  def initialize(flag)
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module SalesforceStreamer
4
2
  # SalesforceStreamer::Launcher is the entry point for starting the Restforce
5
3
  # Streaming API server. It is responsible for upserting each PushTopic and
@@ -27,10 +25,10 @@ module SalesforceStreamer
27
25
  end
28
26
 
29
27
  def require_application
30
- if Configuration.instance.require_path
31
- Log.debug 'Loading the require path'
32
- require Configuration.instance.require_path
33
- end
28
+ return unless Configuration.instance.require_path
29
+
30
+ Log.debug 'Loading the require path'
31
+ require Configuration.instance.require_path
34
32
  end
35
33
 
36
34
  def initialize_push_topics
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module SalesforceStreamer
4
2
  class MessageReceiver
5
3
  class << self
@@ -1,11 +1,9 @@
1
- # frozen_string_literal: true
2
-
3
1
  module SalesforceStreamer
4
2
  # Models the PushTopic object for both Restforce and Streamer
5
3
  class PushTopic
6
4
  attr_accessor :id
7
5
  attr_reader :name, :description, :notify_for_fields, :query,
8
- :handler, :handler_constant, :api_version
6
+ :handler, :handler_constant, :api_version
9
7
 
10
8
  def initialize(data:)
11
9
  @handler = data['handler']
@@ -19,8 +17,8 @@ module SalesforceStreamer
19
17
  end
20
18
 
21
19
  def replay
22
- @replay ||= (ReplayPersistence.retrieve(name) || @static_replay).tap do |replayId|
23
- Log.info "PushTopic name=#{name} starting at replayId=#{replayId}"
20
+ @replay ||= (ReplayPersistence.retrieve(name) || @static_replay).tap do |replay_id|
21
+ Log.info "PushTopic name=#{name} starting at replayId=#{replay_id}"
24
22
  end
25
23
  end
26
24
 
@@ -33,7 +31,7 @@ module SalesforceStreamer
33
31
  private
34
32
 
35
33
  def validate!
36
- raise(PushTopicNameTooLongError, @name) if @name.size > 25
34
+ fail(PushTopicNameTooLongError, @name) if @name.size > 25
37
35
 
38
36
  @handler_constant = Object.const_get(@handler)
39
37
  true
@@ -43,7 +41,7 @@ module SalesforceStreamer
43
41
  end
44
42
 
45
43
  def strip_spaces(str)
46
- raise(NilQueryError, @name) unless str
44
+ fail(NilQueryError, @name) unless str
47
45
 
48
46
  str.gsub(/\s+/, ' ')
49
47
  end
@@ -1,10 +1,8 @@
1
- # frozen_string_literal: true
2
-
3
1
  module SalesforceStreamer
4
2
  class RedisReplay
5
3
  class << self
6
4
  def redis_connection
7
- @redis_connection ||= Configuration.instance.redis_connection || raise(RedisConnectionError)
5
+ @redis_connection ||= Configuration.instance.redis_connection || fail(RedisConnectionError)
8
6
  end
9
7
 
10
8
  attr_writer :redis_connection
@@ -27,7 +25,7 @@ module SalesforceStreamer
27
25
  key = namespaced_key(key)
28
26
  value = Integer(value)
29
27
  connection { |c| c.setex key, SECONDS_TO_EXPIRE, value }
30
- rescue StandardError, TypeError => e
28
+ rescue StandardError => e
31
29
  Configuration.instance.exception_adapter.call e
32
30
  nil
33
31
  end
@@ -49,7 +47,7 @@ module SalesforceStreamer
49
47
  NAMESPACE + key.to_s
50
48
  end
51
49
 
52
- NAMESPACE = 'SalesforceStreamer:'
50
+ NAMESPACE = 'SalesforceStreamer:'.freeze
53
51
  SECONDS_TO_EXPIRE = 24 * 60 * 60 # 24 hours
54
52
  START = 0
55
53
  STOP = 0
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module SalesforceStreamer
4
2
  # Store values for a given key in a sorted sequence
5
3
  # Retrieves the highest value given a key
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module SalesforceStreamer
4
2
  class SalesforceClient
5
3
  def initialize(client: Restforce.new)
@@ -24,17 +22,17 @@ module SalesforceStreamer
24
22
 
25
23
  # Returns true or raises an exception if the upsert fails
26
24
  def upsert_push_topic(push_topic)
27
- @client.upsert!('PushTopic', :Id,
28
- 'Id' => push_topic.id,
29
- 'Name' => push_topic.name,
30
- 'ApiVersion' => push_topic.api_version,
31
- 'Description' => push_topic.description,
32
- 'NotifyForFields' => push_topic.notify_for_fields,
33
- 'Query' => push_topic.query)
25
+ @client.upsert!(
26
+ 'PushTopic', :Id,
27
+ 'Id' => push_topic.id,
28
+ 'Name' => push_topic.name,
29
+ 'ApiVersion' => push_topic.api_version,
30
+ 'Description' => push_topic.description,
31
+ 'NotifyForFields' => push_topic.notify_for_fields,
32
+ 'Query' => push_topic.query
33
+ )
34
34
  end
35
35
 
36
- private
37
-
38
36
  QUERY = <<~SOQL.chomp.freeze
39
37
  SELECT Id, Name, ApiVersion, Description, NotifyForFields, Query, isActive
40
38
  FROM PushTopic
@@ -1,16 +1,12 @@
1
- # frozen_string_literal: true
2
-
3
1
  module SalesforceStreamer
4
2
  class Server
5
3
  attr_writer :push_topics
6
4
 
7
5
  def initialize(push_topics: [])
8
6
  @push_topics = push_topics
9
- @client = Restforce.new
10
7
  end
11
8
 
12
9
  def run
13
- @client.authenticate!
14
10
  Log.info 'Starting Server'
15
11
  catch_signals
16
12
  start_em
@@ -27,10 +23,14 @@ module SalesforceStreamer
27
23
  end
28
24
  end
29
25
 
26
+ def client
27
+ Restforce.new.tap(&:authenticate!)
28
+ end
29
+
30
30
  def start_em
31
31
  EM.run do
32
32
  @push_topics.map do |topic|
33
- @client.subscribe topic.name, replay: topic.replay.to_i do |msg|
33
+ client.subscribe topic.name, replay: topic.replay.to_i do |msg|
34
34
  Log.info "Message received from topic #{topic.name}"
35
35
  MessageReceiver.call topic.name, topic.handler_constant, msg
36
36
  end
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module SalesforceStreamer
4
2
  class TopicManager
5
3
  attr_reader :push_topics
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  module SalesforceStreamer
4
- VERSION = '0.3.0'
2
+ VERSION = '0.4.0'.freeze
5
3
  end
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  require 'faye'
4
2
  require 'logger'
5
3
  require 'optparse'
@@ -1,5 +1,3 @@
1
- # frozen_string_literal: true
2
-
3
1
  lib = File.expand_path('lib', __dir__)
4
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
3
  require 'salesforce_streamer/version'
@@ -10,24 +8,13 @@ Gem::Specification.new do |spec|
10
8
  spec.authors = ['Scott Serok']
11
9
  spec.email = ['scott@renofi.com']
12
10
 
13
- spec.summary = 'A wrapper around the Restforce Streaming API.'
14
- spec.description = 'A wrapper around the Restforce Streaming API.'
11
+ spec.summary = 'A wrapper around the Restforce Streaming API with a built-in PushTopic manager.'
15
12
  spec.homepage = 'https://github.com/renofi/salesforce_streamer'
16
13
  spec.license = 'MIT'
17
14
 
18
- # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
19
- # to allow pushing to a single host or delete this section to allow pushing to any host.
20
- if spec.respond_to?(:metadata)
21
- spec.metadata['homepage_uri'] = spec.homepage
22
- spec.metadata['source_code_uri'] = spec.homepage
23
- spec.metadata['changelog_uri'] = spec.homepage
24
- else
25
- raise 'RubyGems 2.0 or newer is required to protect against ' \
26
- 'public gem pushes.'
27
- end
15
+ spec.metadata['homepage_uri'] = spec.homepage
16
+ spec.metadata['source_code_uri'] = spec.homepage
28
17
 
29
- # Specify which files should be added to the gem when it is released.
30
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
31
18
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
32
19
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
33
20
  end
@@ -35,11 +22,13 @@ Gem::Specification.new do |spec|
35
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
36
23
  spec.require_paths = ['lib']
37
24
 
38
- spec.add_development_dependency 'bundler', '~> 2.0'
39
- spec.add_development_dependency 'byebug', '~> 11.0.1'
40
- spec.add_development_dependency 'codecov', '~> 0.1.14'
41
- spec.add_development_dependency 'rake', '~> 10.0'
42
- spec.add_development_dependency 'rspec', '~> 3.0'
43
25
  spec.add_dependency 'faye', '0.8.9'
44
- spec.add_dependency 'restforce', '~> 3.1.0'
26
+ spec.add_dependency 'restforce', '~> 4.2'
27
+
28
+ spec.add_development_dependency 'byebug'
29
+ spec.add_development_dependency 'codecov'
30
+ spec.add_development_dependency 'rake'
31
+ spec.add_development_dependency 'rspec'
32
+ spec.add_development_dependency 'rubocop'
33
+ spec.add_development_dependency 'rubocop-performance'
45
34
  end
metadata CHANGED
@@ -1,114 +1,128 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: salesforce_streamer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Serok
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-29 00:00:00.000000000 Z
11
+ date: 2019-12-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ name: faye
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 0.8.9
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '='
25
+ - !ruby/object:Gem::Version
26
+ version: 0.8.9
27
+ - !ruby/object:Gem::Dependency
28
+ name: restforce
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
31
  - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: '2.0'
20
- type: :development
33
+ version: '4.2'
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: '2.0'
40
+ version: '4.2'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: byebug
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - "~>"
45
+ - - ">="
32
46
  - !ruby/object:Gem::Version
33
- version: 11.0.1
47
+ version: '0'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - "~>"
52
+ - - ">="
39
53
  - !ruby/object:Gem::Version
40
- version: 11.0.1
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: codecov
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - "~>"
59
+ - - ">="
46
60
  - !ruby/object:Gem::Version
47
- version: 0.1.14
61
+ version: '0'
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - "~>"
66
+ - - ">="
53
67
  - !ruby/object:Gem::Version
54
- version: 0.1.14
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rake
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - "~>"
73
+ - - ">="
60
74
  - !ruby/object:Gem::Version
61
- version: '10.0'
75
+ version: '0'
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - "~>"
80
+ - - ">="
67
81
  - !ruby/object:Gem::Version
68
- version: '10.0'
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rspec
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - "~>"
87
+ - - ">="
74
88
  - !ruby/object:Gem::Version
75
- version: '3.0'
89
+ version: '0'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - "~>"
94
+ - - ">="
81
95
  - !ruby/object:Gem::Version
82
- version: '3.0'
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
- name: faye
98
+ name: rubocop
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - '='
101
+ - - ">="
88
102
  - !ruby/object:Gem::Version
89
- version: 0.8.9
90
- type: :runtime
103
+ version: '0'
104
+ type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - '='
108
+ - - ">="
95
109
  - !ruby/object:Gem::Version
96
- version: 0.8.9
110
+ version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
- name: restforce
112
+ name: rubocop-performance
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - "~>"
115
+ - - ">="
102
116
  - !ruby/object:Gem::Version
103
- version: 3.1.0
104
- type: :runtime
117
+ version: '0'
118
+ type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
- - - "~>"
122
+ - - ">="
109
123
  - !ruby/object:Gem::Version
110
- version: 3.1.0
111
- description: A wrapper around the Restforce Streaming API.
124
+ version: '0'
125
+ description:
112
126
  email:
113
127
  - scott@renofi.com
114
128
  executables:
@@ -118,6 +132,8 @@ extra_rdoc_files: []
118
132
  files:
119
133
  - ".gitignore"
120
134
  - ".rspec"
135
+ - ".rubocop.yml"
136
+ - ".ruby-version"
121
137
  - ".travis.yml"
122
138
  - CODE_OF_CONDUCT.md
123
139
  - Gemfile
@@ -150,7 +166,6 @@ licenses:
150
166
  metadata:
151
167
  homepage_uri: https://github.com/renofi/salesforce_streamer
152
168
  source_code_uri: https://github.com/renofi/salesforce_streamer
153
- changelog_uri: https://github.com/renofi/salesforce_streamer
154
169
  post_install_message:
155
170
  rdoc_options: []
156
171
  require_paths:
@@ -169,5 +184,5 @@ requirements: []
169
184
  rubygems_version: 3.0.6
170
185
  signing_key:
171
186
  specification_version: 4
172
- summary: A wrapper around the Restforce Streaming API.
187
+ summary: A wrapper around the Restforce Streaming API with a built-in PushTopic manager.
173
188
  test_files: []