intercom-rails 0.2.24 → 0.2.25

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.
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: intercom-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.24
4
+ version: 0.2.25
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Ben McRedmond
@@ -10,118 +11,166 @@ authors:
10
11
  autorequire:
11
12
  bindir: bin
12
13
  cert_chain: []
13
- date: 2013-09-13 00:00:00.000000000 Z
14
+ date: 2014-09-25 00:00:00.000000000 Z
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: activesupport
17
18
  requirement: !ruby/object:Gem::Requirement
19
+ none: false
18
20
  requirements:
19
- - - '>'
21
+ - - ! '>'
20
22
  - !ruby/object:Gem::Version
21
23
  version: '3.0'
22
24
  type: :runtime
23
25
  prerelease: false
24
26
  version_requirements: !ruby/object:Gem::Requirement
27
+ none: false
25
28
  requirements:
26
- - - '>'
29
+ - - ! '>'
27
30
  - !ruby/object:Gem::Version
28
31
  version: '3.0'
29
32
  - !ruby/object:Gem::Dependency
30
33
  name: rake
31
34
  requirement: !ruby/object:Gem::Requirement
35
+ none: false
32
36
  requirements:
33
- - - '>='
37
+ - - ! '>='
34
38
  - !ruby/object:Gem::Version
35
39
  version: '0'
36
40
  type: :development
37
41
  prerelease: false
38
42
  version_requirements: !ruby/object:Gem::Requirement
43
+ none: false
39
44
  requirements:
40
- - - '>='
45
+ - - ! '>='
41
46
  - !ruby/object:Gem::Version
42
47
  version: '0'
43
48
  - !ruby/object:Gem::Dependency
44
49
  name: actionpack
45
50
  requirement: !ruby/object:Gem::Requirement
51
+ none: false
46
52
  requirements:
47
- - - '>'
53
+ - - ! '>'
48
54
  - !ruby/object:Gem::Version
49
55
  version: 3.2.12
50
56
  type: :development
51
57
  prerelease: false
52
58
  version_requirements: !ruby/object:Gem::Requirement
59
+ none: false
53
60
  requirements:
54
- - - '>'
61
+ - - ! '>'
55
62
  - !ruby/object:Gem::Version
56
63
  version: 3.2.12
57
64
  - !ruby/object:Gem::Dependency
58
- name: rspec-mocks
65
+ name: rspec
59
66
  requirement: !ruby/object:Gem::Requirement
67
+ none: false
60
68
  requirements:
61
69
  - - ~>
62
70
  - !ruby/object:Gem::Version
63
- version: '2.12'
71
+ version: '3.1'
64
72
  type: :development
65
73
  prerelease: false
66
74
  version_requirements: !ruby/object:Gem::Requirement
75
+ none: false
67
76
  requirements:
68
77
  - - ~>
69
78
  - !ruby/object:Gem::Version
70
- version: '2.12'
79
+ version: '3.1'
80
+ - !ruby/object:Gem::Dependency
81
+ name: rspec-rails
82
+ requirement: !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ version: '3.1'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
93
+ - - ~>
94
+ - !ruby/object:Gem::Version
95
+ version: '3.1'
71
96
  - !ruby/object:Gem::Dependency
72
97
  name: pry
73
98
  requirement: !ruby/object:Gem::Requirement
99
+ none: false
74
100
  requirements:
75
- - - '>='
101
+ - - ! '>='
76
102
  - !ruby/object:Gem::Version
77
103
  version: '0'
78
104
  type: :development
79
105
  prerelease: false
80
106
  version_requirements: !ruby/object:Gem::Requirement
107
+ none: false
81
108
  requirements:
82
- - - '>='
109
+ - - ! '>='
83
110
  - !ruby/object:Gem::Version
84
111
  version: '0'
85
112
  - !ruby/object:Gem::Dependency
86
113
  name: sinatra
87
114
  requirement: !ruby/object:Gem::Requirement
115
+ none: false
88
116
  requirements:
89
117
  - - ~>
90
118
  - !ruby/object:Gem::Version
91
- version: 1.4.3
119
+ version: 1.4.5
92
120
  type: :development
93
121
  prerelease: false
94
122
  version_requirements: !ruby/object:Gem::Requirement
123
+ none: false
95
124
  requirements:
96
125
  - - ~>
97
126
  - !ruby/object:Gem::Version
98
- version: 1.4.3
127
+ version: 1.4.5
99
128
  - !ruby/object:Gem::Dependency
100
129
  name: thin
101
130
  requirement: !ruby/object:Gem::Requirement
131
+ none: false
102
132
  requirements:
103
133
  - - ~>
104
134
  - !ruby/object:Gem::Version
105
- version: 1.4.1
135
+ version: 1.6.2
106
136
  type: :development
107
137
  prerelease: false
108
138
  version_requirements: !ruby/object:Gem::Requirement
139
+ none: false
109
140
  requirements:
110
141
  - - ~>
111
142
  - !ruby/object:Gem::Version
112
- version: 1.4.1
143
+ version: 1.6.2
113
144
  - !ruby/object:Gem::Dependency
114
145
  name: tzinfo
115
146
  requirement: !ruby/object:Gem::Requirement
147
+ none: false
148
+ requirements:
149
+ - - ! '>='
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ none: false
156
+ requirements:
157
+ - - ! '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ - !ruby/object:Gem::Dependency
161
+ name: gem-release
162
+ requirement: !ruby/object:Gem::Requirement
163
+ none: false
116
164
  requirements:
117
- - - '>='
165
+ - - ! '>='
118
166
  - !ruby/object:Gem::Version
119
167
  version: '0'
120
168
  type: :development
121
169
  prerelease: false
122
170
  version_requirements: !ruby/object:Gem::Requirement
171
+ none: false
123
172
  requirements:
124
- - - '>='
173
+ - - ! '>='
125
174
  - !ruby/object:Gem::Version
126
175
  version: '0'
127
176
  description: Intercom (https://www.intercom.io) is a customer relationship management
@@ -155,50 +204,29 @@ files:
155
204
  - lib/rails/generators/intercom/config/intercom.rb.erb
156
205
  - Rakefile
157
206
  - README.mdown
158
- - test/action_controller_test_setup.rb
159
- - test/import_test_setup.rb
160
- - test/intercom-rails/auto_include_filter_test.rb
161
- - test/intercom-rails/config_test.rb
162
- - test/intercom-rails/import_network_test.rb
163
- - test/intercom-rails/import_unit_test.rb
164
- - test/intercom-rails/proxy/company_test.rb
165
- - test/intercom-rails/proxy/user_test.rb
166
- - test/intercom-rails/script_tag_helper_test.rb
167
- - test/intercom-rails/script_tag_test.rb
168
- - test/test_setup.rb
169
207
  homepage: http://www.intercom.io
170
208
  licenses: []
171
- metadata: {}
172
209
  post_install_message:
173
210
  rdoc_options: []
174
211
  require_paths:
175
212
  - lib
176
213
  required_ruby_version: !ruby/object:Gem::Requirement
214
+ none: false
177
215
  requirements:
178
- - - '>='
216
+ - - ! '>='
179
217
  - !ruby/object:Gem::Version
180
218
  version: '0'
181
219
  required_rubygems_version: !ruby/object:Gem::Requirement
220
+ none: false
182
221
  requirements:
183
- - - '>='
222
+ - - ! '>='
184
223
  - !ruby/object:Gem::Version
185
224
  version: '0'
186
225
  requirements: []
187
226
  rubyforge_project: intercom-rails
188
- rubygems_version: 2.0.3
227
+ rubygems_version: 1.8.23
189
228
  signing_key:
190
- specification_version: 4
229
+ specification_version: 3
191
230
  summary: Rails helper for emitting javascript script tags for Intercom
192
- test_files:
193
- - test/action_controller_test_setup.rb
194
- - test/import_test_setup.rb
195
- - test/intercom-rails/auto_include_filter_test.rb
196
- - test/intercom-rails/config_test.rb
197
- - test/intercom-rails/import_network_test.rb
198
- - test/intercom-rails/import_unit_test.rb
199
- - test/intercom-rails/proxy/company_test.rb
200
- - test/intercom-rails/proxy/user_test.rb
201
- - test/intercom-rails/script_tag_helper_test.rb
202
- - test/intercom-rails/script_tag_test.rb
203
- - test/test_setup.rb
231
+ test_files: []
204
232
  has_rdoc:
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: b590998d555ff3f90815bb4f77ecfc22ce23df2b
4
- data.tar.gz: 84410edefae02996de6b3489d42612058fcd5bce
5
- SHA512:
6
- metadata.gz: f3024c9b8a4890848f1cfbc832175b4908657cb4d226d4d5f25bf25b00ae16e59ab569da735c8892943aeee742ed37b310bb6c9b0ff67cf1ba5a8f638351c99e
7
- data.tar.gz: b6e0e97a06c7264f6f4889a999c668659767cce50cd158ea7d157b734be4261282a34df0a51f32cdb5f6333ec7bdffd73c5e703818b2d6dce911deb3c6ff4458
@@ -1,29 +0,0 @@
1
- require 'test_setup'
2
-
3
- require 'action_controller'
4
- require 'action_controller/test_case'
5
-
6
- TestRoutes = ActionDispatch::Routing::RouteSet.new
7
- TestRoutes.draw do
8
- get ':controller(/:action)'
9
- end
10
-
11
- class ActionController::Base
12
-
13
- include IntercomRails::CustomDataHelper
14
- include IntercomRails::AutoInclude::Method
15
- after_filter :intercom_rails_auto_include
16
-
17
- include TestRoutes.url_helpers
18
- include TestRoutes.mounted_helpers
19
-
20
- end
21
-
22
- class ActionController::TestCase
23
-
24
- def setup
25
- super
26
- @routes = TestRoutes
27
- end
28
-
29
- end
@@ -1,84 +0,0 @@
1
- require 'test_setup'
2
- require 'active_support/string_inquirer'
3
-
4
- class Rails
5
- def self.env
6
- ActiveSupport::StringInquirer.new("production")
7
- end
8
- end
9
-
10
- module ActiveRecord
11
- class Base; end
12
- end
13
-
14
- module Mongoid
15
- module Document
16
- def self.included(klass)
17
- klass.extend ClassMethods
18
- end
19
-
20
- module ClassMethods
21
- def all
22
- @_users ||= User.all
23
- end
24
-
25
- def limit(*args)
26
- self
27
- end
28
-
29
- def skip(*args)
30
- all
31
- end
32
- end
33
- end
34
- end
35
-
36
- class User
37
-
38
- attr_reader :id, :email, :name
39
-
40
- def initialize(options = {})
41
- options.each do |k,v|
42
- instance_variable_set(:"@#{k}", v)
43
- end
44
- end
45
-
46
- MOCK_USERS = [
47
- {:id => 1, :email => "ben@intercom.io", :name => "Ben McRedmond"},
48
- {:id => 2, :email => "ciaran@intercom.io", :name => "Ciaran Lee"}
49
- ]
50
-
51
- def self.find_in_batches(*args)
52
- yield(MOCK_USERS.map {|u| new(u)})
53
- end
54
-
55
- def self.all
56
- MOCK_USERS.map { |u| new(u) }
57
- end
58
-
59
- def self.first
60
- new(MOCK_USERS.first)
61
- end
62
-
63
- def self.<(other)
64
- other == ActiveRecord::Base
65
- end
66
-
67
- end
68
-
69
- module ImportTest
70
-
71
- def setup
72
- super
73
- IntercomRails.config.stub(:api_key).and_return("abcd")
74
- end
75
-
76
- def teardown
77
- super
78
- Rails.rspec_reset
79
- User.rspec_reset
80
- IntercomRails::Import.rspec_reset
81
- IntercomRails::Import.unstub_all_instance_methods
82
- end
83
-
84
- end
@@ -1,187 +0,0 @@
1
- require 'action_controller_test_setup'
2
-
3
- class TestController < ActionController::Base
4
-
5
- skip_after_filter :intercom_rails_auto_include, :only => :with_user_instance_variable_after_filter_skipped
6
-
7
- def without_user
8
- render :text => params[:body], :content_type => 'text/html'
9
- end
10
-
11
- def with_user_instance_variable
12
- @user = dummy_user
13
- render :text => params[:body], :content_type => 'text/html'
14
- end
15
-
16
- def with_user_instance_variable_after_filter_skipped
17
- with_user_instance_variable
18
- end
19
-
20
- def with_user_and_app_instance_variables
21
- @user = dummy_user
22
- @app = dummy_company
23
- render :text => params[:body], :content_type => 'text/html'
24
- end
25
-
26
- def with_user_instance_variable_and_custom_data
27
- @user = dummy_user
28
- intercom_custom_data.user['testing_stuff'] = true
29
- render :text => params[:body], :content_type => 'text/html'
30
- end
31
-
32
- def with_unusable_user_instance_variable
33
- @user = Object.new
34
- render :text => params[:body], :content_type => 'text/html'
35
- end
36
-
37
- def with_current_user_method
38
- render :text => params[:body], :content_type => 'text/html'
39
- end
40
-
41
- def with_admin_instance_variable
42
- @admin = dummy_user(:email => 'eoghan@intercom.io', :name => 'Eoghan McCabe')
43
- render :text => params[:body], :content_type => 'text/html'
44
- end
45
-
46
- def current_user
47
- raise NameError if params[:action] != 'with_current_user_method'
48
- dummy_user(:email => 'ciaran@intercom.io', :name => 'Ciaran Lee')
49
- end
50
-
51
- end
52
-
53
- class AutoIncludeFilterTest < ActionController::TestCase
54
-
55
- include InterTest
56
-
57
- tests TestController
58
-
59
- def setup
60
- super
61
- IntercomRails.config.app_id = 'my_app_id'
62
- end
63
-
64
- def teardown
65
- IntercomRails.config.app_id = nil
66
- end
67
-
68
- def test_no_user_present
69
- get :without_user, :body => "<body>Hello world</body>"
70
- assert_equal @response.body, "<body>Hello world</body>"
71
- end
72
-
73
- def test_user_present_with_no_body_tag
74
- get :with_user_instance_variable, :body => "Hello world"
75
- assert_equal @response.body, "Hello world"
76
- end
77
-
78
- def test_user_present_but_unusuable
79
- get :with_unusable_user_instance_variable, :body => "Hello world"
80
- assert_equal @response.body, "Hello world"
81
- end
82
-
83
- def test_user_instance_variable_present_with_body_tag
84
- get :with_user_instance_variable, :body => "<body>Hello world</body>"
85
-
86
- assert_includes @response.body, "<script>"
87
- assert_includes @response.body, IntercomRails.config.app_id
88
- assert_includes @response.body, "ben@intercom.io"
89
- assert_includes @response.body, "Ben McRedmond"
90
- end
91
-
92
- def test_user_instance_variable_present_with_body_tag_and_custom_data
93
- get :with_user_instance_variable_and_custom_data, :body => "<body>Hello world</body>"
94
- assert_includes @response.body, "<script>"
95
- assert_includes @response.body, "testing_stuff"
96
- end
97
-
98
- def test_current_user_method_present_with_body_tag
99
- get :with_current_user_method, :body => "<body>Hello world</body>"
100
-
101
- assert_includes @response.body, "<script>"
102
- assert_includes @response.body, "ciaran@intercom.io"
103
- assert_includes @response.body, "Ciaran Lee"
104
- end
105
-
106
- def test_setting_current_user_with_intercom_config
107
- IntercomRails.config.user.current = Proc.new { @admin }
108
- get :with_admin_instance_variable, :body => "<body>Hello world</body>"
109
-
110
- assert_includes @response.body, "<script>"
111
- assert_includes @response.body, "eoghan@intercom.io"
112
- assert_includes @response.body, "Eoghan McCabe"
113
- end
114
-
115
- def test_library_url_default
116
- get :with_current_user_method, :body => "<body>Hello world</body>"
117
- assert_includes @response.body, "<script>"
118
- assert_includes @response.body, "s.src='https://static.intercomcdn.com/intercom.v1.js"
119
- end
120
-
121
- def test_library_url_override
122
- IntercomRails.config.library_url = 'http://a.b.c.d/library.js'
123
- get :with_current_user_method, :body => "<body>Hello world</body>"
124
- assert_includes @response.body, "<script>"
125
- assert_includes @response.body, "s.src='http://a.b.c.d/library.js"
126
- end
127
-
128
- def test_auto_insert_with_api_secret_set
129
- IntercomRails.config.api_secret = 'abcd'
130
- get :with_current_user_method, :body => "<body>Hello world</body>"
131
-
132
- assert_includes @response.body, "<script>"
133
- assert_includes @response.body, "user_hash"
134
- assert_includes @response.body, OpenSSL::HMAC.hexdigest("sha256", 'abcd', @controller.current_user.email)
135
- end
136
-
137
- def test_no_app_id_present
138
- IntercomRails.config.app_id = nil
139
- get :with_current_user_method, :body => "<body>Hello world</body>"
140
-
141
- assert_equal @response.body, "<body>Hello world</body>"
142
- end
143
-
144
- def test_manual_script_tag_helper_call
145
- fake_action_view = fake_action_view_class.new
146
- fake_action_view.instance_variable_set(:@controller, @controller)
147
- fake_action_view.intercom_script_tag({})
148
-
149
- get :with_current_user_method, :body => "<body>Hello world</body>"
150
- assert_equal @response.body, "<body>Hello world</body>"
151
- end
152
-
153
- def test_includes_company
154
- IntercomRails.config.company.current = Proc.new { @app }
155
- get :with_user_and_app_instance_variables, :body => "<body>Hello world</body>"
156
-
157
- assert_includes @response.body, "<script>"
158
- assert_includes @response.body, "company"
159
- assert_includes @response.body, "6"
160
- end
161
-
162
- def test_skip_after_filter
163
- get :with_user_instance_variable_after_filter_skipped, :body => "<body>Hello world</body>"
164
- assert_equal @response.body, "<body>Hello world</body>"
165
- end
166
-
167
- def test_disabled_in_development
168
- Rails.stub(:env) { ActiveSupport::StringInquirer.new("development") }
169
- IntercomRails.config.enabled_environments = ["production"]
170
- get :with_user_instance_variable, :body => "<body>Hello world</body>"
171
-
172
- assert_equal @response.body, "<body>Hello world</body>"
173
- Rails.unstub(:env)
174
- end
175
-
176
- def test_enabled_in_production
177
- # Rails.env defaults to "production"
178
- IntercomRails.config.enabled_environments = ["production"]
179
- get :with_user_instance_variable, :body => "<body>Hello world</body>"
180
-
181
- assert_includes @response.body, "<script>"
182
- assert_includes @response.body, IntercomRails.config.app_id
183
- assert_includes @response.body, "ben@intercom.io"
184
- assert_includes @response.body, "Ben McRedmond"
185
- end
186
-
187
- end