panmind-zendesk 1.0.1.3 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -13,9 +13,13 @@ and the necessary controller and routing code to implement
13
13
  Installation
14
14
  ------------
15
15
 
16
- script/plugin install git://github.com/Panmind/zendesk.git
16
+ Via RubyGems:
17
17
 
18
- Gems will follow soon, hopefully after the July 22nd Ruby Social Club in Milan.
18
+ gem install panmind-zendesk
19
+
20
+ Or via Rails Plugin:
21
+
22
+ rails plugin install git://github.com/Panmind/zendesk.git
19
23
 
20
24
 
21
25
  Configuration
@@ -117,8 +121,7 @@ assets, follow us on GitHub: we plan to release that code as well. :-)
117
121
  Compatibility
118
122
  -------------
119
123
 
120
- Tested with Rails 2.3.8 with the `rails_xss` plugin installed,
121
- running under Ruby 1.9.1-p378.
124
+ Tested with Rails 3.0.3 running under Ruby 1.9.2p0.
122
125
 
123
126
 
124
127
  TODO
@@ -128,10 +131,8 @@ TODO
128
131
  or redirects to Zendesk won't work: remove relying on this assumption. Cleanly.
129
132
  * Clean up configuration by requiring less variables: *convention over configuration*!
130
133
  * Configuration of the `logged_in?` method name
131
- * Remove the `String#force_utf8` patch and its usage
132
134
  * Allow options passing to the `zendesk_dropbox_link_to` helper
133
135
  * Code documentation
134
- * Gem
135
136
  * Tests (yuck!)
136
137
 
137
138
  Please fork the project and send us a pull request if you check off any of these items
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'rake'
2
2
  require 'rake/rdoctask'
3
3
 
4
- require 'lib/panmind/zendesk'
4
+ require './lib/panmind/zendesk'
5
5
 
6
6
  begin
7
7
  require 'jeweler'
@@ -13,8 +13,8 @@ begin
13
13
  'Zendesk dropbox and the necessary controller and routing ' \
14
14
  'code to implement remote authentication'
15
15
 
16
- gemspec.authors = ['Marcello Barnaba']
17
- gemspec.email = 'vjt@openssl.it'
16
+ gemspec.authors = ['Fabrizio Regini','Marcello Barnaba']
17
+ gemspec.email = 'info@panmind.org'
18
18
  gemspec.homepage = 'http://github.com/Panmind/zendesk'
19
19
 
20
20
  gemspec.files = %w( README.md Rakefile rails/init.rb ) + Dir['lib/**/*']
@@ -22,11 +22,11 @@ begin
22
22
  gemspec.has_rdoc = true
23
23
 
24
24
  gemspec.version = Panmind::Zendesk::Version
25
- gemspec.date = '2010-11-17'
25
+ gemspec.date = '2011-05-16'
26
26
 
27
27
  gemspec.require_path = 'lib'
28
28
 
29
- gemspec.add_dependency('rails', '~> 2.3.8')
29
+ gemspec.add_dependency('rails', '~> 3.0')
30
30
  end
31
31
  rescue LoadError
32
32
  puts 'Jeweler not available. Install it with: gem install jeweler'
@@ -1,4 +1,5 @@
1
1
  require 'digest/md5'
2
+ require 'panmind/zendesk/railtie' if defined? Rails
2
3
 
3
4
  module Panmind
4
5
  # Zendesk remote authentication helper for Rails. Implements JS generation,
@@ -12,7 +13,7 @@ module Panmind
12
13
  # - vjt Wed Jul 21 13:00:42 CEST 2010
13
14
  #
14
15
  module Zendesk
15
- Version = "1.0.1.3"
16
+ Version = '1.0.2'
16
17
 
17
18
  class ConfigurationError < StandardError; end
18
19
 
@@ -57,8 +58,8 @@ module Panmind
57
58
  end
58
59
 
59
60
  private
60
- def token=(token); @token = token.force_utf8.freeze rescue nil end
61
- def hostname=(hostname); @hostname = hostname.freeze end
61
+ def token=(token); @token = token.freeze rescue nil end
62
+ def hostname=(hostname); @hostname = hostname.freeze end
62
63
  end
63
64
 
64
65
  module Helpers
@@ -96,7 +97,7 @@ module Panmind
96
97
  end
97
98
 
98
99
  def zendesk_login
99
- name, email = instance_exec(&Zendesk.login).map!(&:force_utf8)
100
+ name, email = instance_exec(&Zendesk.login)
100
101
 
101
102
  now = params[:timestamp] || Time.now.to_i.to_s
102
103
  hash = Digest::MD5.hexdigest(name + email + Zendesk.token + now)
@@ -108,7 +109,7 @@ module Panmind
108
109
  '&timestamp=' + now,
109
110
  '&hash=' + hash,
110
111
  '&return_to=' + back
111
- ].join.force_utf8
112
+ ].join
112
113
 
113
114
  redirect_to(Zendesk.auth_url + auth_params)
114
115
  end
@@ -136,12 +137,14 @@ module Panmind
136
137
  end
137
138
  end
138
139
 
139
- module Routes
140
- def zendesk(base, options)
140
+ module Routing
141
+ def zendesk(base, options = {})
141
142
  return unless Zendesk.enabled?
142
143
 
143
- self.support base, :controller => options[:controller], :action => :zendesk_login
144
- self.connect "#{base}/exit", :controller => options[:controller], :action => :zendesk_logout
144
+ scope base.to_s, :controller => options[:controller] do
145
+ get '', :action => :zendesk_login, :as => base.to_sym
146
+ get 'exit', :action => :zendesk_logout, :as => nil
147
+ end
145
148
  end
146
149
  end
147
150
 
@@ -0,0 +1,24 @@
1
+ require 'panmind/zendesk'
2
+
3
+ module Panmind
4
+ module Zendesk
5
+
6
+ if defined? Rails::Railtie
7
+ class Railtie < Rails::Railtie
8
+ initializer 'panmind.zendesk.insert_into_action_view' do
9
+ ActiveSupport.on_load :action_view do
10
+ Panmind::Zendesk::Railtie.insert
11
+ end
12
+ end
13
+ end
14
+ end
15
+
16
+ class Railtie
17
+ def self.insert
18
+ ActionView::Base.instance_eval { include Panmind::Zendesk::Helpers }
19
+ ActionDispatch::Routing::Mapper.instance_eval { include Panmind::Zendesk::Routing }
20
+ end
21
+ end
22
+
23
+ end
24
+ end
data/rails/init.rb CHANGED
@@ -1,5 +1,2 @@
1
- require 'panmind/zendesk'
2
- require 'panmind/string_force_utf8_patch'
3
-
4
- ActionView::Base.instance_eval { include Panmind::Zendesk::Helpers }
5
- ActionController::Routing::RouteSet::Mapper.instance_eval { include Panmind::Zendesk::Routes }
1
+ require 'panmind/zendesk/railtie'
2
+ Panmind::Zendesk::Railtie.insert
metadata CHANGED
@@ -1,22 +1,21 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: panmind-zendesk
3
3
  version: !ruby/object:Gem::Version
4
- hash: 93
5
4
  prerelease: false
6
5
  segments:
7
6
  - 1
8
7
  - 0
9
- - 1
10
- - 3
11
- version: 1.0.1.3
8
+ - 2
9
+ version: 1.0.2
12
10
  platform: ruby
13
11
  authors:
12
+ - Fabrizio Regini
14
13
  - Marcello Barnaba
15
14
  autorequire:
16
15
  bindir: bin
17
16
  cert_chain: []
18
17
 
19
- date: 2010-11-17 00:00:00 +01:00
18
+ date: 2011-05-16 00:00:00 +02:00
20
19
  default_executable:
21
20
  dependencies:
22
21
  - !ruby/object:Gem::Dependency
@@ -27,16 +26,14 @@ dependencies:
27
26
  requirements:
28
27
  - - ~>
29
28
  - !ruby/object:Gem::Version
30
- hash: 19
31
29
  segments:
32
- - 2
33
30
  - 3
34
- - 8
35
- version: 2.3.8
31
+ - 0
32
+ version: "3.0"
36
33
  type: :runtime
37
34
  version_requirements: *id001
38
35
  description: The plugin implements the HTML generation code for the Zendesk dropbox and the necessary controller and routing code to implement remote authentication
39
- email: vjt@openssl.it
36
+ email: info@panmind.org
40
37
  executables: []
41
38
 
42
39
  extensions: []
@@ -46,8 +43,8 @@ extra_rdoc_files:
46
43
  files:
47
44
  - README.md
48
45
  - Rakefile
49
- - lib/panmind/string_force_utf8_patch.rb
50
46
  - lib/panmind/zendesk.rb
47
+ - lib/panmind/zendesk/railtie.rb
51
48
  - rails/init.rb
52
49
  has_rdoc: true
53
50
  homepage: http://github.com/Panmind/zendesk
@@ -63,7 +60,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
63
60
  requirements:
64
61
  - - ">="
65
62
  - !ruby/object:Gem::Version
66
- hash: 3
67
63
  segments:
68
64
  - 0
69
65
  version: "0"
@@ -72,7 +68,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
68
  requirements:
73
69
  - - ">="
74
70
  - !ruby/object:Gem::Version
75
- hash: 3
76
71
  segments:
77
72
  - 0
78
73
  version: "0"
@@ -1,29 +0,0 @@
1
- # Adds a .force_utf8 to the String class: it forces the instance
2
- # encoding to utf-8 and then normalizes in NFKC form.
3
- #
4
- # For now, we're using ActiveSupport because it has proven to be
5
- # 33% faster than UnicodeUtils.. but in the future you can never
6
- # know whether the AS::Multibyte::Chars class will be supported.
7
- #
8
- # Please read http://www.cl.cam.ac.uk/~mgk25/unicode.html#ucsutf
9
- # for more information about Unicode Normalization Forms.
10
- #
11
- # - vjt Wed Jul 21 16:51:25 CEST 2010
12
- #
13
- unless 'the string'.respond_to?(:force_utf8)
14
- class String
15
- if '1.9'.respond_to?(:force_encoding)
16
- #require 'unicode_utils/nfkc'
17
-
18
- def force_utf8
19
- #force_encoding('UTF-8')
20
- #replace UnicodeUtils.nfkc(self)
21
- replace ActiveSupport::Multibyte::Chars.new(self).normalize(:kc)
22
- end
23
- else
24
- def force_utf8
25
- replace mb_chars.normalize(:kc)
26
- end
27
- end
28
- end
29
- end