diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 1c2c1d5..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-/.bundle/
-/.yardoc
-/Gemfile.lock
-/_yardoc/
-/coverage/
-/doc/
-/pkg/
-/spec/reports/
-/tmp/
diff --git a/.rspec b/.rspec
deleted file mode 100644
index 9dd03e0..0000000
--- a/.rspec
+++ /dev/null
@@ -1,2 +0,0 @@
---format documentation
---color
diff --git a/.vscode/launch.json b/.vscode/launch.json
deleted file mode 100644
index 4b6a3f5..0000000
--- a/.vscode/launch.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "version": "0.2.0",
- "configurations": [
- {
- "name": "Debug Local File",
- "type": "Ruby",
- "request": "launch",
- "cwd": "${workspaceRoot}",
- "program": "${workspaceRoot}/main.rb"
- },
- {
- "name": "Listen for rdebug-ide",
- "type": "Ruby",
- "request": "attach",
- "cwd": "${workspaceRoot}",
- "remoteHost": "127.0.0.1",
- "remotePort": "1234",
- "remoteWorkspaceRoot": "${workspaceRoot}"
- },
- {
- "name": "Rails server",
- "type": "Ruby",
- "request": "launch",
- "cwd": "${workspaceRoot}",
- "program": "${workspaceRoot}/bin/rails",
- "args": [
- "server"
- ]
- },
- {
- "name": "RSpec - all",
- "type": "Ruby",
- "request": "launch",
- "cwd": "${workspaceRoot}",
- "program": "${workspaceRoot}/bin/rspec",
- "args": [
- "-I",
- "${workspaceRoot}"
- ]
- },
- {
- "name": "RSpec - active spec file only",
- "type": "Ruby",
- "request": "launch",
- "cwd": "${workspaceRoot}",
- "program": "${workspaceRoot}/bin/rspec",
- "args": [
- "-I",
- "${workspaceRoot}",
- "${file}"
- ]
- },
- {
- "name": "Cucumber",
- "type": "Ruby",
- "request": "launch",
- "cwd": "${workspaceRoot}",
- "program": "${workspaceRoot}/bin/cucumber"
- }
- ]
-}
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
deleted file mode 100644
index c67846a..0000000
--- a/.vscode/settings.json
+++ /dev/null
@@ -1,4 +0,0 @@
-// Place your settings in this file to overwrite default and user settings.
-{
- "editor.tabSize": 2
-}
\ No newline at end of file
diff --git a/Gemfile b/Gemfile
deleted file mode 100644
index 133a0be..0000000
--- a/Gemfile
+++ /dev/null
@@ -1,4 +0,0 @@
-source 'https://rubygems.org'
-
-# Specify your gem's dependencies in txtextcontrol-reportingcloud.gemspec
-gemspec
diff --git a/LICENSE.md b/LICENSE.md
deleted file mode 100644
index 8197eb2..0000000
--- a/LICENSE.md
+++ /dev/null
@@ -1,18 +0,0 @@
-## Copyright © 2019, Text Control GmbH. All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
-following conditions are met:
-
-- Redistributions of source code must retain the above copyright notice, this list of conditions and the following
- disclaimer.
-
-- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/README.md b/README.md
deleted file mode 100644
index b03a33b..0000000
--- a/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-# ReportingCloud Ruby SDK
-
-[](https://badge.fury.io/rb/txtextcontrol-reportingcloud)
-
-This is the official Ruby SDK for the ReportingCloud Web API. It is authored, maintained and fully supported by [Text Control GmbH](http://www.textcontrol.com).
-
-[http://www.reporting.cloud](http://www.reporting.cloud)
-
-Before using ReportingCloud, please sign up to the service:
-
-[https://portal.reporting.cloud](https://portal.reporting.cloud)
-
-## Installation
-
-Add this line to your application's Gemfile:
-
-```ruby
-gem 'txtextcontrol-reportingcloud'
-```
-
-And then execute:
-
- $ bundle
-
-Or install it yourself as:
-
- $ gem install txtextcontrol-reportingcloud
-
-## API documentation (YARD)
-
-All the source code in this library is documented using [YARD](http://yardoc.org/).
-
-You can read the [API documentation](https://textcontrol.github.io/txtextcontrol-reportingcloud-ruby/) online, or build it yourself, using the following command:
-
- $ yard doc
-
-The resultant set of HTML files will be written to `~/txtextcontrol-reportingcloud-ruby/doc`.
-
-If you don't have YARD already installed, you can install it with RubyGems with the following command:
-
- $ gem install yard
-
-## Contributing
-
-Bug reports and pull requests are welcome on GitHub at https://github.com/TextControl/txtextcontrol-reportingcloud-ruby.
-
diff --git a/Rakefile b/Rakefile
deleted file mode 100644
index cb7386a..0000000
--- a/Rakefile
+++ /dev/null
@@ -1,6 +0,0 @@
-require "bundler/gem_tasks"
-require "rspec/core/rake_task"
-
-RSpec::Core::RakeTask.new(:spec)
-
-task :default => :spec
diff --git a/String.html b/String.html
new file mode 100644
index 0000000..81250e6
--- /dev/null
+++ b/String.html
@@ -0,0 +1,258 @@
+
+
+
+
+
+
+ Class: String
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: String
+
+
+
+
+
+
+
+ Inherits:
+
+ Object
+
+
+ show all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in:
+ lib/core_ext/string.rb
+
+
+
+
+
Overview
+
+
+
Extensions to class String.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Instance Method Summary
+ collapse
+
+
+
+
+
+
+
+ #remove_first_and_last ⇒ String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Removes the first and last characters from a string and returns the
+manipulated string.
+
+
+
+
+
+
+
+
+
+
+
+
Instance Method Details
+
+
+
+
+
+ #remove_first_and_last ⇒ String
+
+
+
+
+
+
+
+
+
Removes the first and last characters from a string and returns the
+manipulated string.
+
+
+
+
+
+
+
+
+
+
+21
+22
+23
+24
+25
+26
+27
+
+
+ # File 'lib/core_ext/string.rb', line 21
+
+def remove_first_and_last
+ if self . length == 0 then return ' ' end
+ result = self . dup
+ result [ 0 ] = ' '
+ if result . length > 0 then result [ result . length - 1 ] = ' ' end
+ return result
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TXTextControl.html b/TXTextControl.html
new file mode 100644
index 0000000..87eee05
--- /dev/null
+++ b/TXTextControl.html
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+ Module: TXTextControl
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: TXTextControl
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in:
+ lib/txtextcontrol/reportingcloud.rb,
+ lib/txtextcontrol/reportingcloud/api_key.rb, lib/txtextcontrol/reportingcloud/version.rb, lib/txtextcontrol/reportingcloud/template.rb, lib/txtextcontrol/reportingcloud/merge_body.rb, lib/txtextcontrol/reportingcloud/append_body.rb, lib/txtextcontrol/reportingcloud/merge_block.rb, lib/txtextcontrol/reportingcloud/merge_field.rb, lib/txtextcontrol/reportingcloud/template_info.rb, lib/txtextcontrol/reportingcloud/incorrect_word.rb, lib/txtextcontrol/reportingcloud/merge_settings.rb, lib/txtextcontrol/reportingcloud/reportingcloud.rb, lib/txtextcontrol/reportingcloud/append_document.rb, lib/txtextcontrol/reportingcloud/account_settings.rb, lib/txtextcontrol/reportingcloud/document_settings.rb, lib/txtextcontrol/reportingcloud/find_and_replace_body.rb, lib/txtextcontrol/reportingcloud/template_data_validator.rb, lib/txtextcontrol/reportingcloud/template_name_validator.rb
+
+
+
+
+
+
Overview
+
+
+
+
Defined Under Namespace
+
+
+
+ Modules: ReportingCloud
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TXTextControl/ReportingCloud.html b/TXTextControl/ReportingCloud.html
new file mode 100644
index 0000000..8f1efc7
--- /dev/null
+++ b/TXTextControl/ReportingCloud.html
@@ -0,0 +1,186 @@
+
+
+
+
+
+
+ Module: TXTextControl::ReportingCloud
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Module: TXTextControl::ReportingCloud
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in:
+ lib/txtextcontrol/reportingcloud.rb,
+ lib/txtextcontrol/reportingcloud/api_key.rb, lib/txtextcontrol/reportingcloud/version.rb, lib/txtextcontrol/reportingcloud/template.rb, lib/txtextcontrol/reportingcloud/merge_body.rb, lib/txtextcontrol/reportingcloud/append_body.rb, lib/txtextcontrol/reportingcloud/merge_block.rb, lib/txtextcontrol/reportingcloud/merge_field.rb, lib/txtextcontrol/reportingcloud/template_info.rb, lib/txtextcontrol/reportingcloud/incorrect_word.rb, lib/txtextcontrol/reportingcloud/merge_settings.rb, lib/txtextcontrol/reportingcloud/reportingcloud.rb, lib/txtextcontrol/reportingcloud/append_document.rb, lib/txtextcontrol/reportingcloud/account_settings.rb, lib/txtextcontrol/reportingcloud/document_settings.rb, lib/txtextcontrol/reportingcloud/find_and_replace_body.rb, lib/txtextcontrol/reportingcloud/template_data_validator.rb, lib/txtextcontrol/reportingcloud/template_name_validator.rb
+
+
+
+
+
+
Overview
+
+
+
The ReportingCloud module.
+
+
+
+
+
+
+
+
Defined Under Namespace
+
+
+
+
+
+ Classes: APIKey , AccountSettings , AppendBody , AppendDocument , DocumentSettings , FindAndReplaceBody , IncorrectWord , MergeBlock , MergeBody , MergeField , MergeSettings , ReportingCloud , Template , TemplateDataValidator , TemplateInfo , TemplateNameValidator
+
+
+
+
+
Constant Summary
+
+
+ DEFAULT_BASE_URI =
+
+
+
+
Default API base url.
+
+
+
+
+
+
+
+
+
+ " https://api.reporting.cloud "
+
+ DEFAULT_VERSION =
+
+
+
+
Default API version.
+
+
+
+
+
+
+
+
+
+ " v1 "
+
+ DEFAULT_TIMEOUT =
+
+
+
+
Default http request timeout in seconds.
+
+
+
+
+
+
+
+
+
+ 10
+
+ VERSION =
+
+
+ " 1.2.1 "
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TXTextControl/ReportingCloud/APIKey.html b/TXTextControl/ReportingCloud/APIKey.html
new file mode 100644
index 0000000..d32b45c
--- /dev/null
+++ b/TXTextControl/ReportingCloud/APIKey.html
@@ -0,0 +1,456 @@
+
+
+
+
+
+
+ Class: TXTextControl::ReportingCloud::APIKey
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: TXTextControl::ReportingCloud::APIKey
+
+
+
+
+
+
+
+ Inherits:
+
+ Object
+
+
+ Object
+
+ TXTextControl::ReportingCloud::APIKey
+
+
+ show all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in:
+ lib/txtextcontrol/reportingcloud/api_key.rb
+
+
+
+
+
Overview
+
+
+
Represents a ReportingCloud API key object.
+
+
+
+
+
+
+
+
+
Instance Attribute Summary collapse
+
+
+
+
+
+ #is_active ⇒ Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Specifies whether the API Key is active or not (not used yet).
+
+
+
+
+
+
+
+
+ #key ⇒ String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The actual API Key that belongs to the account.
+
+
+
+
+
+
+
+
+
+
+
+
+ Instance Method Summary
+ collapse
+
+
+
+
+
+
+
Constructor Details
+
+
+
+
+ #initialize (key, is_active = true) ⇒ APIKey
+
+
+
+
+
+
+
+
+
Returns a new instance of APIKey
+
+
+
+
+
+
+
+
+
+
+26
+27
+28
+29
+
+
+ # File 'lib/txtextcontrol/reportingcloud/api_key.rb', line 26
+
+def initialize ( key , is_active = true )
+ self . key = key
+ @is_active = is_active
+end
+
+
+
+
+
+
+
+
+
Instance Attribute Details
+
+
+
+
+
+
+ #is_active ⇒ Boolean
+
+
+
+
+
+
+
+
+
Specifies whether the API Key is active or not (not used yet).
+
+
+
+
+
+
+
+
+
+
+21
+22
+23
+
+
+ # File 'lib/txtextcontrol/reportingcloud/api_key.rb', line 21
+
+def is_active
+ @is_active
+end
+
+
+
+
+
+
+
+
+
+
+ #key ⇒ String
+
+
+
+
+
+
+
+
+
The actual API Key that belongs to the account.
+
+
+
+
+
+
+
+
+
+
+21
+22
+23
+
+
+ # File 'lib/txtextcontrol/reportingcloud/api_key.rb', line 21
+
+def key
+ @key
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TXTextControl/ReportingCloud/AccountSettings.html b/TXTextControl/ReportingCloud/AccountSettings.html
new file mode 100644
index 0000000..18195ec
--- /dev/null
+++ b/TXTextControl/ReportingCloud/AccountSettings.html
@@ -0,0 +1,1057 @@
+
+
+
+
+
+
+ Class: TXTextControl::ReportingCloud::AccountSettings
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: TXTextControl::ReportingCloud::AccountSettings
+
+
+
+
+
+
+
+ Inherits:
+
+ Object
+
+
+ Object
+
+ TXTextControl::ReportingCloud::AccountSettings
+
+
+ show all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in:
+ lib/txtextcontrol/reportingcloud/account_settings.rb
+
+
+
+
+
Overview
+
+
+
Represents ReportingCloud account settings.
+
+
+
+
+
+
+
+
+
Instance Attribute Summary collapse
+
+
+
+
+
+ #created_documents ⇒ Integer
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
The number of created documents in the current month.
+
+
+
+
+
+
+
+
+ #max_documents ⇒ Integer
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
The maximum number of documents that can be created per month.
+
+
+
+
+
+
+
+
+ #max_templates ⇒ Integer
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
The maximum number of templates that can be uploaded to the template
+storage.
+
+
+
+
+
+
+
+
+ #serial_number ⇒ String, Symbol
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
The serial number that is attached to the account.
+
+
+
+
+
+
+
+
+ #uploaded_templates ⇒ Integer
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
The number of uploaded templates to the template storage.
+
+
+
+
+
+
+
+
+ #valid_until ⇒ DateTime
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
The date until the current subscription is valid.
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Method Summary
+ collapse
+
+
+
+
+
+ Instance Method Summary
+ collapse
+
+
+
+
+
+
+
Constructor Details
+
+
+
+
+ #initialize (serial_number, created_documents, uploaded_templates, max_documents, max_templates, valid_until = nil) ⇒ AccountSettings
+
+
+
+
+
+
+
+
+
Returns a new instance of AccountSettings
+
+
+
+
+
+
+
+
+
+
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+
+
+ # File 'lib/txtextcontrol/reportingcloud/account_settings.rb', line 51
+
+def initialize ( serial_number , created_documents , uploaded_templates , max_documents , max_templates , valid_until = nil )
+ case serial_number . downcase
+ when " trial "
+ @serial_number = :trial
+ when " free "
+ @serial_number = :free
+ else
+ @serial_number = serial_number
+ end
+ @created_documents = Integer ( created_documents )
+ @uploaded_templates = Integer ( uploaded_templates )
+ @max_documents = Integer ( max_documents )
+ @max_templates = Integer ( max_templates )
+ case valid_until
+ when DateTime
+ @valid_until = valid_until
+ when String
+ @valid_until = DateTime . iso8601 ( valid_until )
+ else
+ @valid_until = nil
+ end
+end
+
+
+
+
+
+
+
+
+
Instance Attribute Details
+
+
+
+
+
+
+ #created_documents ⇒ Integer
+
+
+
+
+
+
+
+
+
The number of created documents in the current month.
+
+
+
+
+
+
+
+
+
+
+31
+32
+33
+
+
+ # File 'lib/txtextcontrol/reportingcloud/account_settings.rb', line 31
+
+def created_documents
+ @created_documents
+end
+
+
+
+
+
+
+
+
+
+
+ #max_documents ⇒ Integer
+
+
+
+
+
+
+
+
+
The maximum number of documents that can be created per month.
+
+
+
+
+
+
+
+
+
+
+31
+32
+33
+
+
+ # File 'lib/txtextcontrol/reportingcloud/account_settings.rb', line 31
+
+def max_documents
+ @max_documents
+end
+
+
+
+
+
+
+
+
+
+
+ #max_templates ⇒ Integer
+
+
+
+
+
+
+
+
+
The maximum number of templates that can be uploaded to the template
+storage.
+
+
+
+
+
+
+
+
+
+
+31
+32
+33
+
+
+ # File 'lib/txtextcontrol/reportingcloud/account_settings.rb', line 31
+
+def max_templates
+ @max_templates
+end
+
+
+
+
+
+
+
+
+
+
+ #serial_number ⇒ String , Symbol
+
+
+
+
+
+
+
+
+
The serial number that is attached to the account. Possible values are
+:free, :trial and a 13 character long serial
+number.
+
+
+
+
+
+
+
+
+
+
+31
+32
+33
+
+
+ # File 'lib/txtextcontrol/reportingcloud/account_settings.rb', line 31
+
+def serial_number
+ @serial_number
+end
+
+
+
+
+
+
+
+
+
+
+ #uploaded_templates ⇒ Integer
+
+
+
+
+
+
+
+
+
The number of uploaded templates to the template storage.
+
+
+
+
+
+
+
+
+
+
+31
+32
+33
+
+
+ # File 'lib/txtextcontrol/reportingcloud/account_settings.rb', line 31
+
+def uploaded_templates
+ @uploaded_templates
+end
+
+
+
+
+
+
+
+
+
+
+ #valid_until ⇒ DateTime
+
+
+
+
+
+
+
+
+
The date until the current subscription is valid. Can be nil.
+
+
+
+
+
+
+
+
+
+
+31
+32
+33
+
+
+ # File 'lib/txtextcontrol/reportingcloud/account_settings.rb', line 31
+
+def valid_until
+ @valid_until
+end
+
+
+
+
+
+
+
+
+
+
Class Method Details
+
+
+
+
+
+ .from_camelized_hash (hash) ⇒ AccountSettings
+
+
+
+
+
+
+
+
+
Creates an AccountSettings instance from a hash.
+
+
+
+
+
+
+
+
+
+
+77
+78
+79
+80
+81
+82
+83
+84
+85
+
+
+ # File 'lib/txtextcontrol/reportingcloud/account_settings.rb', line 77
+
+def self . from_camelized_hash ( hash )
+ sn = hash [ " serialNumber " ]
+ cd = hash [ " createdDocuments " ]
+ ut = hash [ " uploadedTemplates " ]
+ md = hash [ " maxDocuments " ]
+ mt = hash [ " maxTemplates " ]
+ vu = hash [ " validUntil " ]
+ return AccountSettings . new ( sn , cd , ut , md , mt , vu )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TXTextControl/ReportingCloud/AppendBody.html b/TXTextControl/ReportingCloud/AppendBody.html
new file mode 100644
index 0000000..9a208f3
--- /dev/null
+++ b/TXTextControl/ReportingCloud/AppendBody.html
@@ -0,0 +1,516 @@
+
+
+
+
+
+
+ Class: TXTextControl::ReportingCloud::AppendBody
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: TXTextControl::ReportingCloud::AppendBody
+
+
+
+
+
+
+
+ Inherits:
+
+ Object
+
+
+ Object
+
+ TXTextControl::ReportingCloud::AppendBody
+
+
+ show all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in:
+ lib/txtextcontrol/reportingcloud/append_body.rb
+
+
+
+
+
Overview
+
+
+
+
+
Instance Attribute Summary collapse
+
+
+
+
+
+
+
+ Instance Method Summary
+ collapse
+
+
+
+
+
+
+
Constructor Details
+
+
+
+
+ #initialize (documents, document_settings = nil) ⇒ AppendBody
+
+
+
+
+
+
+
+
+
Returns a new instance of AppendBody
+
+
+
+
+
+
+
+
+
+
+
+
+
+27
+28
+29
+30
+
+
+ # File 'lib/txtextcontrol/reportingcloud/append_body.rb', line 27
+
+def initialize ( documents , document_settings = nil )
+ self . documents = documents
+ self . document_settings = document_settings
+end
+
+
+
+
+
+
+
+
+
Instance Attribute Details
+
+
+
+
+
+
+ #document_settings ⇒ DocumentSettings
+
+
+
+
+
+
+
+
+
Optional. Document settings to specify document properties such as title
+and author.
+
+
+
+
+
+
+
+
+
+
+25
+26
+27
+
+
+ # File 'lib/txtextcontrol/reportingcloud/append_body.rb', line 25
+
+def document_settings
+ @document_settings
+end
+
+
+
+
+
+
+
+
+
+
+ #documents ⇒ Array<AppendDocument >
+
+
+
+
+
+
+
+
+
The documents that are appended.
+
+
+
+
+
+
+
+
+
+
+25
+26
+27
+
+
+ # File 'lib/txtextcontrol/reportingcloud/append_body.rb', line 25
+
+def documents
+ @documents
+end
+
+
+
+
+
+
+
+
+
+
Instance Method Details
+
+
+
+
+
+ #to_camelized_hash ⇒ Hash
+
+
+
+
+
+
+
+
+
Converts an AppendBody instance to a hash while converting the attribute
+names from snake case to camel case.
+
+
+
+
+
+
+
+
+
+
+62
+63
+64
+65
+66
+67
+
+
+ # File 'lib/txtextcontrol/reportingcloud/append_body.rb', line 62
+
+def to_camelized_hash
+ return {
+ " documents " => @documents . map { | d | d . to_camelized_hash } ,
+ " documentSettings " => @document_settings . nil? ? nil : @document_settings . to_camelized_hash
+ }
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TXTextControl/ReportingCloud/AppendDocument.html b/TXTextControl/ReportingCloud/AppendDocument.html
new file mode 100644
index 0000000..b76174b
--- /dev/null
+++ b/TXTextControl/ReportingCloud/AppendDocument.html
@@ -0,0 +1,534 @@
+
+
+
+
+
+
+ Class: TXTextControl::ReportingCloud::AppendDocument
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: TXTextControl::ReportingCloud::AppendDocument
+
+
+
+
+
+
+
+ Inherits:
+
+ Object
+
+
+ Object
+
+ TXTextControl::ReportingCloud::AppendDocument
+
+
+ show all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in:
+ lib/txtextcontrol/reportingcloud/append_document.rb
+
+
+
+
+
Overview
+
+
+
+
+
Instance Attribute Summary collapse
+
+
+
+
+
+ #document ⇒ String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The document as a Base64 encoded string.
+
+
+
+
+
+
+
+
+ #document_divider ⇒ Symbol
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The document divider option.
+
+
+
+
+
+
+
+
+
+
+
+
+ Instance Method Summary
+ collapse
+
+
+
+
+
+
+
Constructor Details
+
+
+
+
+ #initialize (document, document_divider = :none) ⇒ AppendDocument
+
+
+
+
+
+
+
+
+
Returns a new instance of AppendDocument
+
+
+
+
+
+
+
+
+
+
+
+
+
+25
+26
+27
+28
+
+
+ # File 'lib/txtextcontrol/reportingcloud/append_document.rb', line 25
+
+def initialize ( document , document_divider = :none )
+ self . document = document
+ @document_divider = document_divider
+end
+
+
+
+
+
+
+
+
+
Instance Attribute Details
+
+
+
+
+
+
+ #document ⇒ String
+
+
+
+
+
+
+
+
+
The document as a Base64 encoded string.
+
+
+
+
+
+
+
+
+
+
+22
+23
+24
+
+
+ # File 'lib/txtextcontrol/reportingcloud/append_document.rb', line 22
+
+def document
+ @document
+end
+
+
+
+
+
+
+
+
+
+
+ #document_divider ⇒ Symbol
+
+
+
+
+
+
+
+
+
The document divider option. Possible values are :none,
+:new_paragraph and :new_section.
+
+
+
+
+
+
+
+
+
+
+22
+23
+24
+
+
+ # File 'lib/txtextcontrol/reportingcloud/append_document.rb', line 22
+
+def document_divider
+ @document_divider
+end
+
+
+
+
+
+
+
+
+
+
Instance Method Details
+
+
+
+
+
+ #to_camelized_hash ⇒ Hash
+
+
+
+
+
+
+
+
+
Converts an AppendBody instance to a hash while converting the attribute
+names from snake case to camel case.
+
+
+
+
+
+
+
+
+
+
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+
+
+ # File 'lib/txtextcontrol/reportingcloud/append_document.rb', line 44
+
+def to_camelized_hash
+ result = {
+ " document " => @document ,
+ " documentDivider " => " None "
+ }
+
+ case @document_divider
+ when :new_paragraph
+ result [ " documentDivider " ] = " NewParagraph "
+ when :new_section
+ result [ " documentDivider " ] = " NewSection "
+ end
+
+ return result
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TXTextControl/ReportingCloud/DocumentSettings.html b/TXTextControl/ReportingCloud/DocumentSettings.html
new file mode 100644
index 0000000..61387ed
--- /dev/null
+++ b/TXTextControl/ReportingCloud/DocumentSettings.html
@@ -0,0 +1,980 @@
+
+
+
+
+
+
+ Class: TXTextControl::ReportingCloud::DocumentSettings
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: TXTextControl::ReportingCloud::DocumentSettings
+
+
+
+
+
+
+
+ Inherits:
+
+ Object
+
+
+ Object
+
+ TXTextControl::ReportingCloud::DocumentSettings
+
+
+ show all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in:
+ lib/txtextcontrol/reportingcloud/document_settings.rb
+
+
+
+
+
Overview
+
+
+
+
+
+
Instance Attribute Summary collapse
+
+
+
+
+
+
+
+ Instance Method Summary
+ collapse
+
+
+
+
+
+
+
+ #initialize ⇒ DocumentSettings
+
+
+
+
+
+
+ constructor
+
+
+
+
+
+
+
+
+
+
A new instance of DocumentSettings.
+
+
+
+
+
+
+
+
+ #to_camelized_hash ⇒ Hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Converts a DocumentSettings instance to a hash while converting the
+attribute names from snake case to camel case.
+
+
+
+
+
+
+
+
+
+
Constructor Details
+
+
+
+
+
+
Returns a new instance of DocumentSettings
+
+
+
+
+
+
+
+
+
+
+
+
+
+34
+35
+36
+37
+38
+39
+40
+41
+42
+
+
+ # File 'lib/txtextcontrol/reportingcloud/document_settings.rb', line 34
+
+def initialize
+ @author = nil
+ @creation_date = nil
+ @creator_application = nil
+ @document_subject = nil
+ @document_title = nil
+ @last_modification_date = nil
+ @user_password = nil
+end
+
+
+
+
+
+
+
+
+
Instance Attribute Details
+
+
+
+
+
+
+ #author ⇒ String
+
+
+
+
+
+
+
+
+
The document's author.
+
+
+
+
+
+
+
+
+
+
+27
+28
+29
+
+
+ # File 'lib/txtextcontrol/reportingcloud/document_settings.rb', line 27
+
+def author
+ @author
+end
+
+
+
+
+
+
+
+
+
+
+ #creation_date ⇒ DateTime
+
+
+
+
+
+
+
+
+
The document's creation date.
+
+
+
+
+
+
+
+
+
+
+27
+28
+29
+
+
+ # File 'lib/txtextcontrol/reportingcloud/document_settings.rb', line 27
+
+def creation_date
+ @creation_date
+end
+
+
+
+
+
+
+
+
+
+
+ #creator_application ⇒ String
+
+
+
+
+
+
+
+
+
The application which created the document.
+
+
+
+
+
+
+
+
+
+
+27
+28
+29
+
+
+ # File 'lib/txtextcontrol/reportingcloud/document_settings.rb', line 27
+
+def creator_application
+ @creator_application
+end
+
+
+
+
+
+
+
+
+
+
+ #document_subject ⇒ String
+
+
+
+
+
+
+
+
+
The document's subject.
+
+
+
+
+
+
+
+
+
+
+27
+28
+29
+
+
+ # File 'lib/txtextcontrol/reportingcloud/document_settings.rb', line 27
+
+def document_subject
+ @document_subject
+end
+
+
+
+
+
+
+
+
+
+
+ #document_title ⇒ String
+
+
+
+
+
+
+
+
+
The document's title.
+
+
+
+
+
+
+
+
+
+
+27
+28
+29
+
+
+ # File 'lib/txtextcontrol/reportingcloud/document_settings.rb', line 27
+
+def document_title
+ @document_title
+end
+
+
+
+
+
+
+
+
+
+
+ #last_modification_date ⇒ DateTime
+
+
+
+
+
+
+
+
+
The document's last modification date.
+
+
+
+
+
+
+
+
+
+
+27
+28
+29
+
+
+ # File 'lib/txtextcontrol/reportingcloud/document_settings.rb', line 27
+
+def last_modification_date
+ @last_modification_date
+end
+
+
+
+
+
+
+
+
+
+
+ #user_password ⇒ String
+
+
+
+
+
+
+
+
+
The password needed to open the document.
+
+
+
+
+
+
+
+
+
+
+27
+28
+29
+
+
+ # File 'lib/txtextcontrol/reportingcloud/document_settings.rb', line 27
+
+def user_password
+ @user_password
+end
+
+
+
+
+
+
+
+
+
+
Instance Method Details
+
+
+
+
+
+ #to_camelized_hash ⇒ Hash
+
+
+
+
+
+
+
+
+
Converts a DocumentSettings instance to a hash while converting the
+attribute names from snake case to camel case.
+
+
+
+
+
+
+
+
+
+
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+
+
+ # File 'lib/txtextcontrol/reportingcloud/document_settings.rb', line 79
+
+def to_camelized_hash
+ return {
+ " author " => @author ,
+ " creationDate " => @creation_date . nil? ? nil : @creation_date . iso8601 ,
+ " creatorApplication " => @creator_application ,
+ " documentSubject " => @document_subject ,
+ " documentTitle " => @document_title ,
+ " lastModificationDate " => @last_modification_date . nil? ? nil : @last_modification_date . iso8601 ,
+ " userPassword " => @user_password
+ }
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TXTextControl/ReportingCloud/FindAndReplaceBody.html b/TXTextControl/ReportingCloud/FindAndReplaceBody.html
new file mode 100644
index 0000000..305c615
--- /dev/null
+++ b/TXTextControl/ReportingCloud/FindAndReplaceBody.html
@@ -0,0 +1,654 @@
+
+
+
+
+
+
+ Class: TXTextControl::ReportingCloud::FindAndReplaceBody
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: TXTextControl::ReportingCloud::FindAndReplaceBody
+
+
+
+
+
+
+
+ Inherits:
+
+ Object
+
+
+ Object
+
+ TXTextControl::ReportingCloud::FindAndReplaceBody
+
+
+ show all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in:
+ lib/txtextcontrol/reportingcloud/find_and_replace_body.rb
+
+
+
+
+
Overview
+
+
+
The request body of requests to the endpoint “/document/findandreplace”.
+Contains an array of string arrays, a template encoded as a Base64 string
+and a ReportingCloud MergeSettings object.
+
+
+
+
+
+
+
+
+
+
+
+
Instance Attribute Summary collapse
+
+
+
+
+
+
+
+ Instance Method Summary
+ collapse
+
+
+
+
+
+
+
Constructor Details
+
+
+
+
+ #initialize (find_and_replace_data, template = nil, merge_settings = nil) ⇒ FindAndReplaceBody
+
+
+
+
+
+
+
+
+
Returns a new instance of FindAndReplaceBody
+
+
+
+
+
+
+
+
+
+
+38
+39
+40
+41
+42
+
+
+ # File 'lib/txtextcontrol/reportingcloud/find_and_replace_body.rb', line 38
+
+def initialize ( find_and_replace_data , template = nil , merge_settings = nil )
+ self . find_and_replace_data = find_and_replace_data
+ self . template = template
+ self . merge_settings = merge_settings
+end
+
+
+
+
+
+
+
+
+
Instance Attribute Details
+
+
+
+
+
+
+ #find_and_replace_data ⇒ Array<Array<String >>
+
+
+
+
+
+
+
+
+
The find and replace pair values as an array of string arrays.
+
+
+
+
+
+
+
+
+
+
+27
+28
+29
+
+
+ # File 'lib/txtextcontrol/reportingcloud/find_and_replace_body.rb', line 27
+
+def find_and_replace_data
+ @find_and_replace_data
+end
+
+
+
+
+
+
+
+
+
+
+ #merge_settings ⇒ MergeSettings
+
+
+
+
+
+
+
+
+
Merge settings to specify merge properties and document properties such as
+title and author.
+
+
+
+
+
+
+
+
+
+
+27
+28
+29
+
+
+ # File 'lib/txtextcontrol/reportingcloud/find_and_replace_body.rb', line 27
+
+def merge_settings
+ @merge_settings
+end
+
+
+
+
+
+
+
+
+
+
+ #template ⇒ String
+
+
+
+
+
+
+
+
+
The source document encoded as a Base64 string.
+
+
+
+
+
+
+
+
+
+
+27
+28
+29
+
+
+ # File 'lib/txtextcontrol/reportingcloud/find_and_replace_body.rb', line 27
+
+def template
+ @template
+end
+
+
+
+
+
+
+
+
+
+
Instance Method Details
+
+
+
+
+
+ #to_camelized_hash ⇒ Hash
+
+
+
+
+
+
+
+
+
Converts a FindAndReplaceBody instance to a hash while converting the
+attribute names from snake case to camel case.
+
+
+
+
+
+
+
+
+
+
+81
+82
+83
+84
+85
+86
+87
+
+
+ # File 'lib/txtextcontrol/reportingcloud/find_and_replace_body.rb', line 81
+
+def to_camelized_hash
+ return {
+ " findAndReplaceData " => @find_and_replace_data ,
+ " template " => @template ,
+ " mergeSettings " => @merge_settings
+ }
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TXTextControl/ReportingCloud/IncorrectWord.html b/TXTextControl/ReportingCloud/IncorrectWord.html
new file mode 100644
index 0000000..4c1c183
--- /dev/null
+++ b/TXTextControl/ReportingCloud/IncorrectWord.html
@@ -0,0 +1,919 @@
+
+
+
+
+
+
+ Class: TXTextControl::ReportingCloud::IncorrectWord
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: TXTextControl::ReportingCloud::IncorrectWord
+
+
+
+
+
+
+
+ Inherits:
+
+ Object
+
+
+ Object
+
+ TXTextControl::ReportingCloud::IncorrectWord
+
+
+ show all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in:
+ lib/txtextcontrol/reportingcloud/incorrect_word.rb
+
+
+
+
+
Overview
+
+
+
Represents an incorrect word in spell checked text.
+
+
+
+
+
+
+
+
+
Instance Attribute Summary collapse
+
+
+
+
+
+ #is_duplicate ⇒ Boolean
+
+
+
+ (also: #is_duplicate?)
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
Indicating whether the spelled word is declared as incorrect, because the
+previous word has the same text.
+
+
+
+
+
+
+
+
+ #language ⇒ String
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
Indicating the language the incorrect word was spelled.
+
+
+
+
+
+
+
+
+ #length ⇒ Integer
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
The length of the spelled word.
+
+
+
+
+
+
+
+
+ #start ⇒ Integer
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
The starting position of a spelled word.
+
+
+
+
+
+
+
+
+ #text ⇒ String
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
The text of the spelled word.
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Method Summary
+ collapse
+
+
+
+
+
+ Instance Method Summary
+ collapse
+
+
+
+
+
+
+
Constructor Details
+
+
+
+
+ #initialize (length, start, text, is_duplicate, language) ⇒ IncorrectWord
+
+
+
+
+
+
+
+
+
Returns a new instance of IncorrectWord
+
+
+
+
+
+
+
+
+
+
+42
+43
+44
+45
+46
+47
+48
+
+
+ # File 'lib/txtextcontrol/reportingcloud/incorrect_word.rb', line 42
+
+def initialize ( length , start , text , is_duplicate , language )
+ @length = Integer ( length )
+ @start = Integer ( start )
+ @text = text
+ @is_duplicate = ! ! is_duplicate
+ @language = language
+end
+
+
+
+
+
+
+
+
+
Instance Attribute Details
+
+
+
+
+
+
+ #is_duplicate ⇒ Boolean
+
+
+
+ Also known as:
+ is_duplicate?
+
+
+
+
+
+
+
+
Indicating whether the spelled word is declared as incorrect, because the
+previous word has the same text.
+
+
+
+
+
+
+
+
+
+
+26
+27
+28
+
+
+ # File 'lib/txtextcontrol/reportingcloud/incorrect_word.rb', line 26
+
+def is_duplicate
+ @is_duplicate
+end
+
+
+
+
+
+
+
+
+
+
+ #language ⇒ String
+
+
+
+
+
+
+
+
+
Indicating the language the incorrect word was spelled.
+
+
+
+
+
+
+
+
+
+
+26
+27
+28
+
+
+ # File 'lib/txtextcontrol/reportingcloud/incorrect_word.rb', line 26
+
+def language
+ @language
+end
+
+
+
+
+
+
+
+
+
+
+ #length ⇒ Integer
+
+
+
+
+
+
+
+
+
The length of the spelled word.
+
+
+
+
+
+
+
+
+
+
+26
+27
+28
+
+
+ # File 'lib/txtextcontrol/reportingcloud/incorrect_word.rb', line 26
+
+def length
+ @length
+end
+
+
+
+
+
+
+
+
+
+
+ #start ⇒ Integer
+
+
+
+
+
+
+
+
+
The starting position of a spelled word.
+
+
+
+
+
+
+
+
+
+
+26
+27
+28
+
+
+ # File 'lib/txtextcontrol/reportingcloud/incorrect_word.rb', line 26
+
+def start
+ @start
+end
+
+
+
+
+
+
+
+
+
+
+ #text ⇒ String
+
+
+
+
+
+
+
+
+
The text of the spelled word.
+
+
+
+
+
+
+
+
+
+
+26
+27
+28
+
+
+ # File 'lib/txtextcontrol/reportingcloud/incorrect_word.rb', line 26
+
+def text
+ @text
+end
+
+
+
+
+
+
+
+
+
+
Class Method Details
+
+
+
+
+
+ .from_camelized_hash (hash) ⇒ IncorrectWord
+
+
+
+
+
+
+
+
+
Creates an IncorrectWord instance from a hash.
+
+
+
+
+
+
+
+
+
+
+53
+54
+55
+56
+57
+58
+59
+60
+
+
+ # File 'lib/txtextcontrol/reportingcloud/incorrect_word.rb', line 53
+
+def self . from_camelized_hash ( hash )
+ l = hash [ " length " ]
+ s = hash [ " start " ]
+ txt = hash [ " text " ]
+ id = hash [ " isDuplicate " ]
+ lan = hash [ " language " ]
+ return IncorrectWord . new ( l , s , txt , id , lan )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TXTextControl/ReportingCloud/MergeBlock.html b/TXTextControl/ReportingCloud/MergeBlock.html
new file mode 100644
index 0000000..4231994
--- /dev/null
+++ b/TXTextControl/ReportingCloud/MergeBlock.html
@@ -0,0 +1,676 @@
+
+
+
+
+
+
+ Class: TXTextControl::ReportingCloud::MergeBlock
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: TXTextControl::ReportingCloud::MergeBlock
+
+
+
+
+
+
+
+ Inherits:
+
+ Object
+
+
+ Object
+
+ TXTextControl::ReportingCloud::MergeBlock
+
+
+ show all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in:
+ lib/txtextcontrol/reportingcloud/merge_block.rb
+
+
+
+
+
Overview
+
+
+
Represents a merge block in a document template.
+
+
+
+
+
+
+
+
+
+
+
+
Instance Attribute Summary collapse
+
+
+
+
+
+
+
+ Class Method Summary
+ collapse
+
+
+
+
+
+ Instance Method Summary
+ collapse
+
+
+
+
+
+
+
Constructor Details
+
+
+
+
+ #initialize (name, merge_blocks, merge_fields) ⇒ MergeBlock
+
+
+
+
+
+
+
+
+
Returns a new instance of MergeBlock
+
+
+
+
+
+
+
+
+
+
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_block.rb', line 30
+
+def initialize ( name , merge_blocks , merge_fields )
+ raise ArgumentError , " Block name must be a string. " if ! name . kind_of? String
+ raise ArgumentError , " Parameter merge_blocks must be an array. " if ! merge_blocks . kind_of? Array
+ raise ArgumentError , " Parameter merge_fields must be an array. " if ! merge_fields . kind_of? Array
+
+ @name = name
+ @merge_blocks = merge_blocks
+ @merge_fields = merge_fields
+end
+
+
+
+
+
+
+
+
+
Instance Attribute Details
+
+
+
+
+
+
+ #merge_blocks ⇒ Array<MergeBlock >
+
+
+
+
+
+
+
+
+
The merge blocks nested inside the merge block.
+
+
+
+
+
+
+
+
+
+
+25
+26
+27
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_block.rb', line 25
+
+def merge_blocks
+ @merge_blocks
+end
+
+
+
+
+
+
+
+
+
+
+ #merge_fields ⇒ Array<MergeField >
+
+
+
+
+
+
+
+
+
The merge fields inside the merge block.
+
+
+
+
+
+
+
+
+
+
+25
+26
+27
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_block.rb', line 25
+
+def merge_fields
+ @merge_fields
+end
+
+
+
+
+
+
+
+
+
+
+ #name ⇒ String
+
+
+
+
+
+
+
+
+
The merge block's' name.
+
+
+
+
+
+
+
+
+
+
+25
+26
+27
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_block.rb', line 25
+
+def name
+ @name
+end
+
+
+
+
+
+
+
+
+
+
Class Method Details
+
+
+
+
+
+ .from_camelized_hash (hash) ⇒ MergeBlock
+
+
+
+
+
+
+
+
+
Creates an MergeBlock instance from a hash.
+
+
+
+
+
+
+
+
+
+
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_block.rb', line 44
+
+def self . from_camelized_hash ( hash )
+ raise ArgumentError , " Parameter must be a Hash. " if ! hash . kind_of? Hash
+
+ name = hash [ " name " ]
+ blocks = Array . new
+ hash [ " mergeBlocks " ] . each do | elem |
+ blocks . push ( MergeBlock . from_camelized_hash ( elem ) )
+ end
+ fields = Array . new
+ hash [ " mergeFields " ] . each do | elem |
+ fields . push ( MergeField . from_camelized_hash ( elem ) )
+ end
+ return MergeBlock . new ( name , blocks , fields )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TXTextControl/ReportingCloud/MergeBody.html b/TXTextControl/ReportingCloud/MergeBody.html
new file mode 100644
index 0000000..0a35ab6
--- /dev/null
+++ b/TXTextControl/ReportingCloud/MergeBody.html
@@ -0,0 +1,668 @@
+
+
+
+
+
+
+ Class: TXTextControl::ReportingCloud::MergeBody
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: TXTextControl::ReportingCloud::MergeBody
+
+
+
+
+
+
+
+ Inherits:
+
+ Object
+
+
+ Object
+
+ TXTextControl::ReportingCloud::MergeBody
+
+
+ show all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in:
+ lib/txtextcontrol/reportingcloud/merge_body.rb
+
+
+
+
+
Overview
+
+
+
+
+
Instance Attribute Summary collapse
+
+
+
+
+
+
+
+ Instance Method Summary
+ collapse
+
+
+
+
+
+
+
Constructor Details
+
+
+
+
+ #initialize (merge_data, merge_settings = nil, template = nil) ⇒ MergeBody
+
+
+
+
+
+
+
+
+
The constructor.
+
+
+
+
+
+
+
+
+
+
+38
+39
+40
+41
+42
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_body.rb', line 38
+
+def initialize ( merge_data , merge_settings = nil , template = nil )
+ self . merge_data = merge_data
+ @template = template
+ @merge_settings = merge_settings
+end
+
+
+
+
+
+
+
+
+
Instance Attribute Details
+
+
+
+
+
+
+ #merge_data ⇒ Array<Hash>
+
+
+
+
+
+
+
+
+
The merge data. Must be an array of hashes.
+
+
+
+
+
+
+
+
+
+
+27
+28
+29
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_body.rb', line 27
+
+def merge_data
+ @merge_data
+end
+
+
+
+
+
+
+
+
+
+
+ #merge_settings ⇒ MergeSettings
+
+
+
+
+
+
+
+
+
Merge settings to specify merge properties and document properties such as
+title and author.
+
+
+
+
+
+
+
+
+
+
+27
+28
+29
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_body.rb', line 27
+
+def merge_settings
+ @merge_settings
+end
+
+
+
+
+
+
+
+
+
+
+ #template ⇒ String
+
+
+
+
+
+
+
+
+
Base64 encoded template document. Supported formats are RTF, DOC, DOCX and
+TX.
+
+
+
+
+
+
+
+
+
+
+27
+28
+29
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_body.rb', line 27
+
+def template
+ @template
+end
+
+
+
+
+
+
+
+
+
+
Instance Method Details
+
+
+
+
+
+ #to_camelized_hash ⇒ Hash
+
+
+
+
+
+
+
+
+
Converts a MergeBody instance to a hash while converting the attribute
+names from snake case to camel case.
+
+
+
+
+
+
+
+
+
+
+58
+59
+60
+61
+62
+63
+64
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_body.rb', line 58
+
+def to_camelized_hash
+ return {
+ " mergeData " => @merge_data ,
+ " template " => @template ,
+ " mergeSettings " => @merge_settings . nil? ? nil : @merge_settings . to_camelized_hash
+ }
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TXTextControl/ReportingCloud/MergeField.html b/TXTextControl/ReportingCloud/MergeField.html
new file mode 100644
index 0000000..ed5b031
--- /dev/null
+++ b/TXTextControl/ReportingCloud/MergeField.html
@@ -0,0 +1,1056 @@
+
+
+
+
+
+
+ Class: TXTextControl::ReportingCloud::MergeField
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: TXTextControl::ReportingCloud::MergeField
+
+
+
+
+
+
+
+ Inherits:
+
+ Object
+
+
+ Object
+
+ TXTextControl::ReportingCloud::MergeField
+
+
+ show all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in:
+ lib/txtextcontrol/reportingcloud/merge_field.rb
+
+
+
+
+
Overview
+
+
+
Represents a merge field in a document template.
+
+
+
+
+
+
+
+
+
+
+
+
Instance Attribute Summary collapse
+
+
+
+
+
+ #date_time_format ⇒ String
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
The format which is applied to date / time values.
+
+
+
+
+
+
+
+
+ #name ⇒ String
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
The name of the field.
+
+
+
+
+
+
+
+
+ #numeric_format ⇒ String
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
The format which is applied to numeric values.
+
+
+
+
+
+
+
+
+ #preserve_formatting ⇒ Boolean
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
Specifies whether formatting is preserved.
+
+
+
+
+
+
+
+
+ #text ⇒ String
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #text_after ⇒ String
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
The text after the field.
+
+
+
+
+
+
+
+
+ #text_before ⇒ String
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
The text before the field.
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Method Summary
+ collapse
+
+
+
+
+
+ Instance Method Summary
+ collapse
+
+
+
+
+
+
+
Constructor Details
+
+
+
+
+ #initialize (date_time_format, name, numeric_format, preserve_formatting, text, text_after, text_before) ⇒ MergeField
+
+
+
+
+
+
+
+
+
Returns a new instance of MergeField
+
+
+
+
+
+
+
+
+
+
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_field.rb', line 37
+
+def initialize ( date_time_format , name , numeric_format , preserve_formatting , text , text_after , text_before )
+ unless date_time_format . nil? || ( date_time_format . kind_of? String )
+ raise ArgumentError , " Date / time format must be a string. "
+ end
+ raise ArgumentError , " Field name must be a string. " if ! name . kind_of? String
+ unless numeric_format . nil? || ( numeric_format . kind_of? String )
+ raise ArgumentError , " Numeric format must be a string "
+ end
+ raise ArgumentError , " Preserve formatting parameter must be a boolean value. " if ! ! preserve_formatting != preserve_formatting
+ raise ArgumentError , " Field text must be a string. " if ! text . kind_of? String
+ raise ArgumentError , " Text after must be a string. " if ! text_after . nil? && ( ! text_after . kind_of? String )
+ raise ArgumentError , " Text before must be a string. " if ! text_before . nil? && ( ! text_before . kind_of? String )
+
+ @date_time_format = date_time_format
+ @name = name
+ @numeric_format = numeric_format
+ @preserve_formatting = preserve_formatting
+ @text = text
+ @text_after = text_after
+ @text_before = text_before
+end
+
+
+
+
+
+
+
+
+
Instance Attribute Details
+
+
+
+
+
+
+
+
The format which is applied to date / time values.
+
+
+
+
+
+
+
+
+
+
+28
+29
+30
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_field.rb', line 28
+
+def date_time_format
+ @date_time_format
+end
+
+
+
+
+
+
+
+
+
+
+ #name ⇒ String
+
+
+
+
+
+
+
+
+
The name of the field.
+
+
+
+
+
+
+
+
+
+
+28
+29
+30
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_field.rb', line 28
+
+def name
+ @name
+end
+
+
+
+
+
+
+
+
+
+
+
+
The format which is applied to numeric values.
+
+
+
+
+
+
+
+
+
+
+28
+29
+30
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_field.rb', line 28
+
+def numeric_format
+ @numeric_format
+end
+
+
+
+
+
+
+
+
+
+
+
+
Specifies whether formatting is preserved.
+
+
+
+
+
+
+
+
+
+
+28
+29
+30
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_field.rb', line 28
+
+def preserve_formatting
+ @preserve_formatting
+end
+
+
+
+
+
+
+
+
+
+
+ #text ⇒ String
+
+
+
+
+
+
+
+
+
+
+
+
+28
+29
+30
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_field.rb', line 28
+
+def text
+ @text
+end
+
+
+
+
+
+
+
+
+
+
+ #text_after ⇒ String
+
+
+
+
+
+
+
+
+
The text after the field.
+
+
+
+
+
+
+
+
+
+
+28
+29
+30
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_field.rb', line 28
+
+def text_after
+ @text_after
+end
+
+
+
+
+
+
+
+
+
+
+ #text_before ⇒ String
+
+
+
+
+
+
+
+
+
The text before the field.
+
+
+
+
+
+
+
+
+
+
+28
+29
+30
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_field.rb', line 28
+
+def text_before
+ @text_before
+end
+
+
+
+
+
+
+
+
+
+
Class Method Details
+
+
+
+
+
+ .from_camelized_hash (hash) ⇒ MergeField
+
+
+
+
+
+
+
+
+
Creates an MergeField instance from a hash.
+
+
+
+
+
+
+
+
+
+
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_field.rb', line 63
+
+def self . from_camelized_hash ( hash )
+ raise ArgumentError , " Parameter must be a Hash. " if ! hash . kind_of? Hash
+
+ date_time_format = hash [ " dateTimeFormat " ]
+ name = hash [ " name " ]
+ numeric_format = hash [ " numericFormat " ]
+ preserve_formatting = hash [ " preserveFormatting " ]
+ text = hash [ " text " ]
+ text_after = hash [ " textAfter " ]
+ text_before = hash [ " textBefore " ]
+ return MergeField . new ( date_time_format , name , numeric_format , preserve_formatting , text , text_after , text_before )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TXTextControl/ReportingCloud/MergeSettings.html b/TXTextControl/ReportingCloud/MergeSettings.html
new file mode 100644
index 0000000..c8ebf6d
--- /dev/null
+++ b/TXTextControl/ReportingCloud/MergeSettings.html
@@ -0,0 +1,844 @@
+
+
+
+
+
+
+ Class: TXTextControl::ReportingCloud::MergeSettings
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: TXTextControl::ReportingCloud::MergeSettings
+
+
+
+
+
+
+
+ Inherits:
+
+ DocumentSettings
+
+
+ Object
+
+ DocumentSettings
+
+ TXTextControl::ReportingCloud::MergeSettings
+
+
+ show all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in:
+ lib/txtextcontrol/reportingcloud/merge_settings.rb
+
+
+
+
+
Overview
+
+
+
Holds the merge settings needed by the merge method.
+
+
+
+
+
+
+
+
+
Instance Attribute Summary collapse
+
+
+
+
+
+ #merge_html ⇒ Boolean
+
+
+
+ (also: #merge_html?)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Specifies whether field data can contain formatted Html content or not.
+
+
+
+
+
+
+
+
+ #remove_empty_blocks ⇒ Boolean
+
+
+
+ (also: #remove_empty_blocks?)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Specifies whether the content of empty merge blocks should be removed from
+the template or not.
+
+
+
+
+
+
+
+
+ #remove_empty_fields ⇒ Boolean
+
+
+
+ (also: #remove_empty_fields?)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Specifies whether empty fields should be removed from the template or not.
+
+
+
+
+
+
+
+
+ #remove_empty_images ⇒ Boolean
+
+
+
+ (also: #remove_empty_images?)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Specifies whether images which don't have merge data should be removed
+from the template or not.
+
+
+
+
+
+
+
+
+ #remove_trailing_whitespace ⇒ Boolean
+
+
+
+ (also: #remove_trailing_whitespace?)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Specifies whether trailing whitespace should be removed before saving a
+document.
+
+
+
+
+
+
+
+
+
+
+
+
+
#author , #creation_date , #creator_application , #document_subject , #document_title , #last_modification_date , #user_password
+
+
+
+
+ Instance Method Summary
+ collapse
+
+
+
+
+
+
+
+ #initialize ⇒ MergeSettings
+
+
+
+
+
+
+ constructor
+
+
+
+
+
+
+
+
+
+
A new instance of MergeSettings.
+
+
+
+
+
+
+
+
+ #to_camelized_hash ⇒ Hash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Converts a MergeSettings instance to a hash while converting the attribute
+names from snake case to camel case.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Constructor Details
+
+
+
+
+ #initialize ⇒ MergeSettings
+
+
+
+
+
+
+
+
+
Returns a new instance of MergeSettings
+
+
+
+
+
+
+
+
+
+
+
+
+
+46
+47
+48
+49
+50
+51
+52
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_settings.rb', line 46
+
+def initialize
+ @remove_empty_fields = true
+ @remove_empty_blocks = true
+ @remove_empty_images = true
+ @remove_trailing_whitespace = true
+ @merge_html = false
+end
+
+
+
+
+
+
+
+
+
Instance Attribute Details
+
+
+
+
+
+
+ #merge_html ⇒ Boolean
+
+
+
+ Also known as:
+ merge_html?
+
+
+
+
+
+
+
+
Specifies whether field data can contain formatted Html content or not.
+The default value is false. Html content must be enclosed in an <html
+/> tag element. Only active in the Merge endpoint.
+
+
+
+
+
+
+
+
+
+
+33
+34
+35
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_settings.rb', line 33
+
+def merge_html
+ @merge_html
+end
+
+
+
+
+
+
+
+
+
+
+ #remove_empty_blocks ⇒ Boolean
+
+
+
+ Also known as:
+ remove_empty_blocks?
+
+
+
+
+
+
+
+
Specifies whether the content of empty merge blocks should be removed from
+the template or not.
+
+
+
+
+
+
+
+
+
+
+33
+34
+35
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_settings.rb', line 33
+
+def remove_empty_blocks
+ @remove_empty_blocks
+end
+
+
+
+
+
+
+
+
+
+
+ #remove_empty_fields ⇒ Boolean
+
+
+
+ Also known as:
+ remove_empty_fields?
+
+
+
+
+
+
+
+
Specifies whether empty fields should be removed from the template or not.
+
+
+
+
+
+
+
+
+
+
+33
+34
+35
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_settings.rb', line 33
+
+def remove_empty_fields
+ @remove_empty_fields
+end
+
+
+
+
+
+
+
+
+
+
+ #remove_empty_images ⇒ Boolean
+
+
+
+ Also known as:
+ remove_empty_images?
+
+
+
+
+
+
+
+
Specifies whether images which don't have merge data should be removed
+from the template or not.
+
+
+
+
+
+
+
+
+
+
+33
+34
+35
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_settings.rb', line 33
+
+def remove_empty_images
+ @remove_empty_images
+end
+
+
+
+
+
+
+
+
+
+
+ #remove_trailing_whitespace ⇒ Boolean
+
+
+
+ Also known as:
+ remove_trailing_whitespace?
+
+
+
+
+
+
+
+
Specifies whether trailing whitespace should be removed before saving a
+document.
+
+
+
+
+
+
+
+
+
+
+33
+34
+35
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_settings.rb', line 33
+
+def remove_trailing_whitespace
+ @remove_trailing_whitespace
+end
+
+
+
+
+
+
+
+
+
+
Instance Method Details
+
+
+
+
+
+ #to_camelized_hash ⇒ Hash
+
+
+
+
+
+
+
+
+
Converts a MergeSettings instance to a hash while converting the attribute
+names from snake case to camel case.
+
+
+
+
+
+
+
+
+
+
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+
+
+ # File 'lib/txtextcontrol/reportingcloud/merge_settings.rb', line 57
+
+def to_camelized_hash
+ result = {
+ " removeEmptyFields " => @remove_empty_fields ,
+ " removeEmptyBlocks " => @remove_empty_blocks ,
+ " removeEmptyImages " => @remove_empty_images ,
+ " removeTrailingWhitespace " => @remove_trailing_whitespace ,
+ " mergeHtml " => @merge_html ,
+ }
+ result . merge ( super )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TXTextControl/ReportingCloud/ReportingCloud.html b/TXTextControl/ReportingCloud/ReportingCloud.html
new file mode 100644
index 0000000..f5e0962
--- /dev/null
+++ b/TXTextControl/ReportingCloud/ReportingCloud.html
@@ -0,0 +1,3585 @@
+
+
+
+
+
+
+ Class: TXTextControl::ReportingCloud::ReportingCloud
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: TXTextControl::ReportingCloud::ReportingCloud
+
+
+
+
+
+
+
+ Inherits:
+
+ Object
+
+
+ Object
+
+ TXTextControl::ReportingCloud::ReportingCloud
+
+
+ show all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in:
+ lib/txtextcontrol/reportingcloud/reportingcloud.rb
+
+
+
+
+
Overview
+
+
+
+
+
Instance Attribute Summary collapse
+
+
+
+
+
+
+
+ Instance Method Summary
+ collapse
+
+
+
+
+
+
+
+ #append_documents (append_body, return_format = :pdf, test = false) ⇒ String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Combines documents by appending them divided by a new section, paragraph or
+nothing.
+
+
+
+
+
+
+
+
+ #check_text (text, language) ⇒ Array<IncorrectWord>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Checks text for spelling errors.
+
+
+
+
+
+
+
+
+ #convert_document (template_data, return_format = :pdf, test = false) ⇒ String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Converts a document to another format.
+
+
+
+
+
+
+
+
+ #create_api_key ⇒ String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Creates and returns a new API key.
+
+
+
+
+
+
+
+
+ #delete_api_key (key) ⇒ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Deletes a given API Key from the account.
+
+
+
+
+
+
+
+
+ #delete_template (template_name) ⇒ void
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Deletes a template from the template storage.
+
+
+
+
+
+
+
+
+ #download_template (template_name) ⇒ String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns the selected template from the storage.
+
+
+
+
+
+
+
+
+ #find_and_replace (find_and_replace_body, template_name = nil, return_format = :pdf, test = false) ⇒ String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Executes a find and replace on a template.
+
+
+
+
+
+
+
+
+ #get_account_settings ⇒ AccountSettings
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns the account settings.
+
+
+
+
+
+
+
+
+ #get_api_keys ⇒ Array<String>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns all available API Keys of the current account.
+
+
+
+
+
+
+
+
+ #get_available_dictionaries ⇒ Array<String>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns all available dictionary names.
+
+
+
+
+
+
+
+
+ #get_suggestions (word, language, max) ⇒ Array<String>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns suggestions for a misspelled word.
+
+
+
+
+
+
+
+
+ #get_template_count ⇒ Integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns the number of templates in the template storage.
+
+
+
+
+
+
+
+
+ #get_template_info (template_name) ⇒ TemplateInfo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns information about a template including merge fields and merge
+blocks.
+
+
+
+
+
+
+
+
+ #get_template_page_count (template_name) ⇒ Integer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns the number of pages of a template in the template storage.
+
+
+
+
+
+
+
+
+ #get_template_thumbnails (template_name, zoom_factor, from_page = 1, to_page = 0, image_format = :png) ⇒ Array<String>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns a list of thumbnails of a specific template.
+
+
+
+
+
+
+
+
+ #initialize (username, password, base_url = nil) ⇒ ReportingCloud
+
+
+
+
+
+
+ constructor
+
+
+
+
+
+
+
+
+
+
A new instance of ReportingCloud.
+
+
+
+
+
+
+
+
+ #list_fonts ⇒ Array<String>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Lists all available fonts.
+
+
+
+
+
+
+
+
+ #list_templates ⇒ Array<Template>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Lists all templates from the template storage.
+
+
+
+
+
+
+
+
+ #merge_document (merge_body, template_name = nil, return_format = :pdf, append = false, test = false) ⇒ Array<String>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Merges and returns a template from the template storage or an uploaded
+template with JSON data.
+
+
+
+
+
+
+
+
+ #template_exists? (template_name) ⇒ Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Checks whether a template exists in the template storage.
+
+
+
+
+
+
+
+
+ #upload_template (template_name, template_data) ⇒ void
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Stores an uploaded template in the template storage ( *.doc , *.docx ,
+*.rtf and *.tx ).
+
+
+
+
+
+
+
+
+
+
Constructor Details
+
+
+
+
+ #initialize (username, password, base_url = nil) ⇒ ReportingCloud
+
+
+
+
+
+
+
+
+
Returns a new instance of ReportingCloud
+
+
+
+
+
+
+
+
+
+
+53
+54
+55
+56
+57
+58
+59
+60
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 53
+
+def initialize ( username , password , base_url = nil )
+ base_url ||= DEFAULT_BASE_URI
+ @username = username
+ @password = password
+ @api_version = DEFAULT_VERSION
+ @read_timeout = DEFAULT_TIMEOUT
+ @base_uri = URI . parse ( base_url )
+end
+
+
+
+
+
+
+
+
+
Instance Attribute Details
+
+
+
+
+
+
+ #api_version ⇒ String
+
+
+
+
+
+
+
+
+
The API version. Is set to “v1” by default.
+
+
+
+
+
+
+
+
+
+
+42
+43
+44
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 42
+
+def api_version
+ @api_version
+end
+
+
+
+
+
+
+
+
+
+
+ #base_uri ⇒ String
+
+
+
+
+
+
+
+
+
The API base url. Is set to “https://api.reporting.cloud” by
+default.
+
+
+
+
+
+
+
+
+
+
+42
+43
+44
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 42
+
+def base_uri
+ @base_uri
+end
+
+
+
+
+
+
+
+
+
+
+ #password ⇒ String
+
+
+
+
+
+
+
+
+
+
+
+
+42
+43
+44
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 42
+
+def password
+ @password
+end
+
+
+
+
+
+
+
+
+
+
+ #read_timeout ⇒ Integer
+
+
+
+
+
+
+
+
+
The timeout for HTTP requests in seconds. Is set to 10 by
+default.
+
+
+
+
+
+
+
+
+
+
+42
+43
+44
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 42
+
+def read_timeout
+ @read_timeout
+end
+
+
+
+
+
+
+
+
+
+
+ #username ⇒ String
+
+
+
+
+
+
+
+
+
+
+
+
+42
+43
+44
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 42
+
+def username
+ @username
+end
+
+
+
+
+
+
+
+
+
+
Instance Method Details
+
+
+
+
+
+ #append_documents (append_body, return_format = :pdf, test = false) ⇒ String
+
+
+
+
+
+
+
+
+
Combines documents by appending them divided by a new section, paragraph or
+nothing.
+
+
+
+
+
+
+
+
+
+
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 138
+
+def append_documents ( append_body , return_format = :pdf , test = false )
+ unless append_body . is_a? ( TXTextControl :: ReportingCloud :: AppendBody )
+ raise ArgumentError , " append_body must be an AppendBody instance. "
+ end
+
+ params = {
+ :returnFormat => return_format ,
+ :test => test
+ }
+
+ res = request ( " /document/append " , :post , params , append_body )
+ if res . kind_of? Net :: HTTPSuccess
+ return res . body . remove_first_and_last
+ else
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+ #check_text (text, language) ⇒ Array<IncorrectWord >
+
+
+
+
+
+
+
+
+
Checks text for spelling errors.
+
+
+
+
+
+
+
+
+
+
+380
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 380
+
+def check_text ( text , language )
+ unless ! text . nil? && ! text . to_s . empty?
+ raise ArgumentError , " The given text must not be empty. "
+ end
+ unless ! language . nil? && ! language . to_s . empty?
+ raise ArgumentError , " A language must be defined. "
+ end
+
+ params = {
+ :text => text ,
+ :language => language
+ }
+
+ res = request ( " /proofing/check " , :get , params )
+ if res . kind_of? Net :: HTTPSuccess
+ incorrect_words = Array . new
+ data = JSON . parse ( res . body , object_class: OpenStruct )
+ data . each do | elem |
+ incorrect_words . push ( IncorrectWord . from_camelized_hash ( elem ) )
+ end
+ return incorrect_words
+ else
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+ #convert_document (template_data, return_format = :pdf, test = false) ⇒ String
+
+
+
+
+
+
+
+
+
Converts a document to another format.
+
+
+
+
+
+
+
+
+
+
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 292
+
+def convert_document ( template_data , return_format = :pdf , test = false )
+ TemplateDataValidator . validate ( template_data )
+
+ params = {
+ :returnFormat => return_format ,
+ :test => test
+ }
+
+ res = request ( " /document/convert " , :post , params , template_data )
+ if res . kind_of? Net :: HTTPSuccess
+ return res . body . remove_first_and_last
+ else
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+ #create_api_key ⇒ String
+
+
+
+
+
+
+
+
+
Creates and returns a new API key.
+
+
+
+
+
+
+
+
+
+
+453
+454
+455
+456
+457
+458
+459
+460
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 453
+
+def create_api_key
+ res = request ( " /account/apikey " , :put )
+ if res . kind_of? Net :: HTTPSuccess
+ return res . body . remove_first_and_last
+ else
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+ #delete_api_key (key) ⇒ Object
+
+
+
+
+
+
+
+
+
Deletes a given API Key from the account.
+
+
+
+
+
+
+
+
+
+
+464
+465
+466
+467
+468
+469
+470
+471
+472
+473
+474
+475
+476
+477
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 464
+
+def delete_api_key ( key )
+ unless ! key . nil? && ! key . to_s . empty?
+ raise ArgumentError , " The given key must not be empty. "
+ end
+
+ params = {
+ :key => key
+ }
+
+ res = request ( " /account/apikey " , :delete , params )
+ raise res . body unless res . kind_of? Net :: HTTPSuccess
+end
+
+
+
+
+
+
+
+
+ #delete_template (template_name) ⇒ void
+
+
+
+
+
+
+
+
This method returns an undefined value.
+
Deletes a template from the template storage.
+
+
+
+
+
+
+
+
+
+
+203
+204
+205
+206
+207
+208
+209
+210
+211
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 203
+
+def delete_template ( template_name )
+ TemplateNameValidator . validate ( template_name )
+
+ res = request ( " /templates/delete " , :delete , { :templateName => template_name } )
+ unless res . kind_of? Net :: HTTPSuccess
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+ #download_template (template_name) ⇒ String
+
+
+
+
+
+
+
+
+
Returns the selected template from the storage.
+
+
+
+
+
+
+
+
+
+
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 233
+
+def download_template ( template_name )
+ TemplateNameValidator . validate ( template_name )
+
+ res = request ( " /templates/download " , :get , { :templateName => template_name } )
+ if res . kind_of? Net :: HTTPSuccess
+ return res . body . remove_first_and_last
+ else
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+ #find_and_replace (find_and_replace_body, template_name = nil, return_format = :pdf, test = false) ⇒ String
+
+
+
+
+
+
+
+
+
Executes a find and replace on a template.
+
+
+
+
+
+
+
+
+
+
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 338
+
+def find_and_replace ( find_and_replace_body , template_name = nil , return_format = :pdf , test = false )
+ unless ! find_and_replace_body . nil? && ( find_and_replace_body . kind_of? FindAndReplaceBody )
+ raise ArgumentError , " Request body must be of type FindAndReplaceBody. "
+ end
+ unless template_name . nil? || ! template_name . to_s . empty?
+ raise ArgumentError , " Template name must be a non empty string. "
+ end
+
+ params = {
+ :returnFormat => return_format ,
+ :templateName => template_name ,
+ :test => test
+ }
+
+ res = request ( " /document/findandreplace " , :post , params , find_and_replace_body )
+ if res . kind_of? Net :: HTTPSuccess
+ return res . body . remove_first_and_last
+ else
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+ #get_account_settings ⇒ AccountSettings
+
+
+
+
+
+
+
+
+
Returns the account settings.
+
+
+
+
+
+
+
+
+
+
+160
+161
+162
+163
+164
+165
+166
+167
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 160
+
+def get_account_settings
+ res = request ( " /account/settings " , :get )
+ if res . kind_of? Net :: HTTPSuccess
+ return AccountSettings . from_camelized_hash ( JSON . parse ( res . body ) )
+ else
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+ #get_api_keys ⇒ Array<String >
+
+
+
+
+
+
+
+
+
Returns all available API Keys of the current account.
+
+
+
+
+
+
+
+
+
+
+481
+482
+483
+484
+485
+486
+487
+488
+489
+490
+491
+492
+493
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 481
+
+def get_api_keys
+ res = request ( " /account/apikeys " , :get )
+ if res . kind_of? Net :: HTTPSuccess
+ keys = Array . new
+ data = JSON . parse ( res . body , object_class: OpenStruct )
+ data . each do | elem |
+ keys . push ( APIKey . new ( elem . key , elem . active ) )
+ end
+ return keys
+ else
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+ #get_available_dictionaries ⇒ Array<String >
+
+
+
+
+
+
+
+
+
Returns all available dictionary names.
+
+
+
+
+
+
+
+
+
+
+410
+411
+412
+413
+414
+415
+416
+417
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 410
+
+def get_available_dictionaries
+ res = request ( " /proofing/availabledictionaries " , :get )
+ if res . kind_of? Net :: HTTPSuccess
+ return JSON . parse ( res . body )
+ else
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+ #get_suggestions (word, language, max) ⇒ Array<String >
+
+
+
+
+
+
+
+
+
Returns suggestions for a misspelled word.
+
+
+
+
+
+
+
+
+
+
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
+435
+436
+437
+438
+439
+440
+441
+442
+443
+444
+445
+446
+447
+448
+449
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 424
+
+def get_suggestions ( word , language , max )
+ unless ! word . nil? && ! word . to_s . empty?
+ raise ArgumentError , " The given text must not be empty. "
+ end
+ unless ! language . nil? && ! language . to_s . empty?
+ raise ArgumentError , " A language must be defined. "
+ end
+ unless max . is_a? Integer
+ raise ArgumentError , " max must be an integer "
+ end
+
+ params = {
+ :word => word ,
+ :language => language ,
+ :max => max
+ }
+
+ res = request ( " /proofing/suggestions " , :get , params )
+ if res . kind_of? Net :: HTTPSuccess
+ return JSON . parse ( res . body )
+ else
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+ #get_template_count ⇒ Integer
+
+
+
+
+
+
+
+
+
Returns the number of templates in the template storage.
+
+
+
+
+
+
+
+
+
+
+80
+81
+82
+83
+84
+85
+86
+87
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 80
+
+def get_template_count
+ res = request ( " /templates/count " , :get )
+ if res . kind_of? Net :: HTTPSuccess
+ return Integer ( res . body )
+ else
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+ #get_template_info (template_name) ⇒ TemplateInfo
+
+
+
+
+
+
+
+
+
Returns information about a template including merge fields and merge
+blocks.
+
+
+
+
+
+
+
+
+
+
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 316
+
+def get_template_info ( template_name )
+ TemplateNameValidator . validate ( template_name )
+
+ res = request ( " /templates/info " , :get , { :templateName => template_name } )
+ if res . kind_of? Net :: HTTPSuccess
+ return TemplateInfo . from_camelized_hash ( JSON . parse ( res . body ) )
+ else
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+ #get_template_page_count (template_name) ⇒ Integer
+
+
+
+
+
+
+
+
+
Returns the number of pages of a template in the template storage.
+
+
+
+
+
+
+
+
+
+
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 272
+
+def get_template_page_count ( template_name )
+ TemplateNameValidator . validate ( template_name )
+
+ res = request ( " /templates/pagecount " , :get , { :templateName => template_name } )
+ if res . kind_of? Net :: HTTPSuccess
+ return Integer ( res . body )
+ else
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+ #get_template_thumbnails (template_name, zoom_factor, from_page = 1, to_page = 0, image_format = :png) ⇒ Array<String >
+
+
+
+
+
+
+
+
+
Returns a list of thumbnails of a specific template.
+
+
+
+
+
+
+
+
+
+
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 178
+
+def get_template_thumbnails ( template_name , zoom_factor , from_page = 1 , to_page = 0 , image_format = :png )
+ params = {
+ :templateName => template_name ,
+ :zoomFactor => zoom_factor ,
+ :fromPage => from_page ,
+ :toPage => to_page ,
+ }
+ if image_format != :png
+ params [ :imageFormat ] = image_format
+ end
+
+ res = request ( " /templates/thumbnails " , :get , params )
+ if res . kind_of? Net :: HTTPSuccess
+ return JSON . parse ( res . body )
+ else
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+ #list_fonts ⇒ Array<String >
+
+
+
+
+
+
+
+
+
Lists all available fonts.
+
+
+
+
+
+
+
+
+
+
+366
+367
+368
+369
+370
+371
+372
+373
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 366
+
+def list_fonts
+ res = request ( " /fonts/list " , :get )
+ if res . kind_of? Net :: HTTPSuccess
+ return JSON . parse ( res . body )
+ else
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+ #list_templates ⇒ Array<Template >
+
+
+
+
+
+
+
+
+
Lists all templates from the template storage.
+
+
+
+
+
+
+
+
+
+
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 64
+
+def list_templates
+ res = request ( " /templates/list " , :get )
+ if res . kind_of? Net :: HTTPSuccess
+ templates = Array . new
+ data = JSON . parse ( res . body , object_class: OpenStruct )
+ data . each do | elem |
+ templates . push ( Template . new ( elem . templateName , elem . modified , elem . size ) )
+ end
+ return templates
+ else
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+ #merge_document (merge_body, template_name = nil, return_format = :pdf, append = false, test = false) ⇒ Array<String >
+
+
+
+
+
+
+
+
+
Merges and returns a template from the template storage or an uploaded
+template with JSON data.
+
+
+
+
+
+
+
+
+
+
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 104
+
+def merge_document ( merge_body , template_name = nil , return_format = :pdf , append = false , test = false )
+ if ! template_name . to_s . empty? && ! merge_body . template . nil? raise ArgumentError , " Template name and template data must not be present at the same time. "
+ elsif template_name . to_s . empty? && merge_body . template . nil?
+ raise ArgumentError , " Either a template name or template data have to be present. "
+ end
+
+ params = {
+ :returnFormat => return_format ,
+ :append => append ,
+ :test => test
+ }
+ unless template_name . to_s . empty?
+ params [ :templateName ] = template_name
+ end
+
+ res = request ( " /document/merge " , :post , params , merge_body )
+ if res . kind_of? Net :: HTTPSuccess
+ return JSON . parse ( res . body )
+ else
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+ #template_exists? (template_name) ⇒ Boolean
+
+
+
+
+
+
+
+
+
Checks whether a template exists in the template storage.
+
+
+
+
+
+
+
+
+
+
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 250
+
+def template_exists? ( template_name )
+ TemplateNameValidator . validate ( template_name )
+
+ res = request ( " /templates/exists " , :get , { :templateName => template_name } )
+ if res . kind_of? Net :: HTTPSuccess
+ case res . body
+ when " true "
+ return true
+ when " false "
+ return false
+ else raise " Unknown response value received. "
+ end
+ else
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+ #upload_template (template_name, template_data) ⇒ void
+
+
+
+
+
+
+
+
This method returns an undefined value.
+
Stores an uploaded template in the template storage ( *.doc , *.docx ,
+*.rtf and *.tx )
+
+
+
+
+
+
+
+
+
+
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+
+
+ # File 'lib/txtextcontrol/reportingcloud/reportingcloud.rb', line 219
+
+def upload_template ( template_name , template_data )
+ TemplateNameValidator . validate ( template_name )
+ TemplateDataValidator . validate ( template_data )
+
+ res = request ( " /templates/upload " , :post , { :templateName => template_name } , template_data )
+ unless res . kind_of? Net :: HTTPSuccess
+ raise res . body
+ end
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TXTextControl/ReportingCloud/Template.html b/TXTextControl/ReportingCloud/Template.html
new file mode 100644
index 0000000..a1ab8df
--- /dev/null
+++ b/TXTextControl/ReportingCloud/Template.html
@@ -0,0 +1,522 @@
+
+
+
+
+
+
+ Class: TXTextControl::ReportingCloud::Template
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: TXTextControl::ReportingCloud::Template
+
+
+
+
+
+
+
+ Inherits:
+
+ Object
+
+
+ Object
+
+ TXTextControl::ReportingCloud::Template
+
+
+ show all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in:
+ lib/txtextcontrol/reportingcloud/template.rb
+
+
+
+
+
Overview
+
+
+
Holds information about a template in the template storage.
+
+
+
+
+
+
+
+
+
Instance Attribute Summary collapse
+
+
+
+
+
+ #modified ⇒ DateTime
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
The date and time the template file was last modified.
+
+
+
+
+
+
+
+
+ #size ⇒ Integer
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
The size of the template file in bytes.
+
+
+
+
+
+
+
+
+ #template_name ⇒ String
+
+
+
+
+
+
+
+
+ readonly
+
+
+
+
+
+
+
+
+
+
+
The template file name.
+
+
+
+
+
+
+
+
+
+
+
+
+ Instance Method Summary
+ collapse
+
+
+
+
+
+
+
Constructor Details
+
+
+
+
+ #initialize (template_name, modified, size) ⇒ Template
+
+
+
+
+
+
+
+
+
Returns a new instance of Template
+
+
+
+
+
+
+
+
+
+
+
+
+
+30
+31
+32
+33
+34
+35
+36
+37
+38
+
+
+ # File 'lib/txtextcontrol/reportingcloud/template.rb', line 30
+
+def initialize ( template_name , modified , size )
+ @template_name = template_name
+ if modified . is_a? ( DateTime )
+ @modified = modified
+ else
+ @modified = DateTime . iso8601 ( modified )
+ end
+ @size = size
+end
+
+
+
+
+
+
+
+
+
Instance Attribute Details
+
+
+
+
+
+
+ #modified ⇒ DateTime
+
+
+
+
+
+
+
+
+
The date and time the template file was last modified.
+
+
+
+
+
+
+
+
+
+
+25
+26
+27
+
+
+ # File 'lib/txtextcontrol/reportingcloud/template.rb', line 25
+
+def modified
+ @modified
+end
+
+
+
+
+
+
+
+
+
+
+ #size ⇒ Integer
+
+
+
+
+
+
+
+
+
The size of the template file in bytes.
+
+
+
+
+
+
+
+
+
+
+25
+26
+27
+
+
+ # File 'lib/txtextcontrol/reportingcloud/template.rb', line 25
+
+def size
+ @size
+end
+
+
+
+
+
+
+
+
+
+
+ #template_name ⇒ String
+
+
+
+
+
+
+
+
+
The template file name.
+
+
+
+
+
+
+
+
+
+
+25
+26
+27
+
+
+ # File 'lib/txtextcontrol/reportingcloud/template.rb', line 25
+
+def template_name
+ @template_name
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TXTextControl/ReportingCloud/TemplateDataValidator.html b/TXTextControl/ReportingCloud/TemplateDataValidator.html
new file mode 100644
index 0000000..0679c09
--- /dev/null
+++ b/TXTextControl/ReportingCloud/TemplateDataValidator.html
@@ -0,0 +1,278 @@
+
+
+
+
+
+
+ Class: TXTextControl::ReportingCloud::TemplateDataValidator
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: TXTextControl::ReportingCloud::TemplateDataValidator
+
+
+
+
+
+
+
+ Inherits:
+
+ Object
+
+
+ Object
+
+ TXTextControl::ReportingCloud::TemplateDataValidator
+
+
+ show all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in:
+ lib/txtextcontrol/reportingcloud/template_data_validator.rb
+
+
+
+
+
Overview
+
+
+
Internal method parameter validator class.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Method Summary
+ collapse
+
+
+
+
+
+
+
+
+
Class Method Details
+
+
+
+
+
+ .validate (template_data) ⇒ Boolean
+
+
+
+
+
+
+
+
+
Checks if a given value is a String, is not nil and not empty.
+
+
+
+
+
+
+
+
+
+
+24
+25
+26
+27
+
+
+ # File 'lib/txtextcontrol/reportingcloud/template_data_validator.rb', line 24
+
+def self . validate ( template_data )
+ raise ArgumentError , " Template data must be a Base64 encoded string. " if ! template_data . kind_of? String
+ raise ArgumentError , " No template data given. " if template_data . to_s . empty?
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TXTextControl/ReportingCloud/TemplateInfo.html b/TXTextControl/ReportingCloud/TemplateInfo.html
new file mode 100644
index 0000000..570d9c3
--- /dev/null
+++ b/TXTextControl/ReportingCloud/TemplateInfo.html
@@ -0,0 +1,746 @@
+
+
+
+
+
+
+ Class: TXTextControl::ReportingCloud::TemplateInfo
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: TXTextControl::ReportingCloud::TemplateInfo
+
+
+
+
+
+
+
+ Inherits:
+
+ Object
+
+
+ Object
+
+ TXTextControl::ReportingCloud::TemplateInfo
+
+
+ show all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in:
+ lib/txtextcontrol/reportingcloud/template_info.rb
+
+
+
+
+
Overview
+
+
+
Holds information about the merge blocks and merge fields in a template
+
+
in the template storage.
+
+
+
+
+
+
+
+
+
Instance Attribute Summary collapse
+
+
+
+
+
+
+
+ Class Method Summary
+ collapse
+
+
+
+
+
+ Instance Method Summary
+ collapse
+
+
+
+
+
+
+
Constructor Details
+
+
+
+
+ #initialize (template_name, merge_blocks, merge_fields) ⇒ TemplateInfo
+
+
+
+
+
+
+
+
+
Returns a new instance of TemplateInfo
+
+
+
+
+
+
+
+
+
+
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+
+
+ # File 'lib/txtextcontrol/reportingcloud/template_info.rb', line 36
+
+def initialize ( template_name , merge_blocks , merge_fields )
+ raise ArgumentError , " Block name must be a string. " if ! template_name . kind_of? String
+ raise ArgumentError , " Parameter merge_blocks must be an array. " if ! merge_blocks . kind_of? Array
+ raise ArgumentError , " Parameter merge_fields must be an array. " if ! merge_fields . kind_of? Array
+
+ @template_name = template_name
+ @merge_blocks = merge_blocks
+ @merge_fields = merge_fields
+end
+
+
+
+
+
+
+
+
+
Instance Attribute Details
+
+
+
+
+
+
+ #merge_blocks ⇒ Array<MergeBlock >
+
+
+
+
+
+
+
+
+
Contains all top level merge blocks in the template.
+
+
+
+
+
+
+
+
+
+
+28
+29
+30
+
+
+ # File 'lib/txtextcontrol/reportingcloud/template_info.rb', line 28
+
+def merge_blocks
+ @merge_blocks
+end
+
+
+
+
+
+
+
+
+
+
+ #merge_fields ⇒ Array<MergeField >
+
+
+
+
+
+
+
+
+
Contains all top level merge fields in the template.
+
+
+
+
+
+
+
+
+
+
+28
+29
+30
+
+
+ # File 'lib/txtextcontrol/reportingcloud/template_info.rb', line 28
+
+def merge_fields
+ @merge_fields
+end
+
+
+
+
+
+
+
+
+
+
+ #template_name ⇒ String
+
+
+
+
+
+
+
+
+
The template file name.
+
+
+
+
+
+
+
+
+
+
+28
+29
+30
+
+
+ # File 'lib/txtextcontrol/reportingcloud/template_info.rb', line 28
+
+def template_name
+ @template_name
+end
+
+
+
+
+
+
+
+
+
+
Class Method Details
+
+
+
+
+
+ .from_camelized_hash (hash) ⇒ TemplateInfo
+
+
+
+
+
+
+
+
+
Creates a TemplateInfo instance from a hash.
+
+
+
+
+
+
+
+
+
+
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+
+
+ # File 'lib/txtextcontrol/reportingcloud/template_info.rb', line 50
+
+def self . from_camelized_hash ( hash )
+ raise ArgumentError , " Parameter must be a Hash. " if ! hash . kind_of? Hash
+
+ name = hash [ " templateName " ]
+ blocks = Array . new
+ hash [ " mergeBlocks " ] . each do | elem |
+ blocks . push ( MergeBlock . from_camelized_hash ( elem ) )
+ end
+ fields = Array . new
+ hash [ " mergeFields " ] . each do | elem |
+ fields . push ( MergeField . from_camelized_hash ( elem ) )
+ end
+ return TemplateInfo . new ( name , blocks , fields )
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TXTextControl/ReportingCloud/TemplateNameValidator.html b/TXTextControl/ReportingCloud/TemplateNameValidator.html
new file mode 100644
index 0000000..1b9beaa
--- /dev/null
+++ b/TXTextControl/ReportingCloud/TemplateNameValidator.html
@@ -0,0 +1,278 @@
+
+
+
+
+
+
+ Class: TXTextControl::ReportingCloud::TemplateNameValidator
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Class: TXTextControl::ReportingCloud::TemplateNameValidator
+
+
+
+
+
+
+
+ Inherits:
+
+ Object
+
+
+ Object
+
+ TXTextControl::ReportingCloud::TemplateNameValidator
+
+
+ show all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Defined in:
+ lib/txtextcontrol/reportingcloud/template_name_validator.rb
+
+
+
+
+
Overview
+
+
+
Internal method parameter validator class.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Method Summary
+ collapse
+
+
+
+
+
+
+
+
+
Class Method Details
+
+
+
+
+
+ .validate (template_name) ⇒ Boolean
+
+
+
+
+
+
+
+
+
Checks if a given value is a String, is not nil and not empty.
+
+
+
+
+
+
+
+
+
+
+24
+25
+26
+27
+
+
+ # File 'lib/txtextcontrol/reportingcloud/template_name_validator.rb', line 24
+
+def self . validate ( template_name )
+ raise ArgumentError , " Template name must be a String. " if ! template_name . kind_of? String
+ raise ArgumentError , " No template name given. " if template_name . to_s . empty?
+end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/_index.html b/_index.html
new file mode 100644
index 0000000..9daee55
--- /dev/null
+++ b/_index.html
@@ -0,0 +1,290 @@
+
+
+
+
+
+
+ Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Documentation by YARD 0.9.8
+
+
Alphabetic Index
+
+
File Listing
+
+
+
+
Namespace Listing A-Z
+
+
+
+
+
+
+
+
+
+
+ A
+
+
+
+ APIKey
+
+ (TXTextControl::ReportingCloud)
+
+
+
+
+ AccountSettings
+
+ (TXTextControl::ReportingCloud)
+
+
+
+
+ AppendBody
+
+ (TXTextControl::ReportingCloud)
+
+
+
+
+ AppendDocument
+
+ (TXTextControl::ReportingCloud)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ M
+
+
+
+ MergeBlock
+
+ (TXTextControl::ReportingCloud)
+
+
+
+
+ MergeBody
+
+ (TXTextControl::ReportingCloud)
+
+
+
+
+ MergeField
+
+ (TXTextControl::ReportingCloud)
+
+
+
+
+ MergeSettings
+
+ (TXTextControl::ReportingCloud)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/bin/console b/bin/console
deleted file mode 100644
index bb5a86d..0000000
--- a/bin/console
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/env ruby
-
-require "bundler/setup"
-require "txtextcontrol/reportingcloud"
-
-# You can add fixtures and/or initialization code here to make experimenting
-# with your gem easier. You can also use a different console, if you like.
-
-# (If you use this, don't forget to add pry to your Gemfile!)
-# require "pry"
-# Pry.start
-
-require "irb"
-IRB.start
diff --git a/bin/setup b/bin/setup
deleted file mode 100644
index 5ffb724..0000000
--- a/bin/setup
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env bash
-set -euo pipefail
-IFS=$'\n\t'
-set -vx
-
-bundle install
-
-# Do any other automated setup that you need to do here
diff --git a/class_list.html b/class_list.html
new file mode 100644
index 0000000..1290191
--- /dev/null
+++ b/class_list.html
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class List
+
+
+
+
+
+
+
+
+String < Object
Top Level Namespace APIKey < Object
TXTextControl::ReportingCloud MergeBody < Object
TXTextControl::ReportingCloud Template < Object
TXTextControl::ReportingCloud
+
+
+
+
+
diff --git a/css/common.css b/css/common.css
new file mode 100644
index 0000000..cf25c45
--- /dev/null
+++ b/css/common.css
@@ -0,0 +1 @@
+/* Override this file with custom rules */
\ No newline at end of file
diff --git a/css/full_list.css b/css/full_list.css
new file mode 100644
index 0000000..fa35982
--- /dev/null
+++ b/css/full_list.css
@@ -0,0 +1,58 @@
+body {
+ margin: 0;
+ font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
+ font-size: 13px;
+ height: 101%;
+ overflow-x: hidden;
+ background: #fafafa;
+}
+
+h1 { padding: 12px 10px; padding-bottom: 0; margin: 0; font-size: 1.4em; }
+.clear { clear: both; }
+.fixed_header { position: fixed; background: #fff; width: 100%; padding-bottom: 10px; margin-top: 0; top: 0; z-index: 9999; height: 70px; }
+#search { position: absolute; right: 5px; top: 9px; padding-left: 24px; }
+#content.insearch #search, #content.insearch #noresults { background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==) no-repeat center left; }
+#full_list { padding: 0; list-style: none; margin-left: 0; margin-top: 80px; font-size: 1.1em; }
+#full_list ul { padding: 0; }
+#full_list li { padding: 0; margin: 0; list-style: none; }
+#full_list li .item { padding: 5px 5px 5px 12px; }
+#noresults { padding: 7px 12px; background: #fff; }
+#content.insearch #noresults { margin-left: 7px; }
+li.collapsed ul { display: none; }
+li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; }
+li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; }
+li { color: #888; cursor: pointer; }
+li.deprecated { text-decoration: line-through; font-style: italic; }
+li.odd { background: #f0f0f0; }
+li.even { background: #fafafa; }
+.item:hover { background: #ddd; }
+li small:before { content: "("; }
+li small:after { content: ")"; }
+li small.search_info { display: none; }
+a, a:visited { text-decoration: none; color: #05a; }
+li.clicked > .item { background: #05a; color: #ccc; }
+li.clicked > .item a, li.clicked > .item a:visited { color: #eee; }
+li.clicked > .item a.toggle { opacity: 0.5; background-position: bottom right; }
+li.collapsed.clicked a.toggle { background-position: top right; }
+#search input { border: 1px solid #bbb; border-radius: 3px; }
+#full_list_nav { margin-left: 10px; font-size: 0.9em; display: block; color: #aaa; }
+#full_list_nav a, #nav a:visited { color: #358; }
+#full_list_nav a:hover { background: transparent; color: #5af; }
+#full_list_nav span:after { content: ' | '; }
+#full_list_nav span:last-child:after { content: ''; }
+
+#content h1 { margin-top: 0; }
+li { white-space: nowrap; cursor: normal; }
+li small { display: block; font-size: 0.8em; }
+li small:before { content: ""; }
+li small:after { content: ""; }
+li small.search_info { display: none; }
+#search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; }
+#content.insearch #search { background-position: center right; }
+#search input { width: 110px; }
+
+#full_list.insearch ul { display: block; }
+#full_list.insearch .item { display: none; }
+#full_list.insearch .found { display: block; padding-left: 11px !important; }
+#full_list.insearch li a.toggle { display: none; }
+#full_list.insearch li small.search_info { display: block; }
diff --git a/css/style.css b/css/style.css
new file mode 100644
index 0000000..f682a69
--- /dev/null
+++ b/css/style.css
@@ -0,0 +1,492 @@
+html {
+ width: 100%;
+ height: 100%;
+}
+body {
+ font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
+ font-size: 13px;
+ width: 100%;
+ margin: 0;
+ padding: 0;
+ display: flex;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+}
+
+#nav {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ border: 0;
+ border-right: 1px dotted #eee;
+ overflow: auto;
+}
+.nav_wrap {
+ margin: 0;
+ padding: 0;
+ width: 20%;
+ height: 100%;
+ position: relative;
+ display: flex;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+ flex-shrink: 0;
+ -webkit-flex-shrink: 0;
+ -ms-flex: 1 0;
+}
+#resizer {
+ position: absolute;
+ right: -5px;
+ top: 0;
+ width: 10px;
+ height: 100%;
+ cursor: col-resize;
+ z-index: 9999;
+}
+#main {
+ flex: 5 1;
+ -webkit-flex: 5 1;
+ -ms-flex: 5 1;
+ outline: none;
+ position: relative;
+ background: #fff;
+ padding: 1.2em;
+ padding-top: 0.2em;
+}
+
+@media (max-width: 920px) {
+ .nav_wrap { width: 100%; top: 0; right: 0; overflow: visible; position: absolute; }
+ #resizer { display: none; }
+ #nav {
+ z-index: 9999;
+ background: #fff;
+ display: none;
+ position: absolute;
+ top: 40px;
+ right: 12px;
+ width: 500px;
+ max-width: 80%;
+ height: 80%;
+ overflow-y: scroll;
+ border: 1px solid #999;
+ border-collapse: collapse;
+ box-shadow: -7px 5px 25px #aaa;
+ border-radius: 2px;
+ }
+}
+
+@media (min-width: 920px) {
+ body { height: 100%; overflow: hidden; }
+ #main { height: 100%; overflow: auto; }
+ #search { display: none; }
+}
+
+#main img { max-width: 100%; }
+h1 { font-size: 25px; margin: 1em 0 0.5em; padding-top: 4px; border-top: 1px dotted #d5d5d5; }
+h1.noborder { border-top: 0px; margin-top: 0; padding-top: 4px; }
+h1.title { margin-bottom: 10px; }
+h1.alphaindex { margin-top: 0; font-size: 22px; }
+h2 {
+ padding: 0;
+ padding-bottom: 3px;
+ border-bottom: 1px #aaa solid;
+ font-size: 1.4em;
+ margin: 1.8em 0 0.5em;
+ position: relative;
+}
+h2 small { font-weight: normal; font-size: 0.7em; display: inline; position: absolute; right: 0; }
+h2 small a {
+ display: block;
+ height: 20px;
+ border: 1px solid #aaa;
+ border-bottom: 0;
+ border-top-left-radius: 5px;
+ background: #f8f8f8;
+ position: relative;
+ padding: 2px 7px;
+}
+.clear { clear: both; }
+.inline { display: inline; }
+.inline p:first-child { display: inline; }
+.docstring, .tags, #filecontents { font-size: 15px; line-height: 1.5145em; }
+.docstring p > code, .docstring p > tt, .tags p > code, .tags p > tt {
+ color: #c7254e; background: #f9f2f4; padding: 2px 4px; font-size: 1em;
+ border-radius: 4px;
+}
+.docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 1px dotted #bbb; }
+.docstring h1 { font-size: 1.2em; }
+.docstring h2 { font-size: 1.1em; }
+.docstring h3, .docstring h4 { font-size: 1em; border-bottom: 0; padding-top: 10px; }
+.summary_desc .object_link a, .docstring .object_link a {
+ font-family: monospace; font-size: 1.05em;
+ color: #05a; background: #EDF4FA; padding: 2px 4px; font-size: 1em;
+ border-radius: 4px;
+}
+.rdoc-term { padding-right: 25px; font-weight: bold; }
+.rdoc-list p { margin: 0; padding: 0; margin-bottom: 4px; }
+.summary_desc pre.code .object_link a, .docstring pre.code .object_link a {
+ padding: 0px; background: inherit; color: inherit; border-radius: inherit;
+}
+
+/* style for */
+#filecontents table, .docstring table { border-collapse: collapse; }
+#filecontents table th, #filecontents table td,
+.docstring table th, .docstring table td { border: 1px solid #ccc; padding: 8px; padding-right: 17px; }
+#filecontents table tr:nth-child(odd),
+.docstring table tr:nth-child(odd) { background: #eee; }
+#filecontents table tr:nth-child(even),
+.docstring table tr:nth-child(even) { background: #fff; }
+#filecontents table th, .docstring table th { background: #fff; }
+
+/* style for */
+#filecontents li > p, .docstring li > p { margin: 0px; }
+#filecontents ul, .docstring ul { padding-left: 20px; }
+/* style for */
+#filecontents dl, .docstring dl { border: 1px solid #ccc; }
+#filecontents dt, .docstring dt { background: #ddd; font-weight: bold; padding: 3px 5px; }
+#filecontents dd, .docstring dd { padding: 5px 0px; margin-left: 18px; }
+#filecontents dd > p, .docstring dd > p { margin: 0px; }
+
+.note {
+ color: #222;
+ margin: 20px 0;
+ padding: 10px;
+ border: 1px solid #eee;
+ border-radius: 3px;
+ display: block;
+}
+.docstring .note {
+ border-left-color: #ccc;
+ border-left-width: 5px;
+}
+.note.todo { background: #ffffc5; border-color: #ececaa; }
+.note.returns_void { background: #efefef; }
+.note.deprecated { background: #ffe5e5; border-color: #e9dada; }
+.note.title.deprecated { background: #ffe5e5; border-color: #e9dada; }
+.note.private { background: #ffffc5; border-color: #ececaa; }
+.note.title { padding: 3px 6px; font-size: 0.9em; font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; display: inline; }
+.summary_signature + .note.title { margin-left: 7px; }
+h1 .note.title { font-size: 0.5em; font-weight: normal; padding: 3px 5px; position: relative; top: -3px; text-transform: capitalize; }
+.note.title { background: #efefef; }
+.note.title.constructor { color: #fff; background: #6a98d6; border-color: #6689d6; }
+.note.title.writeonly { color: #fff; background: #45a638; border-color: #2da31d; }
+.note.title.readonly { color: #fff; background: #6a98d6; border-color: #6689d6; }
+.note.title.private { background: #d5d5d5; border-color: #c5c5c5; }
+.note.title.not_defined_here { background: transparent; border: none; font-style: italic; }
+.discussion .note { margin-top: 6px; }
+.discussion .note:first-child { margin-top: 0; }
+
+h3.inherited {
+ font-style: italic;
+ font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
+ font-weight: normal;
+ padding: 0;
+ margin: 0;
+ margin-top: 12px;
+ margin-bottom: 3px;
+ font-size: 13px;
+}
+p.inherited {
+ padding: 0;
+ margin: 0;
+ margin-left: 25px;
+}
+
+.box_info dl {
+ margin: 0;
+ border: 0;
+ width: 100%;
+ font-size: 1em;
+ display: flex;
+ display: -webkit-flex;
+ display: -ms-flexbox;
+}
+.box_info dl dt {
+ flex-shrink: 0;
+ -webkit-flex-shrink: 1;
+ -ms-flex-shrink: 1;
+ width: 100px;
+ text-align: right;
+ font-weight: bold;
+ border: 1px solid #aaa;
+ border-width: 1px 0px 0px 1px;
+ padding: 6px 0;
+ padding-right: 10px;
+}
+.box_info dl dd {
+ flex-grow: 1;
+ -webkit-flex-grow: 1;
+ -ms-flex: 1;
+ max-width: 420px;
+ padding: 6px 0;
+ padding-right: 20px;
+ border: 1px solid #aaa;
+ border-width: 1px 1px 0 0;
+ overflow: hidden;
+ position: relative;
+}
+.box_info dl:last-child > * {
+ border-bottom: 1px solid #aaa;
+}
+.box_info dl:nth-child(odd) > * { background: #eee; }
+.box_info dl:nth-child(even) > * { background: #fff; }
+.box_info dl > * { margin: 0; }
+
+ul.toplevel { list-style: none; padding-left: 0; font-size: 1.1em; }
+.index_inline_list { padding-left: 0; font-size: 1.1em; }
+
+.index_inline_list li {
+ list-style: none;
+ display: inline-block;
+ padding: 0 12px;
+ line-height: 30px;
+ margin-bottom: 5px;
+}
+
+dl.constants { margin-left: 10px; }
+dl.constants dt { font-weight: bold; font-size: 1.1em; margin-bottom: 5px; }
+dl.constants dd { width: 75%; white-space: pre; font-family: monospace; margin-bottom: 18px; }
+dl.constants .docstring .note:first-child { margin-top: 5px; }
+
+.summary_desc {
+ margin-left: 32px;
+ display: block;
+ font-family: sans-serif;
+ font-size: 1.1em;
+ margin-top: 8px;
+ line-height: 1.5145em;
+ margin-bottom: 0.8em;
+}
+.summary_desc tt { font-size: 0.9em; }
+dl.constants .note { padding: 2px 6px; padding-right: 12px; margin-top: 6px; }
+dl.constants .docstring { margin-left: 32px; font-size: 0.9em; font-weight: normal; }
+dl.constants .tags { padding-left: 32px; font-size: 0.9em; line-height: 0.8em; }
+dl.constants .discussion *:first-child { margin-top: 0; }
+dl.constants .discussion *:last-child { margin-bottom: 0; }
+
+.method_details { border-top: 1px dotted #ccc; margin-top: 25px; padding-top: 0; }
+.method_details.first { border: 0; margin-top: 5px; }
+.method_details.first h3.signature { margin-top: 1em; }
+p.signature, h3.signature {
+ font-size: 1.1em; font-weight: normal; font-family: Monaco, Consolas, Courier, monospace;
+ padding: 6px 10px; margin-top: 1em;
+ background: #E8F4FF; border: 1px solid #d8d8e5; border-radius: 5px;
+}
+p.signature tt,
+h3.signature tt { font-family: Monaco, Consolas, Courier, monospace; }
+p.signature .overload,
+h3.signature .overload { display: block; }
+p.signature .extras,
+h3.signature .extras { font-weight: normal; font-family: sans-serif; color: #444; font-size: 1em; }
+p.signature .not_defined_here,
+h3.signature .not_defined_here,
+p.signature .aliases,
+h3.signature .aliases { display: block; font-weight: normal; font-size: 0.9em; font-family: sans-serif; margin-top: 0px; color: #555; }
+p.signature .aliases .names,
+h3.signature .aliases .names { font-family: Monaco, Consolas, Courier, monospace; font-weight: bold; color: #000; font-size: 1.2em; }
+
+.tags .tag_title { font-size: 1.05em; margin-bottom: 0; font-weight: bold; }
+.tags .tag_title tt { color: initial; padding: initial; background: initial; }
+.tags ul { margin-top: 5px; padding-left: 30px; list-style: square; }
+.tags ul li { margin-bottom: 3px; }
+.tags ul .name { font-family: monospace; font-weight: bold; }
+.tags ul .note { padding: 3px 6px; }
+.tags { margin-bottom: 12px; }
+
+.tags .examples .tag_title { margin-bottom: 10px; font-weight: bold; }
+.tags .examples .inline p { padding: 0; margin: 0; font-weight: bold; font-size: 1em; }
+.tags .examples .inline p:before { content: "▸"; font-size: 1em; margin-right: 5px; }
+
+.tags .overload .overload_item { list-style: none; margin-bottom: 25px; }
+.tags .overload .overload_item .signature {
+ padding: 2px 8px;
+ background: #F1F8FF; border: 1px solid #d8d8e5; border-radius: 3px;
+}
+.tags .overload .signature { margin-left: -15px; font-family: monospace; display: block; font-size: 1.1em; }
+.tags .overload .docstring { margin-top: 15px; }
+
+.defines { display: none; }
+
+#method_missing_details .notice.this { position: relative; top: -8px; color: #888; padding: 0; margin: 0; }
+
+.showSource { font-size: 0.9em; }
+.showSource a, .showSource a:visited { text-decoration: none; color: #666; }
+
+#content a, #content a:visited { text-decoration: none; color: #05a; }
+#content a:hover { background: #ffffa5; }
+
+ul.summary {
+ list-style: none;
+ font-family: monospace;
+ font-size: 1em;
+ line-height: 1.5em;
+ padding-left: 0px;
+}
+ul.summary a, ul.summary a:visited {
+ text-decoration: none; font-size: 1.1em;
+}
+ul.summary li { margin-bottom: 5px; }
+.summary .summary_signature {
+ padding: 4px 8px;
+ background: #f8f8f8;
+ border: 1px solid #f0f0f0;
+ border-radius: 5px;
+}
+.summary_signature:hover { background: #CFEBFF; border-color: #A4CCDA; cursor: pointer; }
+ul.summary.compact li { display: inline-block; margin: 0px 5px 0px 0px; line-height: 2.6em;}
+ul.summary.compact .summary_signature { padding: 5px 7px; padding-right: 4px; }
+#content .summary_signature:hover a,
+#content .summary_signature:hover a:visited {
+ background: transparent;
+ color: #049;
+}
+
+p.inherited a { font-family: monospace; font-size: 0.9em; }
+p.inherited { word-spacing: 5px; font-size: 1.2em; }
+
+p.children { font-size: 1.2em; }
+p.children a { font-size: 0.9em; }
+p.children strong { font-size: 0.8em; }
+p.children strong.modules { padding-left: 5px; }
+
+ul.fullTree { display: none; padding-left: 0; list-style: none; margin-left: 0; margin-bottom: 10px; }
+ul.fullTree ul { margin-left: 0; padding-left: 0; list-style: none; }
+ul.fullTree li { text-align: center; padding-top: 18px; padding-bottom: 12px; background: url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAHtJREFUeNqMzrEJAkEURdGzuhgZbSoYWcAWoBVsB4JgZAGmphsZCZYzTQgWNCYrDN9RvMmHx+X916SUBFbo8CzD1idXrLErw1mQttgXtyrOcQ/Ny5p4Qh+2XqLYYazsPWNTiuMkRxa4vcV+evuNAUOLIx5+c2hyzv7hNQC67Q+/HHmlEwAAAABJRU5ErkJggg==) no-repeat top center; }
+ul.fullTree li:first-child { padding-top: 0; background: transparent; }
+ul.fullTree li:last-child { padding-bottom: 0; }
+.showAll ul.fullTree { display: block; }
+.showAll .inheritName { display: none; }
+
+#search { position: absolute; right: 12px; top: 0px; z-index: 9000; }
+#search a {
+ display: block; float: left;
+ padding: 4px 8px; text-decoration: none; color: #05a; fill: #05a;
+ border: 1px solid #d8d8e5;
+ border-bottom-left-radius: 3px; border-bottom-right-radius: 3px;
+ background: #F1F8FF;
+ box-shadow: -1px 1px 3px #ddd;
+}
+#search a:hover { background: #f5faff; color: #06b; fill: #06b; }
+#search a.active {
+ background: #568; padding-bottom: 20px; color: #fff; fill: #fff;
+ border: 1px solid #457;
+ border-top-left-radius: 5px; border-top-right-radius: 5px;
+}
+#search a.inactive { color: #999; fill: #999; }
+.inheritanceTree, .toggleDefines {
+ float: right;
+ border-left: 1px solid #aaa;
+ position: absolute; top: 0; right: 0;
+ height: 100%;
+ background: #f6f6f6;
+ padding: 5px;
+ min-width: 55px;
+ text-align: center;
+}
+
+#menu { font-size: 1.3em; color: #bbb; }
+#menu .title, #menu a { font-size: 0.7em; }
+#menu .title a { font-size: 1em; }
+#menu .title { color: #555; }
+#menu a, #menu a:visited { color: #333; text-decoration: none; border-bottom: 1px dotted #bbd; }
+#menu a:hover { color: #05a; }
+
+#footer { margin-top: 15px; border-top: 1px solid #ccc; text-align: center; padding: 7px 0; color: #999; }
+#footer a, #footer a:visited { color: #444; text-decoration: none; border-bottom: 1px dotted #bbd; }
+#footer a:hover { color: #05a; }
+
+#listing ul.alpha { font-size: 1.1em; }
+#listing ul.alpha { margin: 0; padding: 0; padding-bottom: 10px; list-style: none; }
+#listing ul.alpha li.letter { font-size: 1.4em; padding-bottom: 10px; }
+#listing ul.alpha ul { margin: 0; padding-left: 15px; }
+#listing ul small { color: #666; font-size: 0.7em; }
+
+li.r1 { background: #f0f0f0; }
+li.r2 { background: #fafafa; }
+
+#content ul.summary li.deprecated .summary_signature a,
+#content ul.summary li.deprecated .summary_signature a:visited { text-decoration: line-through; font-style: italic; }
+
+#toc {
+ position: relative;
+ float: right;
+ overflow-x: auto;
+ right: -3px;
+ margin-left: 20px;
+ margin-bottom: 20px;
+ padding: 20px; padding-right: 30px;
+ max-width: 300px;
+ z-index: 5000;
+ background: #fefefe;
+ border: 1px solid #ddd;
+ box-shadow: -2px 2px 6px #bbb;
+}
+#toc .title { margin: 0; }
+#toc ol { padding-left: 1.8em; }
+#toc li { font-size: 1.1em; line-height: 1.7em; }
+#toc > ol > li { font-size: 1.1em; font-weight: bold; }
+#toc ol > ol { font-size: 0.9em; }
+#toc ol ol > ol { padding-left: 2.3em; }
+#toc ol + li { margin-top: 0.3em; }
+#toc.hidden { padding: 10px; background: #fefefe; box-shadow: none; }
+#toc.hidden:hover { background: #fafafa; }
+#filecontents h1 + #toc.nofloat { margin-top: 0; }
+@media (max-width: 560px) {
+ #toc {
+ margin-left: 0;
+ margin-top: 16px;
+ float: none;
+ max-width: none;
+ }
+}
+
+/* syntax highlighting */
+.source_code { display: none; padding: 3px 8px; border-left: 8px solid #ddd; margin-top: 5px; }
+#filecontents pre.code, .docstring pre.code, .source_code pre { font-family: monospace; }
+#filecontents pre.code, .docstring pre.code { display: block; }
+.source_code .lines { padding-right: 12px; color: #555; text-align: right; }
+#filecontents pre.code, .docstring pre.code,
+.tags pre.example {
+ padding: 9px 14px;
+ margin-top: 4px;
+ border: 1px solid #e1e1e8;
+ background: #f7f7f9;
+ border-radius: 4px;
+ font-size: 1em;
+ overflow-x: auto;
+ line-height: 1.2em;
+}
+pre.code { color: #000; tab-size: 2; }
+pre.code .info.file { color: #555; }
+pre.code .val { color: #036A07; }
+pre.code .tstring_content,
+pre.code .heredoc_beg, pre.code .heredoc_end,
+pre.code .qwords_beg, pre.code .qwords_end, pre.code .qwords_sep,
+pre.code .words_beg, pre.code .words_end, pre.code .words_sep,
+pre.code .qsymbols_beg, pre.code .qsymbols_end, pre.code .qsymbols_sep,
+pre.code .symbols_beg, pre.code .symbols_end, pre.code .symbols_sep,
+pre.code .tstring, pre.code .dstring { color: #036A07; }
+pre.code .fid, pre.code .rubyid_new, pre.code .rubyid_to_s,
+pre.code .rubyid_to_sym, pre.code .rubyid_to_f,
+pre.code .dot + pre.code .id,
+pre.code .rubyid_to_i pre.code .rubyid_each { color: #0085FF; }
+pre.code .comment { color: #0066FF; }
+pre.code .const, pre.code .constant { color: #585CF6; }
+pre.code .label,
+pre.code .symbol { color: #C5060B; }
+pre.code .kw,
+pre.code .rubyid_require,
+pre.code .rubyid_extend,
+pre.code .rubyid_include { color: #0000FF; }
+pre.code .ivar { color: #318495; }
+pre.code .gvar,
+pre.code .rubyid_backref,
+pre.code .rubyid_nth_ref { color: #6D79DE; }
+pre.code .regexp, .dregexp { color: #036A07; }
+pre.code a { border-bottom: 1px dotted #bbf; }
+
+/* Color fix for links */
+#content .summary_desc pre.code .id > .object_link a, /* identifier */
+#content .docstring pre.code .id > .object_link a { color: #0085FF; }
+#content .summary_desc pre.code .const > .object_link a, /* constant */
+#content .docstring pre.code .const > .object_link a { color: #585CF6; }
diff --git a/file.README.html b/file.README.html
new file mode 100644
index 0000000..76caa50
--- /dev/null
+++ b/file.README.html
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+ File: README
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ReportingCloud Ruby SDK
+
+
+
+
This is the official Ruby SDK for the ReportingCloud Web API. It is
+authored, maintained and fully supported by Text Control .
+
+
www.reporting.cloud
+
+
Before using ReportingCloud, please sign up to the service:
+
+
portal.reporting.cloud
+
+
Installation
+
+
Add this line to your application's Gemfile:
+
+
gem ' txtextcontrol-reportingcloud '
+
+
+
And then execute:
+
+
$ bundle
+
+
Or install it yourself as:
+
+
$ gem install txtextcontrol-reportingcloud
+
+
API documentation (YARD)
+
+
All the source code in this library is documented using YARD .
+
+
You can read the API
+documentation online, or build it yourself, using the following
+command:
+
+
$ yard doc
+
+
The resultant set of HTML files will be written to
+~/txtextcontrol-reportingcloud-ruby/doc.
+
+
If you don't have YARD already installed, you can install it with
+RubyGems with the following command:
+
+
$ gem install yard
+
+
Contributing
+
+
Bug reports and pull requests are welcome on GitHub at github.com/TextControl/txtextcontrol-reportingcloud-ruby .
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/file_list.html b/file_list.html
new file mode 100644
index 0000000..f2b7288
--- /dev/null
+++ b/file_list.html
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ File List
+
+
+
+
+
+
diff --git a/frames.html b/frames.html
new file mode 100644
index 0000000..b6c2338
--- /dev/null
+++ b/frames.html
@@ -0,0 +1,17 @@
+
+
+
+
+ Documentation by YARD 0.9.8
+
+
+
+ Oops!
+ YARD requires JavaScript!
+
+
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..0476244
--- /dev/null
+++ b/index.html
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+ File: README
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ReportingCloud Ruby SDK
+
+
+
+
This is the official Ruby SDK for the ReportingCloud Web API. It is
+authored, maintained and fully supported by Text Control .
+
+
www.reporting.cloud
+
+
Before using ReportingCloud, please sign up to the service:
+
+
portal.reporting.cloud
+
+
Installation
+
+
Add this line to your application's Gemfile:
+
+
gem ' txtextcontrol-reportingcloud '
+
+
+
And then execute:
+
+
$ bundle
+
+
Or install it yourself as:
+
+
$ gem install txtextcontrol-reportingcloud
+
+
API documentation (YARD)
+
+
All the source code in this library is documented using YARD .
+
+
You can read the API
+documentation online, or build it yourself, using the following
+command:
+
+
$ yard doc
+
+
The resultant set of HTML files will be written to
+~/txtextcontrol-reportingcloud-ruby/doc.
+
+
If you don't have YARD already installed, you can install it with
+RubyGems with the following command:
+
+
$ gem install yard
+
+
Contributing
+
+
Bug reports and pull requests are welcome on GitHub at github.com/TextControl/txtextcontrol-reportingcloud-ruby .
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/js/app.js b/js/app.js
new file mode 100644
index 0000000..58a7fc0
--- /dev/null
+++ b/js/app.js
@@ -0,0 +1,243 @@
+(function() {
+
+var localStorage = {}, sessionStorage = {};
+try { localStorage = window.localStorage; } catch (e) { }
+try { sessionStorage = window.sessionStorage; } catch (e) { }
+
+function createSourceLinks() {
+ $('.method_details_list .source_code').
+ before("[View source ] ");
+ $('.toggleSource').toggle(function() {
+ $(this).parent().nextAll('.source_code').slideDown(100);
+ $(this).text("Hide source");
+ },
+ function() {
+ $(this).parent().nextAll('.source_code').slideUp(100);
+ $(this).text("View source");
+ });
+}
+
+function createDefineLinks() {
+ var tHeight = 0;
+ $('.defines').after(" more... ");
+ $('.toggleDefines').toggle(function() {
+ tHeight = $(this).parent().prev().height();
+ $(this).prev().css('display', 'inline');
+ $(this).parent().prev().height($(this).parent().height());
+ $(this).text("(less)");
+ },
+ function() {
+ $(this).prev().hide();
+ $(this).parent().prev().height(tHeight);
+ $(this).text("more...");
+ });
+}
+
+function createFullTreeLinks() {
+ var tHeight = 0;
+ $('.inheritanceTree').toggle(function() {
+ tHeight = $(this).parent().prev().height();
+ $(this).parent().toggleClass('showAll');
+ $(this).text("(hide)");
+ $(this).parent().prev().height($(this).parent().height());
+ },
+ function() {
+ $(this).parent().toggleClass('showAll');
+ $(this).parent().prev().height(tHeight);
+ $(this).text("show all");
+ });
+}
+
+function searchFrameButtons() {
+ $('.full_list_link').click(function() {
+ toggleSearchFrame(this, $(this).attr('href'));
+ return false;
+ });
+ window.addEventListener('message', function(e) {
+ if (e.data === 'navEscape') {
+ $('#nav').slideUp(100);
+ $('#search a').removeClass('active inactive');
+ $(window).focus();
+ }
+ });
+
+ $(window).resize(function() {
+ if ($('#search:visible').length === 0) {
+ $('#nav').removeAttr('style');
+ $('#search a').removeClass('active inactive');
+ $(window).focus();
+ }
+ });
+}
+
+function toggleSearchFrame(id, link) {
+ var frame = $('#nav');
+ $('#search a').removeClass('active').addClass('inactive');
+ if (frame.attr('src') === link && frame.css('display') !== "none") {
+ frame.slideUp(100);
+ $('#search a').removeClass('active inactive');
+ }
+ else {
+ $(id).addClass('active').removeClass('inactive');
+ if (frame.attr('src') !== link) frame.attr('src', link);
+ frame.slideDown(100);
+ }
+}
+
+function linkSummaries() {
+ $('.summary_signature').click(function() {
+ document.location = $(this).find('a').attr('href');
+ });
+}
+
+function summaryToggle() {
+ $('.summary_toggle').click(function(e) {
+ e.preventDefault();
+ localStorage.summaryCollapsed = $(this).text();
+ $('.summary_toggle').each(function() {
+ $(this).text($(this).text() == "collapse" ? "expand" : "collapse");
+ var next = $(this).parent().parent().nextAll('ul.summary').first();
+ if (next.hasClass('compact')) {
+ next.toggle();
+ next.nextAll('ul.summary').first().toggle();
+ }
+ else if (next.hasClass('summary')) {
+ var list = $('');
+ list.html(next.html());
+ list.find('.summary_desc, .note').remove();
+ list.find('a').each(function() {
+ $(this).html($(this).find('strong').html());
+ $(this).parent().html($(this)[0].outerHTML);
+ });
+ next.before(list);
+ next.toggle();
+ }
+ });
+ return false;
+ });
+ if (localStorage.summaryCollapsed == "collapse") {
+ $('.summary_toggle').first().click();
+ } else { localStorage.summaryCollapsed = "expand"; }
+}
+
+function generateTOC() {
+ if ($('#filecontents').length === 0) return;
+ var _toc = $(' ');
+ var show = false;
+ var toc = _toc;
+ var counter = 0;
+ var tags = ['h2', 'h3', 'h4', 'h5', 'h6'];
+ var i;
+ if ($('#filecontents h1').length > 1) tags.unshift('h1');
+ for (i = 0; i < tags.length; i++) { tags[i] = '#filecontents ' + tags[i]; }
+ var lastTag = parseInt(tags[0][1], 10);
+ $(tags.join(', ')).each(function() {
+ if ($(this).parents('.method_details .docstring').length != 0) return;
+ if (this.id == "filecontents") return;
+ show = true;
+ var thisTag = parseInt(this.tagName[1], 10);
+ if (this.id.length === 0) {
+ var proposedId = $(this).attr('toc-id');
+ if (typeof(proposedId) != "undefined") this.id = proposedId;
+ else {
+ var proposedId = $(this).text().replace(/[^a-z0-9-]/ig, '_');
+ if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; }
+ this.id = proposedId;
+ }
+ }
+ if (thisTag > lastTag) {
+ for (i = 0; i < thisTag - lastTag; i++) {
+ var tmp = $(' '); toc.append(tmp); toc = tmp;
+ }
+ }
+ if (thisTag < lastTag) {
+ for (i = 0; i < lastTag - thisTag; i++) toc = toc.parent();
+ }
+ var title = $(this).attr('toc-title');
+ if (typeof(title) == "undefined") title = $(this).text();
+ toc.append(' ' + title + ' ');
+ lastTag = thisTag;
+ });
+ if (!show) return;
+ html = '';
+ $('#content').prepend(html);
+ $('#toc').append(_toc);
+ $('#toc .hide_toc').toggle(function() {
+ $('#toc .top').slideUp('fast');
+ $('#toc').toggleClass('hidden');
+ $('#toc .title small').toggle();
+ }, function() {
+ $('#toc .top').slideDown('fast');
+ $('#toc').toggleClass('hidden');
+ $('#toc .title small').toggle();
+ });
+}
+
+function navResizeFn(e) {
+ if (e.which !== 1) {
+ navResizeFnStop();
+ return;
+ }
+
+ sessionStorage.navWidth = e.pageX.toString();
+ $('.nav_wrap').css('width', e.pageX);
+ $('.nav_wrap').css('-ms-flex', 'inherit');
+}
+
+function navResizeFnStop() {
+ $(window).unbind('mousemove', navResizeFn);
+ window.removeEventListener('message', navMessageFn, false);
+}
+
+function navMessageFn(e) {
+ if (e.data.action === 'mousemove') navResizeFn(e.data.event);
+ if (e.data.action === 'mouseup') navResizeFnStop();
+}
+
+function navResizer() {
+ $('#resizer').mousedown(function(e) {
+ e.preventDefault();
+ $(window).mousemove(navResizeFn);
+ window.addEventListener('message', navMessageFn, false);
+ });
+ $(window).mouseup(navResizeFnStop);
+
+ if (sessionStorage.navWidth) {
+ navResizeFn({which: 1, pageX: parseInt(sessionStorage.navWidth, 10)});
+ }
+}
+
+function navExpander() {
+ var done = false, timer = setTimeout(postMessage, 500);
+ function postMessage() {
+ if (done) return;
+ clearTimeout(timer);
+ var opts = { action: 'expand', path: pathId };
+ document.getElementById('nav').contentWindow.postMessage(opts, '*');
+ done = true;
+ }
+
+ window.addEventListener('message', function(event) {
+ if (event.data === 'navReady') postMessage();
+ return false;
+ }, false);
+}
+
+function mainFocus() {
+ $('#main')[0].focus();
+}
+
+$(document).ready(function() {
+ navResizer();
+ navExpander();
+ createSourceLinks();
+ createDefineLinks();
+ createFullTreeLinks();
+ searchFrameButtons();
+ linkSummaries();
+ summaryToggle();
+ generateTOC();
+ mainFocus();
+});
+
+})();
diff --git a/js/full_list.js b/js/full_list.js
new file mode 100644
index 0000000..59069c5
--- /dev/null
+++ b/js/full_list.js
@@ -0,0 +1,216 @@
+(function() {
+
+var $clicked = $(null);
+var searchTimeout = null;
+var searchCache = [];
+var caseSensitiveMatch = false;
+var ignoreKeyCodeMin = 8;
+var ignoreKeyCodeMax = 46;
+var commandKey = 91;
+
+RegExp.escape = function(text) {
+ return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
+}
+
+function escapeShortcut() {
+ $(document).keydown(function(evt) {
+ if (evt.which == 27) {
+ window.parent.postMessage('navEscape', '*');
+ }
+ });
+}
+
+function navResizer() {
+ $(window).mousemove(function(e) {
+ window.parent.postMessage({
+ action: 'mousemove', event: {pageX: e.pageX, which: e.which}
+ }, '*');
+ }).mouseup(function(e) {
+ window.parent.postMessage({action: 'mouseup'}, '*');
+ });
+ window.parent.postMessage("navReady", "*");
+}
+
+function clearSearchTimeout() {
+ clearTimeout(searchTimeout);
+ searchTimeout = null;
+}
+
+function enableLinks() {
+ // load the target page in the parent window
+ $('#full_list li').on('click', function(evt) {
+ $('#full_list li').removeClass('clicked');
+ $clicked = $(this);
+ $clicked.addClass('clicked');
+ evt.stopPropagation();
+
+ if (evt.target.tagName === 'A') return true;
+
+ var elem = $clicked.find('> .item .object_link a')[0];
+ var e = evt.originalEvent;
+ var newEvent = new MouseEvent(evt.originalEvent.type);
+ newEvent.initMouseEvent(e.type, e.canBubble, e.cancelable, e.view, e.detail, e.screenX, e.screenY, e.clientX, e.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, e.button, e.relatedTarget);
+ elem.dispatchEvent(newEvent);
+ evt.preventDefault();
+ return false;
+ });
+}
+
+function enableToggles() {
+ // show/hide nested classes on toggle click
+ $('#full_list a.toggle').on('click', function(evt) {
+ evt.stopPropagation();
+ evt.preventDefault();
+ $(this).parent().parent().toggleClass('collapsed');
+ highlight();
+ });
+}
+
+function populateSearchCache() {
+ $('#full_list li .item').each(function() {
+ var $node = $(this);
+ var $link = $node.find('.object_link a');
+ if ($link.length > 0) {
+ searchCache.push({
+ node: $node,
+ link: $link,
+ name: $link.text(),
+ fullName: $link.attr('title').split(' ')[0]
+ });
+ }
+ });
+}
+
+function enableSearch() {
+ $('#search input').keyup(function(event) {
+ if (ignoredKeyPress(event)) return;
+ if (this.value === "") {
+ clearSearch();
+ } else {
+ performSearch(this.value);
+ }
+ });
+
+ $('#full_list').after("
");
+}
+
+function ignoredKeyPress(event) {
+ if (
+ (event.keyCode > ignoreKeyCodeMin && event.keyCode < ignoreKeyCodeMax) ||
+ (event.keyCode == commandKey)
+ ) {
+ return true;
+ } else {
+ return false;
+ }
+}
+
+function clearSearch() {
+ clearSearchTimeout();
+ $('#full_list .found').removeClass('found').each(function() {
+ var $link = $(this).find('.object_link a');
+ $link.text($link.text());
+ });
+ $('#full_list, #content').removeClass('insearch');
+ $clicked.parents().removeClass('collapsed');
+ highlight();
+}
+
+function performSearch(searchString) {
+ clearSearchTimeout();
+ $('#full_list, #content').addClass('insearch');
+ $('#noresults').text('').hide();
+ partialSearch(searchString, 0);
+}
+
+function partialSearch(searchString, offset) {
+ var lastRowClass = '';
+ var i = null;
+ for (i = offset; i < Math.min(offset + 50, searchCache.length); i++) {
+ var item = searchCache[i];
+ var searchName = (searchString.indexOf('::') != -1 ? item.fullName : item.name);
+ var matchString = buildMatchString(searchString);
+ var matchRegexp = new RegExp(matchString, caseSensitiveMatch ? "" : "i");
+ if (searchName.match(matchRegexp) == null) {
+ item.node.removeClass('found');
+ item.link.text(item.link.text());
+ }
+ else {
+ item.node.addClass('found');
+ item.node.removeClass(lastRowClass).addClass(lastRowClass == 'r1' ? 'r2' : 'r1');
+ lastRowClass = item.node.hasClass('r1') ? 'r1' : 'r2';
+ item.link.html(item.name.replace(matchRegexp, "$& "));
+ }
+ }
+ if(i == searchCache.length) {
+ searchDone();
+ } else {
+ searchTimeout = setTimeout(function() {
+ partialSearch(searchString, i);
+ }, 0);
+ }
+}
+
+function searchDone() {
+ searchTimeout = null;
+ highlight();
+ if ($('#full_list li:visible').size() === 0) {
+ $('#noresults').text('No results were found.').hide().fadeIn();
+ } else {
+ $('#noresults').text('').hide();
+ }
+ $('#content').removeClass('insearch');
+}
+
+function buildMatchString(searchString, event) {
+ caseSensitiveMatch = searchString.match(/[A-Z]/) != null;
+ var regexSearchString = RegExp.escape(searchString);
+ if (caseSensitiveMatch) {
+ regexSearchString += "|" +
+ $.map(searchString.split(''), function(e) { return RegExp.escape(e); }).
+ join('.+?');
+ }
+ return regexSearchString;
+}
+
+function highlight() {
+ $('#full_list li:visible').each(function(n) {
+ $(this).removeClass('even odd').addClass(n % 2 == 0 ? 'odd' : 'even');
+ });
+}
+
+/**
+ * Expands the tree to the target element and its immediate
+ * children.
+ */
+function expandTo(path) {
+ var $target = $(document.getElementById('object_' + path));
+ $target.addClass('clicked');
+ $target.removeClass('collapsed');
+ $target.parentsUntil('#full_list', 'li').removeClass('collapsed');
+ if($target[0]) {
+ window.scrollTo(window.scrollX, $target.offset().top - 250);
+ highlight();
+ }
+}
+
+function windowEvents(event) {
+ var msg = event.data;
+ if (msg.action === "expand") {
+ expandTo(msg.path);
+ }
+ return false;
+}
+
+window.addEventListener("message", windowEvents, false);
+
+$(document).ready(function() {
+ escapeShortcut();
+ navResizer();
+ enableLinks();
+ enableToggles();
+ populateSearchCache();
+ enableSearch();
+});
+
+})();
diff --git a/js/jquery.js b/js/jquery.js
new file mode 100644
index 0000000..198b3ff
--- /dev/null
+++ b/js/jquery.js
@@ -0,0 +1,4 @@
+/*! jQuery v1.7.1 jquery.com | jquery.org/license */
+(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;ca ",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o=""+"",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};
+f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c ",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML=" ",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="
";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,""," "],thead:[1,""],tr:[2,""],td:[3,""],col:[2,""],area:[1,""," "],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function()
+{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>$2>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/
+
+
+
+
+ Method List
+
+
+
+
+
+
+
+
+
+
+
+
#api_version
+
TXTextControl::ReportingCloud::ReportingCloud
+
+
+
+
+
+
+
+
+
+
+
+
#author
+
TXTextControl::ReportingCloud::DocumentSettings
+
+
+
+
+
+
+
#base_uri
+
TXTextControl::ReportingCloud::ReportingCloud
+
+
+
+
+
+
+
#check_text
+
TXTextControl::ReportingCloud::ReportingCloud
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
#document
+
TXTextControl::ReportingCloud::AppendDocument
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
#documents
+
TXTextControl::ReportingCloud::AppendBody
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
#get_api_keys
+
TXTextControl::ReportingCloud::ReportingCloud
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
#initialize
+
TXTextControl::ReportingCloud::AppendBody
+
+
+
+
+
+
+
#initialize
+
TXTextControl::ReportingCloud::MergeField
+
+
+
+
+
+
+
#initialize
+
TXTextControl::ReportingCloud::MergeBody
+
+
+
+
+
+
+
#initialize
+
TXTextControl::ReportingCloud::DocumentSettings
+
+
+
+
+
+
+
#initialize
+
TXTextControl::ReportingCloud::ReportingCloud
+
+
+
+
+
+
+
#initialize
+
TXTextControl::ReportingCloud::Template
+
+
+
+
+
+
+
#initialize
+
TXTextControl::ReportingCloud::IncorrectWord
+
+
+
+
+
+
+
#initialize
+
TXTextControl::ReportingCloud::TemplateInfo
+
+
+
+
+
+
+
#initialize
+
TXTextControl::ReportingCloud::AppendDocument
+
+
+
+
+
+
+
#initialize
+
TXTextControl::ReportingCloud::APIKey
+
+
+
+
+
+
+
#initialize
+
TXTextControl::ReportingCloud::MergeSettings
+
+
+
+
+
+
+
#initialize
+
TXTextControl::ReportingCloud::AccountSettings
+
+
+
+
+
+
+
#initialize
+
TXTextControl::ReportingCloud::FindAndReplaceBody
+
+
+
+
+
+
+
#initialize
+
TXTextControl::ReportingCloud::MergeBlock
+
+
+
+
+
+
+
#is_active
+
TXTextControl::ReportingCloud::APIKey
+
+
+
+
+
+
+
+
+
+
+
+
#key
+
TXTextControl::ReportingCloud::APIKey
+
+
+
+
+
+
+
#language
+
TXTextControl::ReportingCloud::IncorrectWord
+
+
+
+
+
+
+
+
+
+
+
+
#length
+
TXTextControl::ReportingCloud::IncorrectWord
+
+
+
+
+
+
+
#list_fonts
+
TXTextControl::ReportingCloud::ReportingCloud
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
#merge_data
+
TXTextControl::ReportingCloud::MergeBody
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
#merge_html
+
TXTextControl::ReportingCloud::MergeSettings
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
#modified
+
TXTextControl::ReportingCloud::Template
+
+
+
+
+
+
+
#name
+
TXTextControl::ReportingCloud::MergeField
+
+
+
+
+
+
+
#name
+
TXTextControl::ReportingCloud::MergeBlock
+
+
+
+
+
+
+
+
+
+
+
+
#password
+
TXTextControl::ReportingCloud::ReportingCloud
+
+
+
+
+
+
+
+
+
+
+
+
#read_timeout
+
TXTextControl::ReportingCloud::ReportingCloud
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
#size
+
TXTextControl::ReportingCloud::Template
+
+
+
+
+
+
+
#start
+
TXTextControl::ReportingCloud::IncorrectWord
+
+
+
+
+
+
+
#template
+
TXTextControl::ReportingCloud::FindAndReplaceBody
+
+
+
+
+
+
+
#template
+
TXTextControl::ReportingCloud::MergeBody
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
#text
+
TXTextControl::ReportingCloud::IncorrectWord
+
+
+
+
+
+
+
#text
+
TXTextControl::ReportingCloud::MergeField
+
+
+
+
+
+
+
#text_after
+
TXTextControl::ReportingCloud::MergeField
+
+
+
+
+
+
+
#text_before
+
TXTextControl::ReportingCloud::MergeField
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
#username
+
TXTextControl::ReportingCloud::ReportingCloud
+
+
+
+
+
+
+
#valid_until
+
TXTextControl::ReportingCloud::AccountSettings
+
+
+
+
+
+
+
validate
+
TXTextControl::ReportingCloud::TemplateDataValidator
+
+
+
+
+
+
+
validate
+
TXTextControl::ReportingCloud::TemplateNameValidator
+
+
+
+
+
+
+
+
+
diff --git a/resource/rc_logo_1024.png b/resource/rc_logo_1024.png
deleted file mode 100644
index 92b2bae..0000000
Binary files a/resource/rc_logo_1024.png and /dev/null differ
diff --git a/resource/rc_logo_256.png b/resource/rc_logo_256.png
deleted file mode 100644
index c3ad0e6..0000000
Binary files a/resource/rc_logo_256.png and /dev/null differ
diff --git a/resource/rc_logo_512.png b/resource/rc_logo_512.png
deleted file mode 100644
index 13470dc..0000000
Binary files a/resource/rc_logo_512.png and /dev/null differ
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
deleted file mode 100644
index 7e7b53b..0000000
--- a/spec/spec_helper.rb
+++ /dev/null
@@ -1,7 +0,0 @@
-$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
-require 'txtextcontrol/reportingcloud'
-require 'webmock/rspec'
-
-RSpec.configure do |c|
- c.include WebMock::API
-end
\ No newline at end of file
diff --git a/spec/string_spec.rb b/spec/string_spec.rb
deleted file mode 100644
index 7965cf3..0000000
--- a/spec/string_spec.rb
+++ /dev/null
@@ -1,20 +0,0 @@
-require 'spec_helper'
-
-describe String do
- describe "#remove_first_and_last" do
- it "handles strings with length 0" do
- str = ""
- expect(str.remove_first_and_last).to eq("")
- end
-
- it "handles strings with length 1" do
- str = "a"
- expect(str.remove_first_and_last).to eq("")
- end
-
- it "removes the first and the last character" do
- str = "abcd"
- expect(str.remove_first_and_last).to eq("bc")
- end
- end
-end
\ No newline at end of file
diff --git a/spec/support/fixtures/__ruby_wrapper_test.tx b/spec/support/fixtures/__ruby_wrapper_test.tx
deleted file mode 100644
index 0dec410..0000000
Binary files a/spec/support/fixtures/__ruby_wrapper_test.tx and /dev/null differ
diff --git a/spec/support/fixtures/get_account_settings_sn.json b/spec/support/fixtures/get_account_settings_sn.json
deleted file mode 100644
index b8284db..0000000
--- a/spec/support/fixtures/get_account_settings_sn.json
+++ /dev/null
@@ -1 +0,0 @@
-{"serialNumber":"3546372837463","createdDocuments":7,"uploadedTemplates":2,"maxDocuments":30000,"maxTemplates":100,"validUntil":"2016-05-30T12:07:45+00:00"}
\ No newline at end of file
diff --git a/spec/support/fixtures/get_account_settings_trial.json b/spec/support/fixtures/get_account_settings_trial.json
deleted file mode 100644
index d354b12..0000000
--- a/spec/support/fixtures/get_account_settings_trial.json
+++ /dev/null
@@ -1 +0,0 @@
-{"serialNumber":"Trial","createdDocuments":7,"uploadedTemplates":2,"maxDocuments":30000,"maxTemplates":100,"validUntil":"2016-07-03T16:13:13+00:00"}
\ No newline at end of file
diff --git a/spec/support/fixtures/get_template_info.json b/spec/support/fixtures/get_template_info.json
deleted file mode 100644
index 6bc2504..0000000
--- a/spec/support/fixtures/get_template_info.json
+++ /dev/null
@@ -1,193 +0,0 @@
-{
- "templateName": "invoice.tx",
- "mergeBlocks": [
- {
- "name": "Sales_SalesOrderDetail",
- "mergeFields": [
- {
- "dateTimeFormat": "",
- "name": "Production_Product.ProductNumber",
- "numericFormat": "",
- "preserveFormatting": false,
- "text": "«ProductNumber»",
- "textAfter": "",
- "textBefore": ""
- },
- {
- "dateTimeFormat": "",
- "name": "Production_Product.Name",
- "numericFormat": "",
- "preserveFormatting": false,
- "text": "«Name»",
- "textAfter": "",
- "textBefore": ""
- },
- {
- "dateTimeFormat": "",
- "name": "OrderQty",
- "numericFormat": "",
- "preserveFormatting": false,
- "text": "«OrderQty»",
- "textAfter": "",
- "textBefore": ""
- },
- {
- "dateTimeFormat": "",
- "name": "UnitPrice",
- "numericFormat": "$#,###.00",
- "preserveFormatting": false,
- "text": "«UnitPrice»",
- "textAfter": "",
- "textBefore": ""
- },
- {
- "dateTimeFormat": "",
- "name": "LineTotal",
- "numericFormat": "$#,###.00",
- "preserveFormatting": false,
- "text": "«LineTotal»",
- "textAfter": "",
- "textBefore": ""
- }
- ],
- "mergeBlocks": []
- }
- ],
- "mergeFields": [
- {
- "dateTimeFormat": "",
- "name": "Customer_Customer.Name",
- "numericFormat": "",
- "preserveFormatting": false,
- "text": "«Customer_Customer.Name»",
- "textAfter": "",
- "textBefore": ""
- },
- {
- "dateTimeFormat": "",
- "name": "Person_Contact.FirstName",
- "numericFormat": "",
- "preserveFormatting": false,
- "text": "«Person_Contact.FirstName»",
- "textAfter": "",
- "textBefore": ""
- },
- {
- "dateTimeFormat": "",
- "name": "Person_Contact.LastName",
- "numericFormat": "",
- "preserveFormatting": false,
- "text": "«Person_Contact.LastName»",
- "textAfter": "",
- "textBefore": ""
- },
- {
- "dateTimeFormat": "",
- "name": "Customer_Customer.Sales_CustomerAddress.Person_Address.AddressLine1",
- "numericFormat": "",
- "preserveFormatting": false,
- "text": "«AddressLine1»",
- "textAfter": "",
- "textBefore": ""
- },
- {
- "dateTimeFormat": "",
- "name": "Customer_Customer.Sales_CustomerAddress.Person_Address.PostalCode",
- "numericFormat": "",
- "preserveFormatting": false,
- "text": "«PostalCode»",
- "textAfter": "",
- "textBefore": ""
- },
- {
- "dateTimeFormat": "",
- "name": "Customer_Customer.Sales_CustomerAddress.Person_Address.City",
- "numericFormat": "",
- "preserveFormatting": false,
- "text": "«City»",
- "textAfter": "",
- "textBefore": ""
- },
- {
- "dateTimeFormat": "",
- "name": "SalesOrderID",
- "numericFormat": "",
- "preserveFormatting": false,
- "text": "«SalesOrderID»",
- "textAfter": "",
- "textBefore": ""
- },
- {
- "dateTimeFormat": "MM-dd-yy",
- "name": "OrderDate",
- "numericFormat": "",
- "preserveFormatting": false,
- "text": "«OrderDate»",
- "textAfter": "",
- "textBefore": ""
- },
- {
- "dateTimeFormat": "MM-dd-yy",
- "name": "DueDate",
- "numericFormat": "",
- "preserveFormatting": false,
- "text": "«DueDate»",
- "textAfter": "",
- "textBefore": ""
- },
- {
- "dateTimeFormat": "",
- "name": "SubTotal",
- "numericFormat": "$#,###.00",
- "preserveFormatting": false,
- "text": "«SubTotal»",
- "textAfter": "",
- "textBefore": ""
- },
- {
- "dateTimeFormat": "",
- "name": "TaxAmt",
- "numericFormat": "$#,###.00",
- "preserveFormatting": false,
- "text": "«TaxAmt»",
- "textAfter": "",
- "textBefore": ""
- },
- {
- "dateTimeFormat": "",
- "name": "Freight",
- "numericFormat": "$#,###.00",
- "preserveFormatting": false,
- "text": "«Freight»",
- "textAfter": "",
- "textBefore": ""
- },
- {
- "dateTimeFormat": "",
- "name": "TotalDue",
- "numericFormat": "$#,###.00",
- "preserveFormatting": false,
- "text": "«TotalDue»",
- "textAfter": "",
- "textBefore": ""
- },
- {
- "dateTimeFormat": "",
- "name": "SalesOrderID",
- "numericFormat": "",
- "preserveFormatting": false,
- "text": "«SalesOrderID»",
- "textAfter": "",
- "textBefore": ""
- },
- {
- "dateTimeFormat": "",
- "name": "SalesOrderID",
- "numericFormat": "",
- "preserveFormatting": false,
- "text": "«SalesOrderID»",
- "textAfter": "",
- "textBefore": ""
- }
- ]
-}
\ No newline at end of file
diff --git a/spec/support/fixtures/get_template_thumbnails.json b/spec/support/fixtures/get_template_thumbnails.json
deleted file mode 100644
index 5ec0917..0000000
--- a/spec/support/fixtures/get_template_thumbnails.json
+++ /dev/null
@@ -1 +0,0 @@
-["iVBORw0KGgoAAAANSUhEUgAAAMwAAAEICAYAAAATLBvkAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAMSSURBVHhe7daxbQNBDADBr+sL+nqummvmi6Fl2XCsDWQomIl4BNMF7hjgZYKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBG8O5p51HnNce+51zbrv2XvNda7Zz/fP1b7Ovxk+2f8Ec16PSI659ncwe9Zaz/2jo9+z/dzDp/Mlg0AwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBgIBAOBYCAQDASCgUAwEAgGAsFAIBh42cwXRZ9L+A9nvQkAAAAASUVORK5CYII=","iVBORw0KGgoAAAANSUhEUgAAAMwAAAEICAYAAAATLBvkAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAMTSURBVHhe7daxbcQwAARB1aWCWA+rYTMqhpZlA05/gzc+mIl4BNMFeGzgZYKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBG8O5trzPPYx1r7m2PO69lpzj3Pu9ey/N+fPgI/2P8Gc447k2GN9B7P2nPO5vzt6rHGf5++AD+ZLBoFgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDAQCAYCwUAgGAgEA4FgIBAMBIKBQDDwsr2/AEmFSJkZS6EsAAAAAElFTkSuQmCC"]
\ No newline at end of file
diff --git a/spec/support/fixtures/list_templates.json b/spec/support/fixtures/list_templates.json
deleted file mode 100644
index b659ace..0000000
--- a/spec/support/fixtures/list_templates.json
+++ /dev/null
@@ -1 +0,0 @@
-[{"templateName":"new_template.docx","modified":"2016-05-30T12:07:45+00:00","size":3705},{"templateName":"sample_invoice.tx","modified":"2016-05-24T15:24:57+00:00","size":34845},{"templateName":"labels.tx","modified":"2016-05-26T15:24:57+00:00","size":34212}]
\ No newline at end of file
diff --git a/spec/txtextcontrol/account_settings_spec.rb b/spec/txtextcontrol/account_settings_spec.rb
deleted file mode 100644
index 5b56124..0000000
--- a/spec/txtextcontrol/account_settings_spec.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-require 'spec_helper'
-require "txtextcontrol/reportingcloud/account_settings"
-
-describe TXTextControl::ReportingCloud::AccountSettings do
- describe ".from_camelized_hash" do
- it "creates an instance from a hash using camel case attributes" do
- hash = {
- "serialNumber" => "1234567890123",
- "createdDocuments" => 2,
- "uploadedTemplates" => 3,
- "maxDocuments" => 40000,
- "maxTemplates" => 500,
- "validUntil" => "2016-05-24T15:24:57+00:00"
- }
-
- s = TXTextControl::ReportingCloud::AccountSettings::from_camelized_hash(hash)
- expect(s.serial_number).to eq("1234567890123")
- expect(s.created_documents).to be(2)
- expect(s.uploaded_templates).to be(3)
- expect(s.max_documents).to be(40000)
- expect(s.valid_until).to eq(DateTime.iso8601("2016-05-24T15:24:57+00:00"))
- end
- end
-end
\ No newline at end of file
diff --git a/spec/txtextcontrol/document_settings_spec.rb b/spec/txtextcontrol/document_settings_spec.rb
deleted file mode 100644
index 9e52a3c..0000000
--- a/spec/txtextcontrol/document_settings_spec.rb
+++ /dev/null
@@ -1,59 +0,0 @@
-require 'spec_helper'
-require "txtextcontrol/reportingcloud/document_settings"
-
-describe TXTextControl::ReportingCloud::DocumentSettings do
- describe "#creation_date" do
- before do
- @ds = TXTextControl::ReportingCloud::DocumentSettings.new
- end
-
- it "accepts an iso 8601 date time string" do
- str = "2016-05-30T12:07:45+00:00"
- expect { @ds.creation_date = str }.not_to raise_error
- expect(@ds.creation_date).to eq(DateTime.iso8601(str))
- end
-
- it "accepts nil" do
- expect { @ds.creation_date = nil }.not_to raise_error
- expect(@ds.creation_date).to be(nil)
- end
-
- it "accepts a DateTime instance" do
- dt = DateTime.iso8601("2016-05-30T12:07:45+00:00")
- expect { @ds.creation_date = dt }.not_to raise_error
- expect(@ds.creation_date).to eq(dt)
- end
-
- it "raises ArgumentError on invalid date time string" do
- expect { @ds.creation_date = "sdfsdfsdf" }.to raise_error(ArgumentError)
- end
- end
-
- describe "#last_modification_date" do
- before do
- @ds = TXTextControl::ReportingCloud::DocumentSettings.new
- end
-
- it "accepts an iso 8601 date time string" do
- str = "2016-05-30T12:07:45+00:00"
- expect { @ds.last_modification_date = str }.not_to raise_error
- expect(@ds.last_modification_date).to eq(DateTime.iso8601(str))
- end
-
- it "accepts nil" do
- expect { @ds.last_modification_date = nil }.not_to raise_error
- expect(@ds.last_modification_date).to be(nil)
- end
-
- it "accepts a DateTime instance" do
- dt = DateTime.iso8601("2016-05-30T12:07:45+00:00")
- expect { @ds.last_modification_date = dt }.not_to raise_error
- expect(@ds.last_modification_date).to eq(dt)
- end
-
- it "raises ArgumentError on invalid date time string" do
- expect { @ds.last_modification_date = "sdfsdfsdf" }.to raise_error(ArgumentError)
- end
-
- end
-end
\ No newline at end of file
diff --git a/spec/txtextcontrol/find_and_replace_body_spec.rb b/spec/txtextcontrol/find_and_replace_body_spec.rb
deleted file mode 100644
index c2729e2..0000000
--- a/spec/txtextcontrol/find_and_replace_body_spec.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-require 'spec_helper'
-require "txtextcontrol/reportingcloud/find_and_replace_body"
-
-describe TXTextControl::ReportingCloud::FindAndReplaceBody do
- it "raises ArgumentError on wrong kind of array passed as find_and_replace_data parameter." do
- expect { body = TXTextControl::ReportingCloud::FindAndReplaceBody.new([["Foo", "Bar"], ["Baz", "Qux"], ["Quux", "Quuz", "Corge"]]) }.to raise_error(ArgumentError)
- expect { body = TXTextControl::ReportingCloud::FindAndReplaceBody.new(nil) }.to raise_error(ArgumentError)
- expect { body = TXTextControl::ReportingCloud::FindAndReplaceBody.new([]) }.to raise_error(ArgumentError)
- end
-
- it "accepts valid array of find and relace values." do
- expect { body = TXTextControl::ReportingCloud::FindAndReplaceBody.new([["Foo", "Bar"]]) }.not_to raise_error
- expect { body = TXTextControl::ReportingCloud::FindAndReplaceBody.new([["Foo", "Bar"], ["Baz", "Qux"], ["Quux", "Quuz"]]) }.not_to raise_error
- end
-end
diff --git a/spec/txtextcontrol/incorrect_word_spec.rb b/spec/txtextcontrol/incorrect_word_spec.rb
deleted file mode 100644
index 2d181a0..0000000
--- a/spec/txtextcontrol/incorrect_word_spec.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-require 'spec_helper'
-require "txtextcontrol/reportingcloud/incorrect_word"
-
-describe TXTextControl::ReportingCloud::IncorrectWord do
- describe ".from_camelized_hash" do
- it "creates an instance from a hash using camel case attributes" do
- hash = {
- "length" => 4,
- "start" => 123,
- "text" => "This",
- "isDuplicate" => false,
- "language" => "en_US.dic",
- }
-
- s = TXTextControl::ReportingCloud::IncorrectWord::from_camelized_hash(hash)
- expect(s.length).to be(4)
- expect(s.start).to be(123)
- expect(s.text).to eq("This")
- expect(s.is_duplicate?).to be(false)
- expect(s.is_duplicate).to be(false)
- expect(s.language).to eq("en_US.dic")
- end
- end
-end
\ No newline at end of file
diff --git a/spec/txtextcontrol/merge_block_spec.rb b/spec/txtextcontrol/merge_block_spec.rb
deleted file mode 100644
index e0aad6b..0000000
--- a/spec/txtextcontrol/merge_block_spec.rb
+++ /dev/null
@@ -1,104 +0,0 @@
-require 'spec_helper'
-require "txtextcontrol/reportingcloud/merge_block"
-
-describe TXTextControl::ReportingCloud::MergeBlock do
- let (:hash) {
- {
- "name" => "Sales_SalesOrderDetail",
- "mergeFields" => [
- {
- "dateTimeFormat" => "",
- "name" => "Production_Product.ProductNumber",
- "numericFormat" => "",
- "preserveFormatting" => false,
- "text" => "«ProductNumber»",
- "textAfter" => "",
- "textBefore" => ""
- },
- {
- "dateTimeFormat" => "",
- "name" => "Production_Product.Name",
- "numericFormat" => "",
- "preserveFormatting" => false,
- "text" => "«Name»",
- "textAfter" => "",
- "textBefore" => ""
- },
- {
- "dateTimeFormat" => "",
- "name" => "OrderQty",
- "numericFormat" => "",
- "preserveFormatting" => false,
- "text" => "«OrderQty»",
- "textAfter" => "",
- "textBefore" => ""
- },
- {
- "dateTimeFormat" => "",
- "name" => "UnitPrice",
- "numericFormat" => "$#,###.00",
- "preserveFormatting" => false,
- "text" => "«UnitPrice»",
- "textAfter" => "",
- "textBefore" => ""
- },
- {
- "dateTimeFormat" => "",
- "name" => "LineTotal",
- "numericFormat" => "$#,###.00",
- "preserveFormatting" => false,
- "text" => "«LineTotal»",
- "textAfter" => "",
- "textBefore" => ""
- }
- ],
- "mergeBlocks" => [
- {
- "name" => "Nested_Block",
- "mergeFields" => [
- {
- "dateTimeFormat" => "",
- "name" => "Production_Product.ProductNumber",
- "numericFormat" => "",
- "preserveFormatting" => false,
- "text" => "«ProductNumber»",
- "textAfter" => "",
- "textBefore" => ""
- },
- {
- "dateTimeFormat" => "",
- "name" => "Production_Product.Name",
- "numericFormat" => "",
- "preserveFormatting" => false,
- "text" => "«Name»",
- "textAfter" => "",
- "textBefore" => ""
- },
- {
- "dateTimeFormat" => "",
- "name" => "OrderQty",
- "numericFormat" => "",
- "preserveFormatting" => false,
- "text" => "«OrderQty»",
- "textAfter" => "",
- "textBefore" => ""
- },
- ],
- "mergeBlocks" => []
- }
- ]
- }
- }
-
- describe ".from_camelized_hash" do
- it "creates an instance from a hash using camel case attributes" do
- block = TXTextControl::ReportingCloud::MergeBlock::from_camelized_hash(hash)
- expect(block.name).to eq("Sales_SalesOrderDetail")
- expect(block.merge_blocks.length).to eq(1)
- expect(block.merge_blocks[0].name).to eq("Nested_Block")
- expect(block.merge_blocks[0].merge_blocks.length).to eq(0)
- expect(block.merge_fields.length).to eq(5)
- expect(block.merge_fields[2].name).to eq("OrderQty")
- end
- end
-end
diff --git a/spec/txtextcontrol/merge_body_spec.rb b/spec/txtextcontrol/merge_body_spec.rb
deleted file mode 100644
index 2461ba1..0000000
--- a/spec/txtextcontrol/merge_body_spec.rb
+++ /dev/null
@@ -1,52 +0,0 @@
-require 'spec_helper'
-require "txtextcontrol/reportingcloud/merge_body"
-
-describe TXTextControl::ReportingCloud::MergeBody do
- describe "#to_camelized_hash" do
- it "converts a MergeBody instance to a hash with camel case keys" do
- s = TXTextControl::ReportingCloud::MergeSettings.new
- merge_data = [
- { "Test" => "Test" },
- { "Test" => "Test" }
- ]
- b = TXTextControl::ReportingCloud::MergeBody.new(merge_data, s, "test")
- h = b.to_camelized_hash
- expect(h).to have_key("mergeData")
- expect(h).to have_key("template")
- expect(h).to have_key("mergeSettings")
- expect(h["mergeSettings"]).to be_kind_of(Hash)
- end
- end
-
- describe "#merge_data" do
- it "raises ArgumentError in case of nil" do
- expect { merge_body = TXTextControl::ReportingCloud::MergeBody.new(nil) }.to raise_error(ArgumentError)
- end
-
- it "raises ArgumentError in case of empty array" do
- merge_data = []
- expect { merge_body = TXTextControl::ReportingCloud::MergeBody.new(merge_data) }.to raise_error(ArgumentError)
- end
-
- it "raises ArgumentError in case of wrong data type" do
- merge_data = "a string"
- expect { merge_body = TXTextControl::ReportingCloud::MergeBody.new(merge_data) }.to raise_error(ArgumentError)
- end
-
- it "raises ArgumentError in case of array of wrong data types" do
- merge_data = [
- "Test", 42
- ]
- expect { merge_body = TXTextControl::ReportingCloud::MergeBody.new(merge_data) }.to raise_error(ArgumentError)
- end
-
- it "accepts an array of hashes" do
- merge_data = [
- { "Test" => "Test" },
- { "Test" => "Test" }
- ]
- merge_body = nil
- expect { merge_body = TXTextControl::ReportingCloud::MergeBody.new(merge_data) }.not_to raise_error
- end
- end
-end
diff --git a/spec/txtextcontrol/merge_field_spec.rb b/spec/txtextcontrol/merge_field_spec.rb
deleted file mode 100644
index f3f62fb..0000000
--- a/spec/txtextcontrol/merge_field_spec.rb
+++ /dev/null
@@ -1,57 +0,0 @@
-require 'spec_helper'
-require "txtextcontrol/reportingcloud/merge_field"
-
-describe TXTextControl::ReportingCloud::MergeField do
- let (:hash) {
- {
- "dateTimeFormat" => "DATE TIME FORMAT",
- "name" => "FIELD NAME",
- "numericFormat" => "NUMERIC FORMAT",
- "preserveFormatting" => true,
- "text" => "FIELD TEXT",
- "textAfter" => "TEXT AFTER",
- "textBefore" => "TEXT BEFORE"
- }
- }
-
- describe ".from_camelized_hash" do
- it "creates an instance from a hash using camel case attributes" do
- field = TXTextControl::ReportingCloud::MergeField::from_camelized_hash(hash)
- expect(field.date_time_format).to eq("DATE TIME FORMAT")
- expect(field.name).to eq("FIELD NAME")
- expect(field.numeric_format).to eq("NUMERIC FORMAT")
- expect(field.preserve_formatting).to be true
- expect(field.text).to eq("FIELD TEXT")
- expect(field.text_after).to eq("TEXT AFTER")
- expect(field.text_before).to eq("TEXT BEFORE")
- end
-
- it "Accepts nil as date_time_format" do
- hash["dateTimeFormat"] = nil
- field = nil
- expect { field = TXTextControl::ReportingCloud::MergeField::from_camelized_hash(hash) }.not_to raise_error
- expect(field.date_time_format).to be nil
- end
-
- it "Accepts nil as numeric_format" do
- hash["numericFormat"] = nil
- field = nil
- expect { field = TXTextControl::ReportingCloud::MergeField::from_camelized_hash(hash) }.not_to raise_error
- expect(field.numeric_format).to be nil
- end
-
- it "Accepts nil as text_after" do
- hash["textAfter"] = nil
- field = nil
- expect { field = TXTextControl::ReportingCloud::MergeField::from_camelized_hash(hash) }.not_to raise_error
- expect(field.text_after).to be nil
- end
-
- it "Accepts nil as text_before" do
- hash["textBefore"] = nil
- field = nil
- expect { field = TXTextControl::ReportingCloud::MergeField::from_camelized_hash(hash) }.not_to raise_error
- expect(field.text_before).to be nil
- end
- end
-end
\ No newline at end of file
diff --git a/spec/txtextcontrol/merge_settings_spec.rb b/spec/txtextcontrol/merge_settings_spec.rb
deleted file mode 100644
index 788a701..0000000
--- a/spec/txtextcontrol/merge_settings_spec.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-require 'spec_helper'
-require "txtextcontrol/reportingcloud/merge_settings"
-
-describe TXTextControl::ReportingCloud::MergeSettings do
-
- describe "#to_camlized_hash" do
- before do
- @ms = TXTextControl::ReportingCloud::MergeSettings.new
- end
-
- it "includes super class properties" do
- converted = @ms.to_camelized_hash
- expect(converted).to include("author")
- expect(converted).to include("creationDate")
- expect(converted).to include("creatorApplication")
- expect(converted).to include("documentSubject")
- expect(converted).to include("documentTitle")
- expect(converted).to include("lastModificationDate")
- expect(converted).to include("userPassword")
- end
- end
-
-end
\ No newline at end of file
diff --git a/spec/txtextcontrol/reportingcloud_spec.rb b/spec/txtextcontrol/reportingcloud_spec.rb
deleted file mode 100644
index 7a23b44..0000000
--- a/spec/txtextcontrol/reportingcloud_spec.rb
+++ /dev/null
@@ -1,397 +0,0 @@
-require 'spec_helper'
-require 'base64'
-require "txtextcontrol/reportingcloud/merge_body"
-require "txtextcontrol/reportingcloud/find_and_replace_body"
-require "txtextcontrol/reportingcloud/append_body"
-
-$api_key = ""
-
-describe TXTextControl::ReportingCloud do
- it 'has a version number' do
- expect(TXTextControl::ReportingCloud::VERSION).not_to be nil
- end
-end
-
-describe TXTextControl::ReportingCloud::ReportingCloud do
- let(:r) { TXTextControl::ReportingCloud::ReportingCloud.new("", "") }
- let(:template_data) { File.open(File.dirname(__FILE__) + "/../support/fixtures/__ruby_wrapper_test.tx", "rb") { |f| f.read } }
- let(:template_data_B64) { Base64.strict_encode64(template_data) }
-
- describe "#list_templates" do
- it "returns three templates" do
- canned_response = File.new File.dirname(__FILE__) + '/../support/fixtures/list_templates.json'
- stub_request(:get, "https://api.reporting.cloud/v1/templates/list").to_return(:body => canned_response)
-
- templates = r.list_templates
- expect(templates.length).to be(3)
- end
-
- it "contains expected template names" do
- canned_response = File.new File.dirname(__FILE__) + '/../support/fixtures/list_templates.json'
- stub_request(:get, "https://api.reporting.cloud/v1/templates/list").to_return(:body => canned_response)
-
- templates = r.list_templates
- expect(templates[0].template_name).to eq("new_template.docx")
- expect(templates[1].template_name).to eq("sample_invoice.tx")
- expect(templates[2].template_name).to eq("labels.tx")
- end
-
- it "contains expected modification dates" do
- canned_response = File.new File.dirname(__FILE__) + '/../support/fixtures/list_templates.json'
- stub_request(:get, "https://api.reporting.cloud/v1/templates/list").to_return(:body => canned_response)
-
- templates = r.list_templates
- expect(templates[0].modified).to eq(DateTime.iso8601("2016-05-30T12:07:45+00:00"))
- expect(templates[1].modified).to eq(DateTime.iso8601("2016-05-24T15:24:57+00:00"))
- expect(templates[2].modified).to eq(DateTime.iso8601("2016-05-26T15:24:57+00:00"))
- end
-
- it "contains expected file sizes" do
- canned_response = File.new File.dirname(__FILE__) + '/../support/fixtures/list_templates.json'
- stub_request(:get, "https://api.reporting.cloud/v1/templates/list").to_return(:body => canned_response)
-
- templates = r.list_templates
- expect(templates[0].size).to be(3705)
- expect(templates[1].size).to be(34845)
- expect(templates[2].size).to be(34212)
- end
- end
-
- describe "#get_template_count" do
- it "parses result correctly" do
- stub_request(:get, "https://api.reporting.cloud/v1/templates/count").to_return(:body => "5")
- expect(r.get_template_count).to be(5)
- end
- end
-
- def is_png(data)
- return data[0].ord == 0x89 &&
- data[1].ord == 0x50 &&
- data[2].ord == 0x4E &&
- data[3].ord == 0x47 &&
- data[4].ord == 0x0D
- end
-
- describe "#get_template_thumbnails" do
- it "returns two images" do
- canned_response = File.new File.dirname(__FILE__) + '/../support/fixtures/get_template_thumbnails.json'
- stub_request(:get, "https://api.reporting.cloud/v1/templates/thumbnails?templateName=new_template.docx&zoomFactor=25&fromPage=1&toPage=0").to_return(:body => canned_response)
-
- thumbnails = r.get_template_thumbnails("new_template.docx", 25, 1, 0)
- expect(thumbnails.length).to be(2)
- end
-
- it "returns png images" do
- WebMock.allow_net_connect!
- thumbnails = r.get_template_thumbnails("sample_invoice.tx", 25, 1, 0)
- data = Base64.strict_decode64(thumbnails[0]);
-
- # Check for PNG magic number
- expect(is_png(data)).to be(true)
- end
-
- it "returns jpg images" do
- thumbnails = r.get_template_thumbnails("sample_invoice.tx", 25, 1, 0, :jpg)
- data = Base64.strict_decode64(thumbnails[0])
-
- # Check for JPG magic number
- expect(data[0].ord).to be(0xFF)
- expect(data[1].ord).to be(0xD8)
- end
- end
-
- describe "#get_template_info" do
- let (:info) { r.get_template_info("invoice.tx") }
-
- it "returns the correct template name" do
- expect(info.template_name).to eq("invoice.tx")
- end
- end
-
- describe "#merge_document" do
- it "generates PDF documents" do
- # Some dummy merge data
- merge_data = [
- {
- "billto_name" => "Will Ferrell",
- "recipient_name" => "Colin Farrell",
- "item" => [
- {
- "item_no" => 23,
- "item_description" => "An Item.",
- "item_total" => 234.56
- },
- {
- "item_no" => 34,
- "item_description" => "Another Item.",
- "item_total" => 345.67
- }
- ]
- },
- {
- "billto_name" => "Morgan Freeman",
- "recipient_name" => "Martin Freeman",
- "item" => [
- {
- "item_no" => 45,
- "item_description" => "Yet another item.",
- "item_total" => 456.78
- },
- {
- "item_no" => 56,
- "item_description" => "And another one.",
- "item_total" => 567.89
- }
- ]
- }
- ]
-
- mb = TXTextControl::ReportingCloud::MergeBody.new(merge_data)
- merge_res = r.merge_document(mb, "sample_invoice.tx")
- data = Base64.strict_decode64(merge_res[0])
-
- # Check for PDF magic number
- expect(is_pdf(data)).to be(true)
- end
- end
-
- describe "#append_documents" do
- it "appends documents" do
- documents = [
- TXTextControl::ReportingCloud::AppendDocument.new(template_data_B64),
- TXTextControl::ReportingCloud::AppendDocument.new(template_data_B64, :new_section)
- ]
-
- ds = TXTextControl::ReportingCloud::DocumentSettings.new
- ds.author = "John Doe"
- ds.creator_application = "That App™"
-
- ab = TXTextControl::ReportingCloud::AppendBody.new(documents, ds)
-
- # Append the documents
- res = r.append_documents(ab)
- expect(res).not_to be(nil)
- expect(res).to be_a(String)
- data = Base64.strict_decode64(res)
-
- expect(data.length).to be(18789)
-
- # Check for PDF magic number
- expect(is_pdf(data)).to be(true)
- end
- end
-
- describe "#get_api_keys" do
- it "returns all API keys" do
- keys = r.get_api_keys
- expect(keys.length).to be(2)
- keys.each do |key|
- expect(key.key).to match(/[a-zA-Z0-9]*/)
- end
- end
- end
-
- describe "#create_api_key" do
- it "creates an API key" do
- $api_key = r.create_api_key
- expect($api_key).to match(/[a-zA-Z0-9]*/)
- keys = r.get_api_keys
- expect(keys.length).to be(3)
- expect(keys.any? { |k| k.key == $api_key }).to be(true)
- end
- end
-
- describe "#delete_api_key" do
- it "deletes an API key" do
- expect($api_key).not_to be_empty
- r.delete_api_key($api_key)
- keys = r.get_api_keys
- expect(keys.length).to be(2)
- expect(keys.any? { |k| k.key == $api_key }).to be(false)
- end
- end
-
- describe "#get_account_settings" do
- it "gets trial settings" do
- canned_response = File.new File.dirname(__FILE__) + '/../support/fixtures/get_account_settings_trial.json'
- stub_request(:get, "https://api.reporting.cloud/v1/account/settings").to_return(:body => canned_response)
-
- as = r.get_account_settings
-
- # Check attributes
- expect(as.serial_number).to be(:trial)
- expect(as.created_documents).to be(7)
- expect(as.uploaded_templates).to be(2)
- expect(as.max_documents).to be(30000)
- expect(as.max_templates).to be(100)
- expect(as.valid_until).to eq(DateTime.iso8601("2016-07-03T16:13:13+00:00"))
- end
-
- it "gets paid version settings" do
- canned_response = File.new File.dirname(__FILE__) + '/../support/fixtures/get_account_settings_sn.json'
- stub_request(:get, "https://api.reporting.cloud/v1/account/settings").to_return(:body => canned_response)
-
- as = r.get_account_settings
-
- # Check attributes
- expect(as.serial_number).to eq("3546372837463")
- expect(as.created_documents).to be(7)
- expect(as.uploaded_templates).to be(2)
- expect(as.max_documents).to be(30000)
- expect(as.max_templates).to be(100)
- expect(as.valid_until).to eq(DateTime.iso8601("2016-05-30T12:07:45+00:00"))
- end
- end
-
- describe "#template_exists" do
- it "returns true for existing template names" do
- templates = r.list_templates
- expect(r.template_exists?(templates[0].template_name)).to be(true)
- end
-
- it "returns false for non existing template names" do
- expect(r.template_exists?("sdfsdfsdfsdf.fsdf")).to be(false)
- end
- end
-
- def is_pdf(data)
- # Check for PDF magic number
- return data[0].ord == 0x25 &&
- data[1].ord == 0x50 &&
- data[2].ord == 0x44 &&
- data[3].ord == 0x46
- end
-
- def is_doc(data)
- return data[0].ord == 0xD0 &&
- data[1].ord == 0xCF &&
- data[2].ord == 0x11 &&
- data[3].ord == 0xE0 &&
- data[4].ord == 0xA1 &&
- data[5].ord == 0xB1 &&
- data[6].ord == 0x1A &&
- data[7].ord == 0xE1
- end
-
- describe "#convert_document" do
- it "converts the document to pdf" do
- dataB64 = r.convert_document(template_data_B64)
- data = Base64.strict_decode64(dataB64)
- expect(is_pdf(data)).to be(true)
- end
-
- it "converts the document to doc" do
- dataB64 = r.convert_document(template_data_B64, :doc)
- data = Base64.strict_decode64(dataB64)
-
- # Check for DOC magic number
- expect(is_doc(data)).to be(true)
- end
- end
-
- describe "#upload_template" do
- it "uploads a template" do
- r.upload_template("__ruby_wrapper_test.tx", template_data_B64)
- expect(r.template_exists?("__ruby_wrapper_test.tx")).to be(true)
- end
- end
-
- describe "#get_template_page_count" do
- it "counts three pages" do
- expect(r.get_template_page_count("__ruby_wrapper_test.tx")).to be(3)
- end
- end
-
- describe "#download_template" do
- it "downloads a template" do
- downloaded = r.download_template("__ruby_wrapper_test.tx")
- expect(downloaded).to eq(template_data_B64)
- end
- end
-
- describe "#delete_template" do
- it "deletes a template" do
- templates = r.list_templates
- expect(templates.any? { |t| t.template_name == "__ruby_wrapper_test.tx" }).to be (true)
- r.delete_template("__ruby_wrapper_test.tx")
- templates = r.list_templates
- expect(templates.any? { |t| t.template_name == "__ruby_wrapper_test.tx" }).to be (false)
- end
- end
-
- describe "#find_and_replace" do
- # Adapt template name and replaced strings to one of your templates.
- it "replaces two substrings correctly" do
- template_name = "invoice.tx"
- templates = r.list_templates
- expect(templates.any? { |t| t.template_name == template_name }).to be(true)
- find_and_replace_body = TXTextControl::ReportingCloud::FindAndReplaceBody.new([["Quick Facts", "Awesome Facts"], ["Total Due", "IOU"]])
- result_b64 = r.find_and_replace(find_and_replace_body, template_name, :html, true)
- html = Base64.strict_decode64(result_b64)
- expect(html).to include("Awesome Facts")
- expect(html).to include("IOU")
- expect(html).not_to include("Quick Facts")
- expect(html).not_to include("Total Due")
- end
- end
-
- describe "#list_fonts" do
- it "returns an array of strings" do
- fonts = r.list_fonts
- expect(fonts).to all(be_a(String))
- end
- end
-
- describe "#check_text" do
- it "returns expected incorrect words" do
- incorrect_words = r.check_text("Thiss is a testt", "en_US.dic")
- expect(incorrect_words.length).to be(2)
- word = incorrect_words[0]
- expect(word.length).to be(5)
- expect(word.start).to be(0)
- expect(word.text).to eq("Thiss")
- expect(word.is_duplicate?).to be(false)
- expect(word.language).to eq("en_US.dic")
- word = incorrect_words[1]
- expect(word.length).to be(5)
- expect(word.start).to be(11)
- expect(word.text).to eq("testt")
- expect(word.is_duplicate?).to be(false)
- expect(word.language).to eq("en_US.dic")
- end
-
- it "raises ArgumentError" do
- expect { r.check_text(nil, "en_US.dic") }.to raise_error(ArgumentError)
- expect { r.check_text("foo bar", nil) }.to raise_error(ArgumentError)
- end
- end
-
- describe "#get_available_dictionaries" do
- it "returns all available dictionaries" do
- dictionaries = r.get_available_dictionaries
- expect(dictionaries).not_to be_empty
- expect(dictionaries).to all(be_a(String))
- expect(dictionaries).to include("en_US.dic", "fr.dic", "en_GB.dic")
- end
- end
-
- describe "#get_suggestions" do
- it "returns correct suggestions" do
- sug = r.get_suggestions("Thiss", "en_US.dic", 10)
- expect(sug).not_to be_empty
- expect(sug.length).to eq(10)
- expect(sug).to all(be_a(String))
- expect(sug[0]).to eq("This")
- expect(sug[1]).to eq("Hiss")
- expect(sug[2]).to eq("Thesis")
- end
-
- it "raises ArgumentError" do
- expect { r.get_suggestions() }.to raise_error(ArgumentError)
- expect { r.get_suggestions(nil, "en_US.dic", 10) }.to raise_error(ArgumentError)
- expect { r.get_suggestions("Thiss", nil, 10) }.to raise_error(ArgumentError)
- expect { r.get_suggestions("Thiss", "en_US.dic", "bla") }.to raise_error(ArgumentError)
- expect { r.get_suggestions("Thiss", "en_US.dic") }.to raise_error(ArgumentError)
- end
- end
-end
diff --git a/spec/txtextcontrol/template_data_validator_spec.rb b/spec/txtextcontrol/template_data_validator_spec.rb
deleted file mode 100644
index 41a4962..0000000
--- a/spec/txtextcontrol/template_data_validator_spec.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-require 'spec_helper'
-require "txtextcontrol/reportingcloud/template_data_validator"
-
-describe TXTextControl::ReportingCloud::TemplateDataValidator do
- describe ".validate" do
- it "raises error on empty string or nil" do
- expect { TXTextControl::ReportingCloud::TemplateDataValidator.validate("") }.to raise_error(ArgumentError)
- expect { TXTextControl::ReportingCloud::TemplateDataValidator.validate(nil) }.to raise_error(ArgumentError)
- end
-
- it "validates a valid string" do
- expect { TXTextControl::ReportingCloud::TemplateDataValidator.validate("not empty") }.not_to raise_error
- end
- end
-end
\ No newline at end of file
diff --git a/spec/txtextcontrol/template_info_spec.rb b/spec/txtextcontrol/template_info_spec.rb
deleted file mode 100644
index 3224968..0000000
--- a/spec/txtextcontrol/template_info_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-require 'spec_helper'
-require "txtextcontrol/reportingcloud/template_info"
-
-describe TXTextControl::ReportingCloud::TemplateInfo do
- let (:canned_response) { File.open(File.dirname(__FILE__) + '/../support/fixtures/get_template_info.json', 'rb') { |f| f.read } }
-
- describe ".from_camelized_hash" do
- it "creates an instance from a hash using camel case attributes" do
- info = TXTextControl::ReportingCloud::TemplateInfo::from_camelized_hash(JSON.parse(canned_response))
- expect(info.template_name).to eq("invoice.tx")
- expect(info.merge_blocks.length).to eq(1)
- expect(info.merge_blocks[0].name).to eq("Sales_SalesOrderDetail")
- expect(info.merge_blocks[0].merge_fields.length).to eq(5)
- expect(info.merge_fields.length).to eq(15)
- expect(info.merge_fields[5].name).to eq("Customer_Customer.Sales_CustomerAddress.Person_Address.City")
- expect(info.merge_blocks[0].merge_blocks.length).to eq(0)
- end
- end
-end
diff --git a/spec/txtextcontrol/template_name_validator_spec.rb b/spec/txtextcontrol/template_name_validator_spec.rb
deleted file mode 100644
index cdf9f47..0000000
--- a/spec/txtextcontrol/template_name_validator_spec.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-require 'spec_helper'
-require "txtextcontrol/reportingcloud/template_name_validator"
-
-describe TXTextControl::ReportingCloud::TemplateNameValidator do
- describe ".validate" do
- it "raises error on empty string or nil" do
- expect { TXTextControl::ReportingCloud::TemplateNameValidator.validate("") }.to raise_error(ArgumentError)
- expect { TXTextControl::ReportingCloud::TemplateNameValidator.validate(nil) }.to raise_error(ArgumentError)
- end
-
- it "validates a valid string" do
- expect { TXTextControl::ReportingCloud::TemplateNameValidator.validate("not empty") }.not_to raise_error
- end
- end
-end
\ No newline at end of file
diff --git a/spec/txtextcontrol/template_spec.rb b/spec/txtextcontrol/template_spec.rb
deleted file mode 100644
index 2a6ffdb..0000000
--- a/spec/txtextcontrol/template_spec.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-require 'spec_helper'
-require "txtextcontrol/reportingcloud/template"
-
-describe TXTextControl::ReportingCloud::Template do
- describe "#initialize" do
- it "creates a Template instance converting a string to a DateTime object" do
- t = TXTextControl::ReportingCloud::Template.new("Name", "2016-05-30T12:07:45+00:00", 23456)
- expect(t.size).to be(23456)
- expect(t.template_name).to eq("Name")
- expect(t.modified).to eq(DateTime.iso8601("2016-05-30T12:07:45+00:00"))
- end
- end
-end
\ No newline at end of file
diff --git a/top-level-namespace.html b/top-level-namespace.html
new file mode 100644
index 0000000..ed13cfa
--- /dev/null
+++ b/top-level-namespace.html
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+ Top Level Namespace
+
+ — Documentation by YARD 0.9.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Top Level Namespace
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Defined Under Namespace
+
+
+
+ Modules: TXTextControl
+
+
+
+ Classes: String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/txtextcontrol-reportingcloud.gemspec b/txtextcontrol-reportingcloud.gemspec
deleted file mode 100644
index b7c8748..0000000
--- a/txtextcontrol-reportingcloud.gemspec
+++ /dev/null
@@ -1,25 +0,0 @@
-# coding: utf-8
-lib = File.expand_path('../lib', __FILE__)
-$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
-require 'txtextcontrol/reportingcloud/version'
-
-Gem::Specification.new do |spec|
- spec.name = "txtextcontrol-reportingcloud"
- spec.version = TXTextControl::ReportingCloud::VERSION
- spec.authors = ["Thorsten Kummerow"]
- spec.email = ["thorsten@textcontrol.com"]
-
- spec.summary = "ReportingCloud Ruby SDK"
- spec.description = "Official Ruby SDK for the ReportingCloud Web API. Authored and supported by Text Control GmbH."
- spec.homepage = "http://www.reporting.cloud"
- spec.licenses = ["BSD-2-Clause"]
-
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
- spec.bindir = "exe"
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
- spec.require_paths = ["lib"]
-
- spec.add_development_dependency "bundler", "~> 1.12"
- spec.add_development_dependency "rake", "~> 10.0"
- spec.add_development_dependency "rspec", "~> 3.0"
-end