intercom-rails 0.2.24 → 0.2.25

Sign up to get free protection for your applications and to get access to all the features.
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