diff --git a/README.md b/README.md index 5ded5bd..e0d78fe 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,7 @@ Set your API key and client name in `config/application.rb`: ```ruby config.filestack_rails.api_key = "Your Filestack API Key" config.filestack_rails.client_name = "custom_client_name" +config.filestack_rails.cname = "custom_cname" ``` The client name defaults to "filestack_client" and is injected into your client-side Javascript. This is because v3 of the File Picker lives in the Javascript of your web application. For more information, please see our [File Picker documenation](https://www.filestack.com/docs/javascript-api/pick-v3). diff --git a/app/helpers/filestack_rails/application_helper.rb b/app/helpers/filestack_rails/application_helper.rb index 7f1bb06..30644c0 100644 --- a/app/helpers/filestack_rails/application_helper.rb +++ b/app/helpers/filestack_rails/application_helper.rb @@ -13,9 +13,9 @@ def filestack_js_init_tag signature, policy = get_policy_and_signature javascript_string = if policy && signature "var #{client_name} = filestack.init('#{apikey}'," \ - "{'signature': '#{signature}', 'policy': '#{policy}'});" + "{'signature': '#{signature}', 'policy': '#{policy}'}, '#{cname}');" else - "var #{client_name} = filestack.init('#{apikey}');" + "var #{client_name} = filestack.init('#{apikey}', '', '#{cname}');" end javascript_tag javascript_string end @@ -46,6 +46,10 @@ def filestack_image(url, options = {}) private + def cname + ::Rails.application.config.filestack_rails.cname + end + def create_javascript_for_picker(callback, options) client_name, = get_client_and_api_key json_string = if options.nil? diff --git a/lib/filestack_rails/configuration.rb b/lib/filestack_rails/configuration.rb index 1edd780..80ae230 100644 --- a/lib/filestack_rails/configuration.rb +++ b/lib/filestack_rails/configuration.rb @@ -1,6 +1,6 @@ module FilestackRails class Configuration - attr_accessor :api_key, :client_name, :secret_key, :security, :expiry, :app_secret + attr_accessor :api_key, :client_name, :secret_key, :security, :expiry, :app_secret, :cname def api_key @api_key or raise "Set config.filepicker_rails.api_key" diff --git a/spec/lib/configuration_spec.rb b/spec/lib/configuration_spec.rb index ad43db0..e0df73f 100644 --- a/spec/lib/configuration_spec.rb +++ b/spec/lib/configuration_spec.rb @@ -36,4 +36,15 @@ expect(configuration.security.signature) end end + + describe "#cname" do + it "has no cname" do + expect(configuration.cname).to be(nil) + end + + it "has cname" do + configuration.cname = "fs.mycname.com" + expect(configuration.cname).to eq "fs.mycname.com" + end + end end