housecanary-ruby 0.1.2 → 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
- SHA1:
3
- metadata.gz: 4d094c2180faa25e4da7274b82a9b2ead704c6b7
4
- data.tar.gz: d1acb885b83cd541e98749d8e7bdb8a984ef760b
2
+ SHA256:
3
+ metadata.gz: fbef5afbec2dae426a3bef49f0507b2ed90b58b6b61eaced622b77b44435fd44
4
+ data.tar.gz: e926db8a8327212d7016eef7598b635992898814339f369666d7d192752ef3ca
5
5
  SHA512:
6
- metadata.gz: 14f22913e9a6f9f35e94665710bc80c8b39330d83682be3738e79a2b0c8a5bf62b05c583904a1ce2d652782eee23029fbd2d71517eeeb450808fa5a01d724ad2
7
- data.tar.gz: 866d8f0f192e2a414a3b93640354b5376808707fd3d39a9ba6b472e1044437dc6b0565d884dd0d0f52edf4e75ac8725115ed09226a6085e5f8c790040daae3c3
6
+ metadata.gz: 1cf54c7e3a01abc7eb35442ecde21749d36e1cbb0c31617645f11c2779ded204516808f64d84e10b9802b5da533a6cf122ec1d39e6a8b7aaed172e7342c9b34c
7
+ data.tar.gz: 3c582fdfd6ed1d196f9c782f527f8b3d657e0b1ad0bd16bc6d8a6060dbccd58e9988f342227d5867a7f14d46b0f43c95625ad4b58c611ed53182e90ca491479e
@@ -0,0 +1,21 @@
1
+ name: RuboCop
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+
9
+ jobs:
10
+ rubocop:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v3
14
+ - uses: ruby/setup-ruby@v1
15
+ with:
16
+ ruby-version: 2.7
17
+ - name: Lint Ruby code with RuboCop
18
+ run: |
19
+ gem install bundler
20
+ bundle install --gemfile gemfiles/rubocop.gemfile --jobs 4 --retry 3
21
+ bundle exec --gemfile gemfiles/rubocop.gemfile rubocop
data/.gitignore CHANGED
@@ -7,3 +7,5 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+
11
+ *.gem
data/.irbrc CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  begin
2
4
  require 'pry'
3
5
  Pry.start
data/.rubocop.yml CHANGED
@@ -1,10 +1,6 @@
1
- Style/AccessModifierIndentation:
2
- EnforcedStyle: indent
3
- SupportedStyles:
4
- - outdent
5
- - indent
1
+ inherit_gem:
2
+ jetrockets-standard: config/gems.yml
6
3
 
7
- Metrics/MethodLength:
8
- Max: 25
9
- Metrics/LineLength:
10
- Max: 120
4
+ AllCops:
5
+ TargetRubyVersion: 2.7
6
+ NewCops: enable
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.4.1
1
+ 2.7.6
data/Gemfile CHANGED
@@ -1,4 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in housecanary-ruby.gemspec
4
6
  gemspec
7
+
8
+ eval_gemfile 'gemfiles/rubocop.gemfile'
data/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rspec/core/rake_task'
3
5
 
4
6
  RSpec::Core::RakeTask.new(:spec)
5
7
 
6
- task :default => :spec
8
+ task default: :spec
data/bin/console CHANGED
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require "bundler/setup"
4
- require "housecanary"
4
+ require 'bundler/setup'
5
+ require 'housecanary'
5
6
 
6
7
  # You can add fixtures and/or initialization code here to make experimenting
7
8
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +11,5 @@ require "housecanary"
10
11
  # require "pry"
11
12
  # Pry.start
12
13
 
13
- require "irb"
14
+ require 'irb'
14
15
  IRB.start
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org' do
4
+ gem 'jetrockets-standard', '~> 1.0'
5
+ end
@@ -1,36 +1,38 @@
1
+ # frozen_string_literal: true
2
+
1
3
  lib = File.expand_path('lib', __dir__)
2
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
5
  require 'housecanary/version'
4
6
 
5
7
  Gem::Specification.new do |spec|
6
- spec.name = 'housecanary-ruby'
7
- spec.version = Housecanary::VERSION
8
- spec.authors = ['Ilia Kriachkov']
9
- spec.email = ['ilia.kriachkov@jetrockets.ru']
8
+ spec.name = 'housecanary-ruby'
9
+ spec.version = Housecanary::VERSION
10
+ spec.authors = ['Ilia Kriachkov']
11
+ spec.email = ['ilia.kriachkov@jetrockets.ru']
10
12
 
11
- spec.summary = %q(Ruby wrapper for the HouseCanary Data & Analytics API.)
12
- spec.description = %q(Ruby wrapper for the HouseCanary Data & Analytics API. https://www.housecanary.com/real-estate-data-api)
13
- spec.homepage = %q(https://github.com/jetrockets/housecanary-ruby)
14
- spec.license = 'MIT'
13
+ spec.summary = 'Ruby wrapper for the HouseCanary Data & Analytics API.'
14
+ spec.description = 'Ruby wrapper for the HouseCanary Data & Analytics API. https://www.housecanary.com/real-estate-data-api'
15
+ spec.homepage = 'https://github.com/jetrockets/housecanary-ruby'
16
+ spec.license = 'MIT'
15
17
 
16
- spec.bindir = 'bin'
17
- spec.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
18
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ spec.bindir = 'bin'
19
+ spec.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
20
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
19
21
  spec.require_paths = ['lib']
20
- spec.required_ruby_version = '>= 2.3'
22
+ spec.required_ruby_version = '>= 2.7'
21
23
 
22
24
  # a b c d e f g h i j k l m n o p q r s t u v w x y z
23
25
  spec.add_dependency 'dry-auto_inject'
24
26
  spec.add_dependency 'dry-container'
25
27
  spec.add_dependency 'dry-initializer'
26
28
  spec.add_dependency 'dry-types'
27
- spec.add_dependency 'http', '~> 3.0'
29
+ spec.add_dependency 'http', '~> 5.0.1'
28
30
 
29
- spec.add_development_dependency 'bundler', '~> 1.13'
31
+ spec.add_development_dependency 'bundler', '>= 2.0'
30
32
  # spec.add_development_dependency 'factory_bot'
31
33
  # spec.add_development_dependency 'faker', '~> 1.9'
32
34
  spec.add_development_dependency 'pry', '~> 0.11.3'
33
- spec.add_development_dependency 'rake', '~> 10.0'
35
+ spec.add_development_dependency 'rake', '~> 13.0'
34
36
  spec.add_development_dependency 'rspec', '~> 3.2'
35
37
  spec.add_development_dependency 'simplecov', '>= 0.6.2'
36
38
  spec.add_development_dependency 'webmock', '~> 3.4'
@@ -12,8 +12,8 @@ module Housecanary
12
12
  SALES_HISTORY_PATH = 'property/sales_history'
13
13
 
14
14
  def sales_history(params = {})
15
- if response = perform_response(:get, SALES_HISTORY_PATH, params)
16
- SalesHistory.new(response&.first&.fetch("property/sales_history".to_sym, nil))
15
+ if (response = perform_response(:get, SALES_HISTORY_PATH, params))
16
+ SalesHistory.new(response&.first&.fetch(:'property/sales_history', nil))
17
17
  end
18
18
  end
19
19
 
@@ -24,8 +24,8 @@ module Housecanary
24
24
  option :record_page, optional: true
25
25
 
26
26
  def self.call(*args)
27
- self.new(*args)
27
+ new(*args)
28
28
  end
29
29
  end
30
30
  end
31
- end
31
+ end
@@ -11,7 +11,7 @@ module Housecanary
11
11
  extend Dry::Initializer
12
12
  option :api_code_description, optional: true
13
13
  option :api_code, optional: true
14
- option :result, type: Dry::Types['coercible.array'].of(Sale)
14
+ option :result, type: Dry::Types['coercible.array'].of(Dry.Types.Constructor(Sale))
15
15
  end
16
16
  end
17
17
  end
@@ -4,7 +4,7 @@ require 'dry-initializer'
4
4
  require 'http'
5
5
 
6
6
  module Housecanary
7
- class Connection #:nodoc:
7
+ class Connection # :nodoc:
8
8
  extend Dry::Initializer
9
9
  BASE_URL = 'https://api.housecanary.com/v2/'
10
10
 
@@ -19,7 +19,7 @@ module Housecanary
19
19
  ctx = OpenSSL::SSL::SSLContext.new
20
20
  ctx.verify_mode = OpenSSL::SSL::VERIFY_NONE
21
21
 
22
- HTTP.basic_auth(user: api_key, pass: api_secret).get(url(path), { ssl_context: ctx }.merge(params))
22
+ HTTP.basic_auth(user: api_key, pass: api_secret).get(url(path), {ssl_context: ctx}.merge(params))
23
23
  end
24
24
 
25
25
  private
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Housecanary
4
- class Error < StandardError #:nodoc:
4
+ class Error < StandardError # :nodoc:
5
5
  attr_reader :code
6
6
 
7
7
  NoContent = Class.new(self)
@@ -4,7 +4,7 @@ require 'housecanary/error'
4
4
  require 'housecanary/utils'
5
5
 
6
6
  module Housecanary
7
- class ResponseParser #:nodoc:
7
+ class ResponseParser # :nodoc:
8
8
  class << self
9
9
  def perform(response)
10
10
  response_body = parse_body(response)
@@ -1,9 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Housecanary
4
- module Utils #:nodoc:
4
+ module Utils # :nodoc:
5
5
  def deep_symbolize_keys(hash)
6
- deep_transform_keys(hash) { |key| key.to_sym rescue key }
6
+ deep_transform_keys(hash) { |key|
7
+ begin
8
+ key.to_sym
9
+ rescue
10
+ key
11
+ end
12
+ }
7
13
  end
8
14
  module_function :deep_symbolize_keys
9
15
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Housecanary
4
- VERSION = '0.1.2'
4
+ VERSION = '0.2.0'
5
5
  end
data/lib/housecanary.rb CHANGED
@@ -8,7 +8,7 @@ require 'housecanary/version'
8
8
  require 'housecanary/connection'
9
9
  require 'housecanary/response_parser'
10
10
 
11
- module Housecanary #:nodoc:
11
+ module Housecanary # :nodoc:
12
12
  @container = ::Dry::Container.new
13
13
  AutoInject = ::Dry::AutoInject(@container)
14
14
 
@@ -33,7 +33,7 @@ module Housecanary #:nodoc:
33
33
  end
34
34
 
35
35
  def register!
36
- connection = ::Housecanary::Connection.new(configuration.to_h)
36
+ connection = ::Housecanary::Connection.new(**configuration.to_h)
37
37
  parser_class = ::Housecanary::ResponseParser
38
38
  container.register :connection, -> { connection }
39
39
  container.register :response_parser, -> { parser_class }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: housecanary-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ilia Kriachkov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-19 00:00:00.000000000 Z
11
+ date: 2023-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-auto_inject
@@ -72,28 +72,28 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '3.0'
75
+ version: 5.0.1
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '3.0'
82
+ version: 5.0.1
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: bundler
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: '1.13'
89
+ version: '2.0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: '1.13'
96
+ version: '2.0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: pry
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '10.0'
117
+ version: '13.0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '10.0'
124
+ version: '13.0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rspec
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -173,6 +173,7 @@ executables:
173
173
  extensions: []
174
174
  extra_rdoc_files: []
175
175
  files:
176
+ - ".github/workflows/rubocop.yml"
176
177
  - ".gitignore"
177
178
  - ".irbrc"
178
179
  - ".rspec"
@@ -185,6 +186,7 @@ files:
185
186
  - Rakefile
186
187
  - bin/console
187
188
  - bin/setup
189
+ - gemfiles/rubocop.gemfile
188
190
  - housecanary-ruby.gemspec
189
191
  - lib/housecanary.rb
190
192
  - lib/housecanary/api/helpers.rb
@@ -208,15 +210,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
208
210
  requirements:
209
211
  - - ">="
210
212
  - !ruby/object:Gem::Version
211
- version: '2.3'
213
+ version: '2.7'
212
214
  required_rubygems_version: !ruby/object:Gem::Requirement
213
215
  requirements:
214
216
  - - ">="
215
217
  - !ruby/object:Gem::Version
216
218
  version: '0'
217
219
  requirements: []
218
- rubyforge_project:
219
- rubygems_version: 2.6.11
220
+ rubygems_version: 3.1.6
220
221
  signing_key:
221
222
  specification_version: 4
222
223
  summary: Ruby wrapper for the HouseCanary Data & Analytics API.