google_maps_embed 0.1.2 → 0.1.4

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: 9f0630cf61a66a9f1718b08928a9143f3796597f992c6059eab890424a6f2195
4
- data.tar.gz: 5f0a55503fb3ab630c8085270d97421d71af529b80fffdd7be7703109d00eaaf
3
+ metadata.gz: 3b5e18053ba62e3f0e84967f5b138f017d7c8b00db0976cc8710989c025b4776
4
+ data.tar.gz: 7b0f6435bd89ca1e99b831937da4d2571133673a24fe16fcfca2554c91c3a71b
5
5
  SHA512:
6
- metadata.gz: 1cafa3586abf3b924af47ea22e2dd92fc263cb8b38965b57a3e2da5e7d0601fdbae62e7f5a86dcc39f1cc64250d95fcda1f2b8c329fe8266429106f818e9c28a
7
- data.tar.gz: fb19398e00f7b8c7a053281f9af2fbf15d62414a7a3fe7e483c95908e706978a83bb18a2818e8e7fa4c5d147cd69859e5f1184d36869933834c62d3af0b02348
6
+ metadata.gz: e5f5c1655b3fa9b48cb4cbf582d2d2f27bc561144532bccf07cf2730c688365defbd6029f4bcaa8e62673de2c46287c4bf3d75fa499ff91c69abea3d827ce106
7
+ data.tar.gz: 681801f77367e0d7a95d70a114828447fc18cd3b2649cf98e29c8ffe8bb82d1c41e9eca7997fc08e32e16c0d8b39cd099ce820eeac3149e9f232fdc5a4029c33
data/.rubocop.yml CHANGED
@@ -11,6 +11,9 @@ Style/StringLiterals:
11
11
  Style/StringLiteralsInInterpolation:
12
12
  EnforcedStyle: double_quotes
13
13
 
14
+ Style/GuardClause:
15
+ Enabled: false
16
+
14
17
  Metrics/MethodLength:
15
18
  Enabled: false
16
19
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- GoogleMapsEmbedUrl.configure do |config|
3
+ GoogleMapsEmbed.configure do |config|
4
4
  config.api_key = "YOUR_GOOGLE_MAPS_API_KEY"
5
5
 
6
6
  # Optional, but recommended for generating static maps.
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ # # frozen_string_literal: true
4
+
5
+ module GoogleMapsEmbed
6
+ module IframeGenerator
7
+ def self.generate(src_url, options = {})
8
+ ["<iframe",
9
+ "width=\"#{options[:width] || "450"}\"",
10
+ "height=\"#{options[:height] || "250"}\"",
11
+ "frameborder=\"#{options[:frameborder] || "0"}\"",
12
+ "style=\"#{options[:style] || "border:0"}\"",
13
+ "loading=\"#{options[:loading] || "lazy"}\"",
14
+ "referrerpolicy=\"#{options[:referrer_policy] || "no-referrer-when-downgrade"}\"",
15
+ "src=\"#{src_url}\"",
16
+ "allowfullscreen",
17
+ ">",
18
+ "</iframe>"].join(" ")
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "uri"
4
+
5
+ class PlaceMap
6
+ BASE_URL = "https://www.google.com/maps/embed/v1/place"
7
+
8
+ def self.create(options = {})
9
+ unless options.key?(:q)
10
+ raise ArgumentError "Maps API for a place requires a 'q' parameter for a map marker location"
11
+ end
12
+
13
+ api_key = [options[:api_key], GoogleMapsEmbed.configuration.dynamic_key,
14
+ GoogleMapsEmbed.configuration.api_key].compact.first
15
+
16
+ exclude_keys = %i[api_key width height frameborder style loading referrer_policy]
17
+
18
+ filtered_options = options.reject { |key, _| exclude_keys.include?(key) }
19
+ extra_url = filtered_options.map do |key, value|
20
+ "#{key}=#{URI.encode_www_form_component(value)}"
21
+ end.join("&").gsub("%2C", ",")
22
+
23
+ src_url = "#{BASE_URL}?key=#{api_key}&#{extra_url}"
24
+
25
+ GoogleMapsEmbed::IframeGenerator.generate(src_url, options)
26
+ end
27
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "google_maps_embed"
4
+
5
+ module GoogleMapsEmbed
6
+ class Railtie < Rails::Railtie
7
+ initializer "google_maps_embed.view_helpers" do
8
+ ActiveSupport.on_load(:action_view) do
9
+ include GoogleMapsEmbed::ViewHelpers
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GoogleMapsEmbed
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.4"
5
5
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GoogleMapsEmbed
4
+ module ViewHelpers
5
+ def google_maps_embed(type: :static, **options)
6
+ GoogleMapsEmbed.map(type: type, **options)
7
+ end
8
+ end
9
+ end
@@ -3,6 +3,10 @@
3
3
  require_relative "google_maps_embed/version"
4
4
  require_relative "google_maps_embed/configuration"
5
5
  require_relative "google_maps_embed/static_map"
6
+ require_relative "google_maps_embed/place_map"
7
+ require_relative "google_maps_embed/iframe_generator"
8
+ require_relative "google_maps_embed/view_helpers"
9
+ require "google_maps_embed/railtie" if defined?(Rails)
6
10
 
7
11
  module GoogleMapsEmbed
8
12
  class Error < StandardError; end
@@ -16,12 +20,18 @@ module GoogleMapsEmbed
16
20
  yield(configuration)
17
21
  end
18
22
 
19
- def self.url(type: :static, **options)
23
+ def self.map(type: :static, **options)
20
24
  case type
21
25
  when :static
22
26
  StaticMap.url(options)
27
+ when :place
28
+ PlaceMap.create(options)
23
29
  else
24
30
  raise ArgumentError, "Unknown map type: #{type}"
25
31
  end
26
32
  end
27
33
  end
34
+
35
+ def google_maps_embed(type: :static, **options)
36
+ GoogleMapsEmbed.map(type: type, **options)
37
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google_maps_embed
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Austin Nazworth
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-07-12 00:00:00.000000000 Z
11
+ date: 2024-07-15 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: |2
14
14
  Google_Maps_Embed is a versatile Ruby gem designed to simplify the generation of Google Maps URLs
@@ -38,9 +38,13 @@ files:
38
38
  - lib/generators/google_maps_embed/install/templates/google_maps_embed.rb
39
39
  - lib/google_maps_embed.rb
40
40
  - lib/google_maps_embed/configuration.rb
41
+ - lib/google_maps_embed/iframe_generator.rb
42
+ - lib/google_maps_embed/place_map.rb
43
+ - lib/google_maps_embed/railtie.rb
41
44
  - lib/google_maps_embed/static_map.rb
42
45
  - lib/google_maps_embed/url_signer.rb
43
46
  - lib/google_maps_embed/version.rb
47
+ - lib/google_maps_embed/view_helpers.rb
44
48
  - sig/google_maps_embed.rbs
45
49
  homepage: https://github.com/anazworth/google_maps_embed
46
50
  licenses: