freshdesk-rails 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b510bf04039ba1788b937a9d6f1d69e2f7125011
4
+ data.tar.gz: 94230973b4130f32296b9baeec3d6dd2c8e4fc1b
5
+ SHA512:
6
+ metadata.gz: febbf8ccfcb05e184e28a2bbe9058ef088e541885b3400439f7b874403ec3348dfd1e271abd79f574cb5c10c99ef5bb1db8110f80be7911cb5e4d6acf7285f59
7
+ data.tar.gz: 4d4fa981806e613bc81001139028c5458949ec9f6fbba33da96af32a6d630ce1e3879c7dd8ad81b7394400e34dab8297c82772d09690720e78a46fa31830e036
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.2.2
4
+ before_install: gem install bundler -v 1.10.6
5
+ branches:
6
+ only:
7
+ - master
8
+ env:
9
+ - COVERALLS=1
data/CHANGELOG.md ADDED
@@ -0,0 +1,3 @@
1
+ # v0.1.0 / 2015-11-21
2
+
3
+ Create project
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in freshdesk-rails.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 Chen Yi-Cyuan
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,80 @@
1
+ # freshdesk-rails
2
+
3
+ [![Build Status](https://api.travis-ci.org/emn178/freshdesk-rails.png)](https://travis-ci.org/emn178/freshdesk-rails)
4
+ [![Coverage Status](https://coveralls.io/repos/emn178/freshdesk-rails/badge.svg?branch=master)](https://coveralls.io/r/emn178/freshdesk-rails?branch=master)
5
+
6
+ A library to integrate with [freshdesk](https://freshdesk.com/) help desk.
7
+
8
+ ## Installation
9
+
10
+ Add this line to your application's Gemfile:
11
+
12
+ ```ruby
13
+ gem 'freshdesk-rails'
14
+ ```
15
+
16
+ Make sure you have:
17
+
18
+ ```ruby
19
+ gem 'jquery-rails'
20
+ ```
21
+
22
+ And then execute:
23
+
24
+ bundle
25
+
26
+ Or install it yourself as:
27
+
28
+ gem install freshdesk-rails
29
+
30
+ For rails, create config `config/initializers/freshdesk-rails.rb`
31
+ ```ruby
32
+ FreshdeskRails.configure do |config|
33
+ config.default_locale = :en
34
+ # list your help desks with locales.
35
+ config.urls = {
36
+ 'zh-TW' => 'http://tw.example.freshdesk.com',
37
+ 'ja-JP' => 'http://jp.example.freshdesk.com',
38
+ 'en' => 'http://example.freshdesk.com'
39
+ }
40
+
41
+ # set your name of locale in cookie, this is for turbolinks
42
+ config.locale_cookie = :locale
43
+ end
44
+ ```
45
+
46
+ ## Usage
47
+
48
+ In rails controllers, you can call `redirect_to_freshdesk` to redirect with locale.
49
+ ```ruby
50
+ # using I18n.locale
51
+ redirect_to_freshdesk
52
+ ```
53
+ Or you can assaign locale manaully
54
+ ```ruby
55
+ redirect_to_freshdesk :locale => :en
56
+ ```
57
+
58
+ In view, you can use `include_popup_freshdesk` to include javascript plugin.
59
+ ```ruby
60
+ # in <head/>
61
+ include_popup_freshdesk "", {"queryString": "&widgetType=popup&formTitle=Ask+Something...&submitThanks=Thanks+for+your+feedback", "utf8": "✓", "widgetType": "popup", "buttonType": "text", "buttonText": "Help", "buttonColor": "white", "buttonBg": "#09a8be", "alignment": "2", "offset": "350px", "submitThanks": "Thanks for your feedback", "formHeight": "500px" }
62
+ ```
63
+ If you use turbolinks without enabling locale_cookie, you can assaign locale manually.
64
+ ```Ruby
65
+ # in <body/>
66
+ # using I18n.locale
67
+ include_freshdesk_locale
68
+ ```
69
+ Or
70
+ ```Ruby
71
+ include_freshdesk_locale :en
72
+ ```
73
+
74
+ ## License
75
+
76
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
77
+
78
+ ## Contact
79
+ The project's website is located at https://github.com/emn178/freshdesk-rails
80
+ Author: emn178@gmail.com
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -0,0 +1,3 @@
1
+ //= require freshdesk.turbolinks
2
+
3
+ !function(){function i(a){try{return a()}catch(b){window.console&&window.console.log&&window.console.log.apply&&window.console.log("Freshdesk Error: ",b)}}function k(b){return b&&!c.test(b)?a.location.protocol+"//"+b:b}function l(b){var c=a.createElement("link");c.setAttribute("rel","stylesheet"),c.setAttribute("type","text/css"),c.setAttribute("href",b),"undefined"!=typeof c&&a.getElementsByTagName("head")[0].appendChild(c)}function m(b){var c=a.createElement("script");c.setAttribute("type","text/javascript"),c.setAttribute("src",b),"undefined"!=typeof c&&a.getElementsByTagName("head")[0].appendChild(c)}function n(a,b,c){a&&a.addEventListener?a.addEventListener(b,c,!1):a&&a.attachEvent&&a.attachEvent("on"+b,c)}function o(a){var b;for(b in a)f.hasOwnProperty(b)&&("url"===b||"assetUrl"===b?f[b]=k(a[b]):f[b]=a[b])}function p(b){var c=b.src,d=window.navigator&&window.navigator.appVersion.split("MSIE"),e=parseFloat(d[1]);return e>=5.5&&7>e&&a.body.filters&&(b.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+c+"', sizingMethod='crop')"),b}function q(){null==$widget_attr.button&&"popup"==f.widgetType&&(class_name=b[f.alignment]||"left",$widget_attr.button=a.createElement("div"),$widget_attr.button.setAttribute("id","freshwidget-button"),$widget_attr.button.style.display="none",$widget_attr.button.className="freshwidget-button fd-btn-"+class_name,j.Version()<=10&&($widget_attr.button.className+=" ie"+j.Version()),link=a.createElement("a"),link.setAttribute("href","javascript:void(0)"),text=null,proxyLink=a.createElement("a"),proxyLink.setAttribute("href","javascript:void(0)"),null==f.backgroundImage||""==f.backgroundImage||"text"==f.buttonType?(link.className="freshwidget-theme",link.style.color=f.buttonColor,link.style.backgroundColor=f.buttonBg,link.style.borderColor=f.buttonColor,proxyLink.className="proxy-link",text=a.createTextNode(f.buttonText)):(link.className="freshwidget-customimage",text=a.createElement("img"),text.src=f.backgroundImage,text.alt=f.buttonText,text=p(text)),"top"==class_name||"bottom"==class_name?$widget_attr.button.style.left=f.offset:$widget_attr.button.style.top=f.offset,a.body.insertBefore($widget_attr.button,a.body.childNodes[0]),$widget_attr.button.appendChild(link),link.appendChild(text),(null==f.backgroundImage||""==f.backgroundImage)&&j.Version()<=10&&($widget_attr.button.appendChild(proxyLink),n(proxyLink,"click",function(){window.FreshWidget.show()}),proxyLink.style.height=link.offsetHeight+"px",proxyLink.style.width=link.offsetWidth+"px"),n(link,"click",function(){window.FreshWidget.show()}))}function r(){null!=$widget_attr.button&&(a.body.removeChild($widget_attr.button),$widget_attr.button=null)}function s(){null!=$widget_attr.container&&(a.body.removeChild($widget_attr.container),$widget_attr.container=null)}function t(){null==$widget_attr.container&&($widget_attr.container=a.createElement("div"),$widget_attr.container.className="freshwidget-container",$widget_attr.container.id="FreshWidget",""==f.responsive&&($widget_attr.container.className+=" responsive"),$widget_attr.container.style.display="none",a.body.insertBefore($widget_attr.container,a.body.childNodes[0]),$widget_attr.container.innerHTML='<div class="widget-ovelay" id="freshwidget-overlay">&nbsp;</div><div class="freshwidget-dialog" id="freshwidget-dialog"> <img alt="Close Feedback Form" id="freshwidget-close" class="widget-close" src="'+f.assetUrl+"/widget_close.png?ver="+d+'" /><div class="mobile-widget-close" id="mobile-widget-close"></div> <div class="frame-container"> <iframe title="Feedback Form" id="freshwidget-frame" src="about:blank" frameborder="0" scrolling="auto" allowTransparency="true" style="height: '+f.formHeight+'"/> </div>',$widget_attr.container=a.getElementById("FreshWidget"),$widget_attr.closeButton=a.getElementById("freshwidget-close"),$widget_attr.closeButton=p($widget_attr.closeButton),$widget_attr.mobileCloseButton=a.getElementById("mobile-widget-close"),$widget_attr.dialog=a.getElementById("freshwidget-dialog"),$widget_attr.iframe=a.getElementById("freshwidget-frame"),$widget_attr.overlay=a.getElementById("freshwidget-overlay"),$widget_attr.dialog.appendChild($widget_attr.iframe),u(),n($widget_attr.closeButton,"click",function(){window.FreshWidget.close()}),n($widget_attr.mobileCloseButton,"click",function(){window.FreshWidget.close()}),n($widget_attr.overlay,"click",function(){window.FreshWidget.close()}),n($widget_attr.iframe,"load",function(){$widget_attr.iframeLoaded||-1==$widget_attr.iframe.src.indexOf("/widgets/feedback_widget/new?")||($widget_attr.iframeLoaded=!0)}))}function u(){$widget_attr.iframe.src=f.url+"/loading.html?ver="+d}function v(){$widget_attr.iframe.src=f.url+"/widgets/feedback_widget/new?"+f.queryString}function w(){scroll(0,0),$widget_attr.container.style.display="block",f.responsive||(e=a.body.style.overflow,a.body.style.overflow="hidden"),j.Version()>8&&""==f.screenshot&&html2canvas([a.body],{ignoreIds:"FreshWidget|freshwidget-button",proxy:!1,onrendered:function(b){var c=b.toDataURL(),d=c;sendMessage=setInterval(function(){$widget_attr.iframeLoaded&&(a.getElementById("freshwidget-frame").contentWindow.postMessage(d,"*"),clearInterval(sendMessage))},500)}}),$widget_attr.iframeLoaded||v()}function x(){$widget_attr.container.style.display="none",f.responsive||(a.body.style.overflow=e||"auto"),v()}function y(a){o(a),j.Version()>8&&"undefined"==typeof html2canvas&&""==f.screenshot&&m(f.assetUrl+"/html2canvas.js?ver="+d),n(window,"load",function(){q(),t()}),l(f.assetUrl+"/freshwidget.css?ver="+d)}function z(a){o(a),r(),s(),$widget_attr.iframeLoaded=!1,q(),t()}function A(){r(),s(),delete window.FreshWidget}var e,a=window.document,b={1:"top",2:"right",3:"bottom",4:"left",top:"top",right:"right",bottom:"bottom",left:"left"},c=/^[a-zA-Z]+:\/\//,d=2,f={widgetId:0,buttonText:"Support",buttonBg:"#7eb600",buttonColor:"white",backgroundImage:null,alignment:"left",offset:"35%",url:"http://support.freshdesk.com",assetUrl:"https://s3.amazonaws.com/assets.freshdesk.com/widget",queryString:"",screenshot:"",formHeight:"500px",responsive:"",widgetType:"popup",buttonType:"text"};$widget_attr={button:null,dialog:null,container:null,overlay:null,iframe:null,iframeLoaded:!1,closeButton:null,mobileCloseButton:null};var j={Version:function(){var a=999;return-1!=navigator.appVersion.indexOf("MSIE")&&(a=parseFloat(navigator.appVersion.split("MSIE")[1])),a}},B={init:function(a,b){i(function(){return y(b)})},show:function(){i(function(){return w()})},close:function(){i(function(){return x()})},iframe:function(){return $widget_attr.iframe},update:function(a){i(function(){return z(a)})},destroy:function(){i(function(){return A()})}};window.FreshWidget||(window.FreshWidget=B)}();
@@ -0,0 +1,69 @@
1
+ ;(function($, undefined) {
2
+ var FreshdeskRails = {}, widgets = $(), iframe, button, locale, orig_locale;
3
+
4
+ window.FreshdeskRails = FreshdeskRails;
5
+
6
+ function openIframe() {
7
+ button.unbind('click', openIframe);
8
+ updateIframeLocale(orig_locale);
9
+ }
10
+
11
+ function updateIframeLocale (old_locale) {
12
+ if(locale == old_locale) {
13
+ return;
14
+ }
15
+ var url = FreshdeskRails.urls[locale];
16
+ var old_url = FreshdeskRails.urls[old_locale];
17
+ if(url == old_url) {
18
+ return;
19
+ }
20
+ var iframe_url = iframe.attr('src');
21
+ iframe_url = iframe_url.replace(old_url, url);
22
+ iframe.attr('src', iframe_url);
23
+ }
24
+
25
+ function updateLocale(new_locale) {
26
+ if(locale == new_locale) {
27
+ return;
28
+ }
29
+ var old_locale = locale;
30
+ locale = new_locale;
31
+ updateIframeLocale(old_locale);
32
+ }
33
+
34
+ $(document).on('page:before-unload', function() {
35
+ if(!widgets.length) {
36
+ widgets = $('#FreshWidget, #freshwidget-button');
37
+ iframe = $('#freshwidget-frame');
38
+ button = $('.freshwidget-theme');
39
+ button.click(openIframe);
40
+ $('#freshwidget-close, #freshwidget-overlay').click(function () {
41
+ updateIframeLocale(orig_locale);
42
+ });
43
+ }
44
+ });
45
+ $(document).on('page:load', function() {
46
+ $('body').append(widgets);
47
+ if(FreshdeskRails.locale) {
48
+ updateLocale(FreshdeskRails.locale);
49
+ delete FreshdeskRails.locale;
50
+ } else if(FreshdeskRails.locale_cookie) {
51
+ updateLocale(getCookie(FreshdeskRails.locale_cookie));
52
+ }
53
+ });
54
+
55
+ $(document).ready(function () {
56
+ if(FreshdeskRails.locale) {
57
+ orig_locale = locale = FreshdeskRails.locale;
58
+ delete FreshdeskRails.locale;
59
+ } else if(FreshdeskRails.locale_cookie) {
60
+ orig_locale = locale = getCookie(FreshdeskRails.locale_cookie);
61
+ }
62
+ });
63
+
64
+ function getCookie(name) {
65
+ var value = "; " + document.cookie;
66
+ var parts = value.split("; " + name + "=");
67
+ if (parts.length == 2) return parts.pop().split(";").shift();
68
+ }
69
+ })(jQuery);
@@ -0,0 +1,27 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'freshdesk-rails/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "freshdesk-rails"
8
+ spec.version = FreshdeskRails::VERSION
9
+ spec.authors = ["Chen Yi-Cyuan"]
10
+ spec.email = ["emn178@gmail.com"]
11
+
12
+ spec.summary = %q{A library to integrate with freshdesk help desk.}
13
+ spec.description = %q{A library to integrate with freshdesk help desk.}
14
+ spec.homepage = "https://github.com/emn178/freshdesk-rails"
15
+ spec.license = "MIT"
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ spec.require_paths = ["lib"]
19
+
20
+ spec.add_development_dependency "bundler", "~> 1.10"
21
+ spec.add_development_dependency "rake", "~> 10.0"
22
+ spec.add_development_dependency "actionview"
23
+ spec.add_development_dependency "rspec"
24
+ spec.add_development_dependency "rspec-its"
25
+ spec.add_development_dependency "simplecov"
26
+ spec.add_development_dependency "coveralls"
27
+ end
@@ -0,0 +1,15 @@
1
+ module FreshdeskRails
2
+ class Configuration
3
+ attr_accessor :urls, :default_locale, :locale_cookie
4
+
5
+ def initialize(options = {})
6
+ options.each { |key, value|
7
+ instance_variable_set("@#{key}", value)
8
+ }
9
+ end
10
+
11
+ def validate!
12
+ raise 'default_locale is not definded in urls.' if Helper.indifferent_access(urls, default_locale).nil?
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,24 @@
1
+ module FreshdeskRails
2
+ module ControllerHelper
3
+ def freshdesk_url(options = {})
4
+ locale = freshdesk_locale(Helper.indifferent_access(options, :locale))
5
+ Helper.indifferent_access(FreshdeskRails.configuration.urls, locale)
6
+ end
7
+
8
+ def redirect_to_freshdesk(options = {})
9
+ redirect_to(freshdesk_url(options))
10
+ end
11
+
12
+ private
13
+
14
+ def freshdesk_locale(locale)
15
+ locale = locale || Helper.current_locale
16
+ urls = FreshdeskRails.configuration.urls
17
+ if Helper.indifferent_access(urls, locale).nil?
18
+ FreshdeskRails.configuration.default_locale
19
+ else
20
+ locale
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,15 @@
1
+ if defined?(::Rails::Engine)
2
+ module FreshdeskRails
3
+ class Engine < ::Rails::Engine
4
+ initializer "freshdesk" do
5
+ ActiveSupport.on_load :action_controller do
6
+ include FreshdeskRails::ControllerHelper
7
+ end
8
+ ActiveSupport.on_load :action_view do
9
+ include FreshdeskRails::ViewHelper
10
+ end
11
+ Rails.application.config.assets.precompile += %w( freshdesk.js )
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,11 @@
1
+ module FreshdeskRails
2
+ module Helper
3
+ def self.indifferent_access(hash, key)
4
+ hash[key.to_s] || hash[key.to_sym]
5
+ end
6
+
7
+ def self.current_locale
8
+ return I18n.locale if defined?(::I18n)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ module FreshdeskRails
2
+ VERSION = "0.1.0"
3
+ end
@@ -0,0 +1,39 @@
1
+ require 'json'
2
+
3
+ module FreshdeskRails
4
+ module ViewHelper
5
+ include FreshdeskRails::ControllerHelper
6
+
7
+ def freshdesk_tag
8
+ javascript_include_tag("freshdesk.js")
9
+ end
10
+
11
+ def include_popup_freshdesk(arg1, widget_options, options = {})
12
+ freshdesk_tag + freshdesk_script_tag(arg1, widget_options, options)
13
+ end
14
+
15
+ def include_freshdesk_locale(locale = nil)
16
+ locale = freshdesk_locale(locale)
17
+ javascript_tag "window.FreshdeskRails.locale=#{locale.to_json};"
18
+ end
19
+
20
+ private
21
+
22
+ def freshdesk_script_tag(arg1, widget_options, options = {})
23
+ javascript_tag freshdesk_init_script(arg1, widget_options, options) + freshdesk_urls_script
24
+ end
25
+
26
+ def freshdesk_init_script(arg1, widget_options, options = {})
27
+ widget_options[:url] = freshdesk_url(options)
28
+ "FreshWidget.init(\"#{arg1}\", #{widget_options.to_json});"
29
+ end
30
+
31
+ def freshdesk_urls_script
32
+ script = "window.FreshdeskRails.urls=#{FreshdeskRails.configuration.urls.to_json};"
33
+ if FreshdeskRails.configuration.locale_cookie
34
+ script += "window.FreshdeskRails.locale_cookie=#{FreshdeskRails.configuration.locale_cookie.to_json};"
35
+ end
36
+ script
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,17 @@
1
+ require "freshdesk-rails/version"
2
+ require "freshdesk-rails/configuration"
3
+ require "freshdesk-rails/helper"
4
+ require "freshdesk-rails/controller_helper"
5
+ require "freshdesk-rails/view_helper"
6
+ require "freshdesk-rails/engine"
7
+
8
+ module FreshdeskRails
9
+ def self.configure(&block)
10
+ yield configuration
11
+ configuration.validate!
12
+ end
13
+
14
+ def self.configuration
15
+ @configuration ||= Configuration.new
16
+ end
17
+ end
metadata ADDED
@@ -0,0 +1,160 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: freshdesk-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Chen Yi-Cyuan
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-11-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.10'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.10'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: actionview
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec-its
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: coveralls
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: A library to integrate with freshdesk help desk.
112
+ email:
113
+ - emn178@gmail.com
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".gitignore"
119
+ - ".rspec"
120
+ - ".travis.yml"
121
+ - CHANGELOG.md
122
+ - Gemfile
123
+ - LICENSE.txt
124
+ - README.md
125
+ - Rakefile
126
+ - app/assets/javascripts/freshdesk.js
127
+ - app/assets/javascripts/freshdesk.turbolinks.js
128
+ - freshdesk-rails.gemspec
129
+ - lib/freshdesk-rails.rb
130
+ - lib/freshdesk-rails/configuration.rb
131
+ - lib/freshdesk-rails/controller_helper.rb
132
+ - lib/freshdesk-rails/engine.rb
133
+ - lib/freshdesk-rails/helper.rb
134
+ - lib/freshdesk-rails/version.rb
135
+ - lib/freshdesk-rails/view_helper.rb
136
+ homepage: https://github.com/emn178/freshdesk-rails
137
+ licenses:
138
+ - MIT
139
+ metadata: {}
140
+ post_install_message:
141
+ rdoc_options: []
142
+ require_paths:
143
+ - lib
144
+ required_ruby_version: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ required_rubygems_version: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ requirements: []
155
+ rubyforge_project:
156
+ rubygems_version: 2.4.8
157
+ signing_key:
158
+ specification_version: 4
159
+ summary: A library to integrate with freshdesk help desk.
160
+ test_files: []