exvo_helpers 0.0.3 → 0.0.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.
- data/README.md +32 -12
- data/lib/exvo_helpers/helpers.rb +56 -59
- data/lib/exvo_helpers/version.rb +1 -1
- data/spec/exvo_helpers/helpers_spec.rb +23 -21
- metadata +14 -14
data/README.md
CHANGED
@@ -7,15 +7,25 @@ Ruby gem providing helper methods for various Exvo apps/services. It takes into
|
|
7
7
|
Results are from the 'development' Rails environment:
|
8
8
|
|
9
9
|
```ruby
|
10
|
-
Exvo::Helpers.cdn_host
|
11
|
-
Exvo::Helpers.cfs_host
|
12
|
-
Exvo::Helpers.desktop_host
|
13
|
-
Exvo::Helpers.themes_host
|
10
|
+
Exvo::Helpers.cdn_host => 'www.exvo.local'
|
11
|
+
Exvo::Helpers.cfs_host => 'cfs.exvo.local'
|
12
|
+
Exvo::Helpers.desktop_host => 'www.exvo.local'
|
13
|
+
Exvo::Helpers.themes_host => 'themes.exvo.local'
|
14
|
+
Exvo::Helpers.blog_host => 'blog.exvo.local'
|
15
|
+
Exvo::Helpers.contacts_host => 'contacts.exvo.local'
|
16
|
+
Exvo::Helpers.inbox_host => 'inbox.exvo.local'
|
17
|
+
Exvo::Helpers.music_host => 'music.exvo.local'
|
18
|
+
Exvo::Helpers.pics_host => 'pics.exvo.local'
|
14
19
|
|
15
20
|
Exvo::Helpers.cdn_uri => 'http://www.exvo.local'
|
16
21
|
Exvo::Helpers.cfs_uri => 'http://cfs.exvo.local'
|
17
22
|
Exvo::Helpers.desktop_uri => 'http://www.exvo.local'
|
18
23
|
Exvo::Helpers.themes_uri => 'http://themes.exvo.local'
|
24
|
+
Exvo::Helpers.blog_uri => 'http://blog.exvo.local'
|
25
|
+
Exvo::Helpers.contacts_uri => 'http://contacts.exvo.local'
|
26
|
+
Exvo::Helpers.inbox_uri => 'http://inbox.exvo.local'
|
27
|
+
Exvo::Helpers.music_uri => 'http://music.exvo.local'
|
28
|
+
Exvo::Helpers.pics_uri => 'http://pics.exvo.local'
|
19
29
|
```
|
20
30
|
|
21
31
|
For consistency, there are also read-only `auth_host/auth_uri` methods, that just pass execution to the [exvo-auth](https://github.com/Exvo/Auth) gem (so it's required that exvo-auth gem is available when using them):
|
@@ -31,19 +41,29 @@ Exvo::Helpers.auth_uri => 'http://exvo.auth.local'
|
|
31
41
|
There are two ways to do it. One is by the means of ENV variables (preferred one):
|
32
42
|
|
33
43
|
```ruby
|
34
|
-
ENV['CDN_HOST']
|
35
|
-
ENV['CFS_HOST']
|
36
|
-
ENV['DESKTOP_HOST']
|
37
|
-
ENV['THEMES_HOST']
|
44
|
+
ENV['CDN_HOST'] = 'test.cdn.exvo.com'
|
45
|
+
ENV['CFS_HOST'] = 'test.cfs.exvo.com'
|
46
|
+
ENV['DESKTOP_HOST'] = 'test.exvo.com'
|
47
|
+
ENV['THEMES_HOST'] = 'test.themes.exvo.com'
|
48
|
+
ENV['BLOG_HOST'] = 'test.blog.exvo.local'
|
49
|
+
ENV['CONTACTS_HOST'] = 'test.contacts.exvo.local'
|
50
|
+
ENV['INBOX_HOST'] = 'test.inbox.exvo.local'
|
51
|
+
ENV['MUSIC_HOST'] = 'test.music.exvo.local'
|
52
|
+
ENV['PICS_HOST'] = 'test.pics.exvo.local'
|
38
53
|
```
|
39
54
|
|
40
55
|
The other one is to set it in the application's config file:
|
41
56
|
|
42
57
|
```ruby
|
43
|
-
Exvo::Helpers.cdn_host
|
44
|
-
Exvo::Helpers.cfs_host
|
45
|
-
Exvo::Helpers.desktop_host
|
46
|
-
Exvo::Helpers.themes_host
|
58
|
+
Exvo::Helpers.cdn_host = 'test.cfs.exvo.com'
|
59
|
+
Exvo::Helpers.cfs_host = 'test.cfs.exvo.com'
|
60
|
+
Exvo::Helpers.desktop_host = 'test.exvo.com'
|
61
|
+
Exvo::Helpers.themes_host = 'test.themes.exvo.com'
|
62
|
+
Exvo::Helpers.blog_host = 'test.blog.exvo.local'
|
63
|
+
Exvo::Helpers.contacts_host = 'test.contacts.exvo.local'
|
64
|
+
Exvo::Helpers.inbox_host = 'test.inbox.exvo.local'
|
65
|
+
Exvo::Helpers.music_host = 'test.music.exvo.local'
|
66
|
+
Exvo::Helpers.pics_host = 'test.pics.exvo.local'
|
47
67
|
```
|
48
68
|
|
49
69
|
|
data/lib/exvo_helpers/helpers.rb
CHANGED
@@ -2,63 +2,40 @@ module Exvo
|
|
2
2
|
|
3
3
|
module Helpers
|
4
4
|
|
5
|
-
#
|
5
|
+
# Dynamically define class methods
|
6
|
+
class << self
|
7
|
+
|
8
|
+
%w(cdn cfs desktop themes blog contacts inbox music pics).each do |service|
|
9
|
+
|
10
|
+
# def self.cdn_uri
|
11
|
+
# "http://#{cdn_host}"
|
12
|
+
# end
|
13
|
+
define_method "#{service}_uri" do
|
14
|
+
"http://#{ send("#{service}_host") }"
|
15
|
+
end
|
16
|
+
|
17
|
+
# def self.cdn_host
|
18
|
+
# @@cdn_host ||= ENV['CDN_HOST'] || default_opts[env.to_sym][:cdn_host]
|
19
|
+
# end
|
20
|
+
define_method "#{service}_host" do
|
21
|
+
# poor man's metaprogramming memoization - if it's defined (and not nil!) return it; if not, set it
|
22
|
+
if class_variable_defined?("@@#{service}_host") and class_variable_get("@@#{service}_host")
|
23
|
+
class_variable_get("@@#{service}_host")
|
24
|
+
else
|
25
|
+
host = ENV["#{service.upcase}_HOST"] || default_opts[env.to_sym]["#{service}_host".to_sym]
|
26
|
+
class_variable_set("@@#{service}_host", host)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# def self.cdn_host=(host)
|
31
|
+
# @@cdn_host = host
|
32
|
+
# end
|
33
|
+
define_method "#{service}_host=" do |host|
|
34
|
+
class_variable_set("@@#{service}_host", host)
|
35
|
+
end
|
6
36
|
|
7
|
-
|
8
|
-
"http://#{cdn_host}"
|
9
|
-
end
|
10
|
-
|
11
|
-
def self.cdn_host
|
12
|
-
@@cdn_host ||= ENV['CDN_HOST'] || default_opts[env.to_sym][:cdn_host]
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.cdn_host=(host)
|
16
|
-
@@cdn_host = host
|
17
|
-
end
|
18
|
-
|
19
|
-
|
20
|
-
# CFS
|
21
|
-
|
22
|
-
def self.cfs_uri
|
23
|
-
"http://#{cfs_host}"
|
24
|
-
end
|
25
|
-
|
26
|
-
def self.cfs_host
|
27
|
-
@@cfs_host ||= ENV['CFS_HOST'] || default_opts[env.to_sym][:cfs_host]
|
28
|
-
end
|
29
|
-
|
30
|
-
def self.cfs_host=(host)
|
31
|
-
@@cfs_host = host
|
32
|
-
end
|
33
|
-
|
34
|
-
|
35
|
-
# DESKTOP
|
36
|
-
|
37
|
-
def self.desktop_uri
|
38
|
-
"http://#{desktop_host}"
|
39
|
-
end
|
40
|
-
|
41
|
-
def self.desktop_host
|
42
|
-
@@desktop_host ||= ENV['DESKTOP_HOST'] || default_opts[env.to_sym][:desktop_host]
|
43
|
-
end
|
44
|
-
|
45
|
-
def self.desktop_host=(host)
|
46
|
-
@@desktop_host = host
|
47
|
-
end
|
48
|
-
|
49
|
-
|
50
|
-
# THEMES
|
51
|
-
|
52
|
-
def self.themes_uri
|
53
|
-
"http://#{themes_host}"
|
54
|
-
end
|
55
|
-
|
56
|
-
def self.themes_host
|
57
|
-
@@themes_host ||= ENV['THEMES_HOST'] || default_opts[env.to_sym][:themes_host]
|
58
|
-
end
|
37
|
+
end
|
59
38
|
|
60
|
-
def self.themes_host=(host)
|
61
|
-
@@themes_host = host
|
62
39
|
end
|
63
40
|
|
64
41
|
|
@@ -103,25 +80,45 @@ module Exvo
|
|
103
80
|
:cdn_host => 'cdn.exvo.com',
|
104
81
|
:cfs_host => 'cfs.exvo.com',
|
105
82
|
:desktop_host => 'www.exvo.com',
|
106
|
-
:themes_host => 'themes.exvo.com'
|
83
|
+
:themes_host => 'themes.exvo.com',
|
84
|
+
:blog_host => 'blog.exvo.com',
|
85
|
+
:contacts_host => 'contacts.exvo.com',
|
86
|
+
:inbox_host => 'inbox.exvo.com',
|
87
|
+
:music_host => 'music.exvo.com',
|
88
|
+
:pics_host => 'pics.exvo.com'
|
107
89
|
},
|
108
90
|
:staging => {
|
109
91
|
:cdn_host => 'staging.cdn.exvo.com',
|
110
92
|
:cfs_host => 'staging.cfs.exvo.com',
|
111
93
|
:desktop_host => 'www.exvo.co',
|
112
|
-
:themes_host => 'staging.themes.exvo.com'
|
94
|
+
:themes_host => 'staging.themes.exvo.com',
|
95
|
+
:blog_host => 'staging.blog.exvo.com',
|
96
|
+
:contacts_host => 'exvo-contacts-staging.heroku.com',
|
97
|
+
:inbox_host => 'exvo-inbox-staging.heroku.com',
|
98
|
+
:music_host => 'exvo-music-staging.heroku.com',
|
99
|
+
:pics_host => 'exvo-pictures-staging.heroku.com'
|
113
100
|
},
|
114
101
|
:development => {
|
115
102
|
:cdn_host => 'www.exvo.local',
|
116
103
|
:cfs_host => 'cfs.exvo.local',
|
117
104
|
:desktop_host => 'www.exvo.local',
|
118
|
-
:themes_host => 'themes.exvo.local'
|
105
|
+
:themes_host => 'themes.exvo.local',
|
106
|
+
:blog_host => 'blog.exvo.local',
|
107
|
+
:contacts_host => 'contacts.exvo.local',
|
108
|
+
:inbox_host => 'inbox.exvo.local',
|
109
|
+
:music_host => 'music.exvo.local',
|
110
|
+
:pics_host => 'pics.exvo.local'
|
119
111
|
},
|
120
112
|
:test => {
|
121
113
|
:cdn_host => 'www.exvo.local',
|
122
114
|
:cfs_host => 'cfs.exvo.local',
|
123
115
|
:desktop_host => 'www.exvo.local',
|
124
|
-
:themes_host => 'themes.exvo.local'
|
116
|
+
:themes_host => 'themes.exvo.local',
|
117
|
+
:blog_host => 'blog.exvo.local',
|
118
|
+
:contacts_host => 'contacts.exvo.local',
|
119
|
+
:inbox_host => 'inbox.exvo.local',
|
120
|
+
:music_host => 'music.exvo.local',
|
121
|
+
:pics_host => 'pics.exvo.local'
|
125
122
|
}
|
126
123
|
}
|
127
124
|
end
|
data/lib/exvo_helpers/version.rb
CHANGED
@@ -16,6 +16,22 @@ describe Exvo::Helpers do
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
+
describe "uri methods in production environment" do
|
20
|
+
before do
|
21
|
+
Exvo::Helpers.stub(:env).and_return('production')
|
22
|
+
end
|
23
|
+
|
24
|
+
specify { Exvo::Helpers.cdn_uri.should match('cdn.exvo.com') }
|
25
|
+
specify { Exvo::Helpers.cfs_uri.should match('cfs.exvo.com') }
|
26
|
+
specify { Exvo::Helpers.desktop_uri.should match('www.exvo.com') }
|
27
|
+
specify { Exvo::Helpers.themes_uri.should match('themes.exvo.com') }
|
28
|
+
specify { Exvo::Helpers.blog_uri.should match('blog.exvo.com') }
|
29
|
+
specify { Exvo::Helpers.contacts_uri.should match('contacts.exvo.com') }
|
30
|
+
specify { Exvo::Helpers.inbox_uri.should match('inbox.exvo.com') }
|
31
|
+
specify { Exvo::Helpers.music_uri.should match('music.exvo.com') }
|
32
|
+
specify { Exvo::Helpers.pics_uri.should match('pics.exvo.com') }
|
33
|
+
end
|
34
|
+
|
19
35
|
describe "host methods in production environment" do
|
20
36
|
before do
|
21
37
|
Exvo::Helpers.stub(:env).and_return('production')
|
@@ -25,51 +41,37 @@ describe Exvo::Helpers do
|
|
25
41
|
specify { Exvo::Helpers.cfs_host.should eql('cfs.exvo.com') }
|
26
42
|
specify { Exvo::Helpers.desktop_host.should eql('www.exvo.com') }
|
27
43
|
specify { Exvo::Helpers.themes_host.should eql('themes.exvo.com') }
|
44
|
+
specify { Exvo::Helpers.blog_host.should eql('blog.exvo.com') }
|
45
|
+
specify { Exvo::Helpers.contacts_host.should eql('contacts.exvo.com') }
|
46
|
+
specify { Exvo::Helpers.inbox_host.should eql('inbox.exvo.com') }
|
47
|
+
specify { Exvo::Helpers.music_host.should eql('music.exvo.com') }
|
48
|
+
specify { Exvo::Helpers.pics_host.should eql('pics.exvo.com') }
|
28
49
|
end
|
29
50
|
|
30
51
|
describe "ENV setting overrides the defaults" do
|
52
|
+
# as all methods are defined the same using metaprogramming, only testing for 1 is enough
|
31
53
|
let(:cdn_host) { "test.cdn.exvo.com" }
|
32
|
-
let(:cfs_host) { "test.cfs.exvo.com" }
|
33
|
-
let(:desktop_host) { "test.exvo.com" }
|
34
|
-
let(:themes_host) { "test.themes.exvo.com" }
|
35
54
|
|
36
55
|
before do
|
37
56
|
# clear any previous memoization
|
38
57
|
Exvo::Helpers.cdn_host = nil
|
39
|
-
Exvo::Helpers.cfs_host = nil
|
40
|
-
Exvo::Helpers.desktop_host = nil
|
41
|
-
Exvo::Helpers.themes_host = nil
|
42
58
|
|
43
59
|
# set ENV
|
44
60
|
ENV["CDN_HOST"] = cdn_host
|
45
|
-
ENV["CFS_HOST"] = cfs_host
|
46
|
-
ENV["DESKTOP_HOST"] = desktop_host
|
47
|
-
ENV["THEMES_HOST"] = themes_host
|
48
61
|
end
|
49
62
|
|
50
63
|
specify { Exvo::Helpers.cdn_host.should eql(cdn_host) }
|
51
|
-
specify { Exvo::Helpers.cfs_host.should eql(cfs_host) }
|
52
|
-
specify { Exvo::Helpers.desktop_host.should eql(desktop_host) }
|
53
|
-
specify { Exvo::Helpers.themes_host.should eql(themes_host) }
|
54
64
|
end
|
55
65
|
|
56
66
|
describe "setting host directly overrides the defaults" do
|
67
|
+
# as all methods are defined the same using metaprogramming, only testing for 1 is enough
|
57
68
|
let(:cdn_host) { "new.cdn.exvo.com" }
|
58
|
-
let(:cfs_host) { "new.cfs.exvo.com" }
|
59
|
-
let(:desktop_host) { "new.exvo.com" }
|
60
|
-
let(:themes_host) { "new.themes.exvo.com" }
|
61
69
|
|
62
70
|
before do
|
63
71
|
Exvo::Helpers.cdn_host = cdn_host
|
64
|
-
Exvo::Helpers.cfs_host = cfs_host
|
65
|
-
Exvo::Helpers.desktop_host = desktop_host
|
66
|
-
Exvo::Helpers.themes_host = themes_host
|
67
72
|
end
|
68
73
|
|
69
74
|
specify { Exvo::Helpers.cdn_host.should eql(cdn_host) }
|
70
|
-
specify { Exvo::Helpers.cfs_host.should eql(cfs_host) }
|
71
|
-
specify { Exvo::Helpers.desktop_host.should eql(desktop_host) }
|
72
|
-
specify { Exvo::Helpers.themes_host.should eql(themes_host) }
|
73
75
|
end
|
74
76
|
|
75
77
|
describe "auth_host/auth_uri methods which pass to the ExvoAuth gem" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exvo_helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-11-
|
12
|
+
date: 2011-11-22 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &85101570 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '3.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *85101570
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &85101310 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '2.7'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *85101310
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: guard
|
38
|
-
requirement: &
|
38
|
+
requirement: &85101070 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 0.8.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *85101070
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: guard-rspec
|
49
|
-
requirement: &
|
49
|
+
requirement: &85100830 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 0.4.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *85100830
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rb-fsevent
|
60
|
-
requirement: &
|
60
|
+
requirement: &85100640 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *85100640
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rb-inotify
|
71
|
-
requirement: &
|
71
|
+
requirement: &85100410 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *85100410
|
80
80
|
description: Ruby gem providing helper *_uri/*_host methods for Exvo services/apps
|
81
81
|
like DESKTOP/CFS/AUTH/THEMES.
|
82
82
|
email:
|