guardian_searcher 0.1.1 → 0.1.2

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: 102bea1ce30d48d194d5a647b02e19056a5f050b183e72a56c092aff8a99b892
4
- data.tar.gz: 865d25653fdec0b4d3ac1ccb71356397605bb4293ab6bdcb821090b571b2d85e
3
+ metadata.gz: bbf80793abdcb30ddb0acb6ff62cc97bf5d2e230881d2057e391f61c3490fa4e
4
+ data.tar.gz: c6df4f2b8cd92f9ba2ae7fa29ae57eb3e4ad3d2a7637176e0c1a8ec53b7f654e
5
5
  SHA512:
6
- metadata.gz: 1aaa54fb01c01802fd8e4f71fc922ef517631edeba4978ee8431613fdaf46115b92bdedb76917142bf3bafe8215c8e38d9c9fe84c945471435c501f0f2b938c4
7
- data.tar.gz: 5df31cf5ebd052c9a2376261a410f2f2298577c4986663832114ccb7f854f7ba50a1063415402972f2e0a6826a82c04ea1ec7606199a417aed01338d00b62032
6
+ metadata.gz: 6d5779ce66ac3507594a07a52db236e1c581729e8b2b05d27ff11287ef8e9dce7eb69b54a9f80298a0fc2d096d3b952f1eb8fc64d3b389713fbedfd0a8e70720
7
+ data.tar.gz: de83958f007a38e71bfe15d4637aa645feb2d88e370582cef5de3c4fc67a9daf720fae26bd4062e7a32ce7c6a5921aa42d8d5b57be8af8f51514ec2cd8e3fda9
data/.gitignore CHANGED
@@ -6,7 +6,9 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
-
9
+ # Ignore built gemfiles
10
+ *.gem
10
11
  # rspec failure tracking
11
12
  Gemfile.lock
12
13
  .rspec_status
14
+ .DS_Store
data/Guardfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # A sample Guardfile
2
4
  # More info at https://github.com/guard/guard#readme
3
5
 
@@ -14,7 +16,7 @@
14
16
  #
15
17
  # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
16
18
 
17
- # Note: The cmd option is now required due to the increasing number of ways
19
+ # NOTE: The cmd option is now required due to the increasing number of ways
18
20
  # rspec may be run, below are examples of the most common uses.
19
21
  # * bundler: 'bundle exec rspec'
20
22
  # * bundler binstubs: 'bin/rspec'
@@ -40,7 +42,7 @@ guard :rspec, cmd: "bundle exec rspec" do
40
42
  dsl.watch_spec_files_for(ruby.lib_files)
41
43
 
42
44
  # Rails files
43
- rails = dsl.rails(view_extensions: %w(erb haml slim))
45
+ rails = dsl.rails(view_extensions: %w[erb haml slim])
44
46
  dsl.watch_spec_files_for(rails.app_files)
45
47
  dsl.watch_spec_files_for(rails.views)
46
48
 
@@ -69,12 +71,12 @@ guard :rspec, cmd: "bundle exec rspec" do
69
71
  end
70
72
 
71
73
  guard :bundler do
72
- require 'guard/bundler'
73
- require 'guard/bundler/verify'
74
+ require "guard/bundler"
75
+ require "guard/bundler/verify"
74
76
  helper = Guard::Bundler::Verify.new
75
77
 
76
- files = ['Gemfile']
77
- files += Dir['*.gemspec'] if files.any? { |f| helper.uses_gemspec?(f) }
78
+ files = ["Gemfile"]
79
+ files += Dir["*.gemspec"] if files.any? { |f| helper.uses_gemspec?(f) }
78
80
 
79
81
  # Assume files are symlinked from somewhere
80
82
  files.each { |file| watch(helper.real_path(file)) }
data/README.md CHANGED
@@ -26,7 +26,36 @@ Or install it yourself as:
26
26
 
27
27
  ## Usage
28
28
 
29
- TODO: Write usage instructions here
29
+ ```ruby
30
+ # To include the gem in your code
31
+ require 'guardian_searcher'
32
+
33
+ # To initialise the gem
34
+ searcher = GuardianSearcher::Search.new(api_key: <your-api-key>)
35
+
36
+ # Simplest usage
37
+ results = searcher.search('your keyword')
38
+ ```
39
+
40
+ There are some supported option that will be mapped to the api query and these are in the Options
41
+ class
42
+
43
+ ```ruby
44
+ {
45
+ from_date: "from-date",
46
+ to_date: "to-date",
47
+ page_size: "page-size",
48
+ page: "page"
49
+ }
50
+ ```
51
+
52
+ In this way your search could become something like
53
+
54
+ ```ruby
55
+ results = searcher.search('your keyword', { from_date: '2022-10-01', page_size: 10 })
56
+ ```
57
+
58
+ If you add something unsupported it will throw an `OptionsNotSupportedError`
30
59
 
31
60
  ## Development
32
61
 
@@ -30,10 +30,11 @@ Gem::Specification.new do |spec|
30
30
  # spec.add_dependency "example-gem", "~> 1.0"
31
31
  spec.add_dependency "faraday", "~> 2.2"
32
32
 
33
- spec.add_development_dependency 'vcr', "~> 6.1"
34
- spec.add_development_dependency 'guard', "~> 2.18"
35
- spec.add_development_dependency 'guard-bundler', "~> 3.0"
36
- spec.add_development_dependency 'guard-rspec', "~> 4.7"
33
+ spec.add_development_dependency "guard", "~> 2.18"
34
+ spec.add_development_dependency "guard-bundler", "~> 3.0"
35
+ spec.add_development_dependency "guard-rspec", "~> 4.7"
36
+ spec.add_development_dependency "simplecov", "~> 0.21"
37
+ spec.add_development_dependency "vcr", "~> 6.1"
37
38
  # For more information and examples about making a new gem, checkout our
38
39
  # guide at: https://bundler.io/guides/creating_gem.html
39
40
  end
@@ -3,6 +3,7 @@
3
3
  module GuardianSearcher
4
4
  class Base
5
5
  include Faraday
6
+
6
7
  attr_reader :api_key
7
8
  attr_accessor :base_uri
8
9
 
@@ -31,12 +32,7 @@ module GuardianSearcher
31
32
  private
32
33
 
33
34
  def build_options(options)
34
- return {} if options.empty?
35
-
36
- opt = ""
37
- options.each do |key, value|
38
- opt += "&#{key}=#{value}"
39
- end
35
+ Options.new(options).build_options
40
36
  end
41
37
  end
42
38
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module GuardianSearcher
2
4
  class OptionsNotHashError < StandardError; end
3
5
  class OptionsNotSupportedError < StandardError; end
@@ -6,13 +8,38 @@ module GuardianSearcher
6
8
  private attr_accessor :options
7
9
 
8
10
  def method_missing(method_name, *args, &blk)
9
- return self.options.[](method_name, &blk) if @options.has_key?(method_name)
11
+ return options.[](method_name, &blk) if @options.key?(method_name)
12
+
10
13
  super(method_name, *args, &blk)
11
14
  end
12
-
15
+
13
16
  def initialize(options)
14
17
  raise OptionsNotHashError unless options.is_a?(Hash)
18
+
15
19
  @options = options
16
20
  end
21
+
22
+ def build_options
23
+ return {} if options.empty?
24
+
25
+ opt = ""
26
+ options.each do |key, value|
27
+ valid_option?(key)
28
+ opt += "&#{map_option(key)}=#{value}"
29
+ end
30
+ end
31
+
32
+ def valid_option?(option)
33
+ raise OptionsNotSupportedError unless %i[from_date to_date page_size page].include?(option)
34
+ end
35
+
36
+ def map_option(key)
37
+ {
38
+ from_date: "from-date",
39
+ to_date: "to-date",
40
+ page_size: "page-size",
41
+ page: "page"
42
+ }[key]
43
+ end
17
44
  end
18
45
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GuardianSearcher
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.2"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guardian_searcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alain Mauri
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-10-01 00:00:00.000000000 Z
11
+ date: 2022-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -25,61 +25,75 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.2'
27
27
  - !ruby/object:Gem::Dependency
28
- name: vcr
28
+ name: guard
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '6.1'
33
+ version: '2.18'
34
34
  type: :development
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: '6.1'
40
+ version: '2.18'
41
41
  - !ruby/object:Gem::Dependency
42
- name: guard
42
+ name: guard-bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '2.18'
47
+ version: '3.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '2.18'
54
+ version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: guard-bundler
56
+ name: guard-rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '3.0'
61
+ version: '4.7'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '3.0'
68
+ version: '4.7'
69
69
  - !ruby/object:Gem::Dependency
70
- name: guard-rspec
70
+ name: simplecov
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '4.7'
75
+ version: '0.21'
76
76
  type: :development
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: '4.7'
82
+ version: '0.21'
83
+ - !ruby/object:Gem::Dependency
84
+ name: vcr
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '6.1'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '6.1'
83
97
  description:
84
98
  email: wildeng@hotmail.com
85
99
  executables: []