pco-url 1.2.0 → 1.3.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 +4 -4
- data/README.md +15 -0
- data/lib/pco/url.rb +18 -6
- data/lib/pco/url/version.rb +1 -1
- data/spec/pco_url_spec.rb +29 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a6bcb896c6899ae3d2c38e9e6f0bdf3a4101a38
|
4
|
+
data.tar.gz: de4d8e15837e4d36336f8abdd69f26d588cf2683
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 13b1f0a753ad9d5fdd13833f036101d0b852b94548e62c4a9c984cfa60b8a1f88d61b48333dcd9b953a2680f7f9ff260ca57183368937f96abeca51f2ff754a5
|
7
|
+
data.tar.gz: 6f4d1334ab40d917974c7c0a55c6a50f66d4d13a8d3d9899ac03c48ebbeb7e767c82836be2688352feb27b700df560efd6589be78de038ba78fe63dd1c43ee2f
|
data/README.md
CHANGED
@@ -32,3 +32,18 @@ PCO::URL.accounts
|
|
32
32
|
PCO::URL.services
|
33
33
|
# => "https://services-staging.planningcenteronline.com"
|
34
34
|
```
|
35
|
+
|
36
|
+
|
37
|
+
You can also specify the path:
|
38
|
+
|
39
|
+
|
40
|
+
```ruby
|
41
|
+
PCO::URL.accounts("/test")
|
42
|
+
# => "https://accounts-test1.planningcenteronline.com/test"
|
43
|
+
|
44
|
+
PCO::URL.accounts("test")
|
45
|
+
# => "https://accounts-test1.planningcenteronline.com/test"
|
46
|
+
|
47
|
+
PCO::URL.accounts("test", "working")
|
48
|
+
# => "https://accounts-test1.planningcenteronline.com/test/working"
|
49
|
+
```
|
data/lib/pco/url.rb
CHANGED
@@ -1,15 +1,12 @@
|
|
1
1
|
require "pco/url/version"
|
2
|
+
require 'uri'
|
2
3
|
|
3
4
|
module PCO
|
4
5
|
class URL
|
5
6
|
|
6
7
|
class << self
|
7
|
-
def method_missing(method_name)
|
8
|
-
|
9
|
-
env_var = method_name.to_s.upcase + "_URL"
|
10
|
-
|
11
|
-
# Try "CHECK_INS_URL" then url_for_app("check-ins")
|
12
|
-
ENV[env_var] || url_for_app(app_name)
|
8
|
+
def method_missing(method_name, *args)
|
9
|
+
url_for_app_with_path(method_name, args)
|
13
10
|
end
|
14
11
|
|
15
12
|
private
|
@@ -18,7 +15,22 @@ module PCO
|
|
18
15
|
ENV["DEPLOY_ENV"] || Rails.env
|
19
16
|
end
|
20
17
|
|
18
|
+
def env_url(app_name)
|
19
|
+
env_var = app_name.to_s.upcase + "_URL"
|
20
|
+
ENV[env_var]
|
21
|
+
end
|
22
|
+
|
23
|
+
def url_for_app_with_path(app_name, paths)
|
24
|
+
path = paths.map { |p| p.sub(/\A\/+/, "").sub(/\/+\Z/, "") }.join("/")
|
25
|
+
|
26
|
+
URI::join(url_for_app(app_name), path).to_s
|
27
|
+
end
|
28
|
+
|
21
29
|
def url_for_app(app_name)
|
30
|
+
# Try "CHECK_INS_URL" then url_for_app("check-ins")
|
31
|
+
return env_url(app_name) if env_url(app_name)
|
32
|
+
|
33
|
+
app_name = app_name.to_s.gsub("_", "-")
|
22
34
|
case env
|
23
35
|
when "production"
|
24
36
|
"https://#{app_name}.planningcenteronline.com"
|
data/lib/pco/url/version.rb
CHANGED
data/spec/pco_url_spec.rb
CHANGED
@@ -61,6 +61,35 @@ describe PCO::URL do
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
+
context "with path starting with /" do
|
65
|
+
Applications.map(&:to_s).each do |app|
|
66
|
+
it "has an #{app} URL with path" do
|
67
|
+
expect(PCO::URL.send(app, "/test")).to eq("http://#{app.gsub('_','-')}.pco.test/test")
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
context "with path NOT starting with /" do
|
73
|
+
Applications.map(&:to_s).each do |app|
|
74
|
+
it "has an #{app} URL with path" do
|
75
|
+
expect(PCO::URL.send(app, "test")).to eq("http://#{app.gsub('_','-')}.pco.test/test")
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
context "with multiple path arguments" do
|
81
|
+
Applications.map(&:to_s).each do |app|
|
82
|
+
it "has an #{app} URL with path" do
|
83
|
+
expect(PCO::URL.send(app, "test", "test2")).to eq("http://#{app.gsub('_','-')}.pco.test/test/test2")
|
84
|
+
expect(PCO::URL.send(app, "test/", "test2")).to eq("http://#{app.gsub('_','-')}.pco.test/test/test2")
|
85
|
+
expect(PCO::URL.send(app, "test", "/test2")).to eq("http://#{app.gsub('_','-')}.pco.test/test/test2")
|
86
|
+
expect(PCO::URL.send(app, "/test/", "test2")).to eq("http://#{app.gsub('_','-')}.pco.test/test/test2")
|
87
|
+
expect(PCO::URL.send(app, "/test/test2")).to eq("http://#{app.gsub('_','-')}.pco.test/test/test2")
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
|
64
93
|
describe "overrides" do
|
65
94
|
describe "development with accounts URL override" do
|
66
95
|
before do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pco-url
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Miller
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -95,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
95
|
version: '0'
|
96
96
|
requirements: []
|
97
97
|
rubyforge_project:
|
98
|
-
rubygems_version: 2.
|
98
|
+
rubygems_version: 2.4.1
|
99
99
|
signing_key:
|
100
100
|
specification_version: 4
|
101
101
|
summary: Generate URLs for app PCO apps in all environments
|