groupdocs 1.2.11 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. data/.travis.yml +2 -0
  2. data/Gemfile +1 -1
  3. data/README.md +0 -2
  4. data/Rakefile +1 -1
  5. data/examples/api-samples/Gemfile +1 -1
  6. data/examples/api-samples/samples/annotation-sample.rb +50 -0
  7. data/examples/api-samples/samples/sample18.rb +11 -2
  8. data/examples/api-samples/samples/sample19.rb +58 -0
  9. data/examples/api-samples/samples/sample20.rb +50 -0
  10. data/examples/api-samples/samples/sample21.rb +65 -0
  11. data/examples/api-samples/samples/sample22.rb +52 -0
  12. data/examples/api-samples/views/annotation_sample.haml +64 -0
  13. data/examples/api-samples/views/index.haml +8 -0
  14. data/examples/api-samples/views/sample1.haml +9 -1
  15. data/examples/api-samples/views/sample10.haml +9 -1
  16. data/examples/api-samples/views/sample11.haml +10 -0
  17. data/examples/api-samples/views/sample12.haml +8 -0
  18. data/examples/api-samples/views/sample13.haml +8 -0
  19. data/examples/api-samples/views/sample14.haml +8 -0
  20. data/examples/api-samples/views/sample15.haml +8 -0
  21. data/examples/api-samples/views/sample16.haml +8 -0
  22. data/examples/api-samples/views/sample17.haml +8 -0
  23. data/examples/api-samples/views/sample18.haml +11 -0
  24. data/examples/api-samples/views/sample19.haml +102 -0
  25. data/examples/api-samples/views/sample2.haml +9 -1
  26. data/examples/api-samples/views/sample20.haml +89 -0
  27. data/examples/api-samples/views/sample21.haml +106 -0
  28. data/examples/api-samples/views/sample22.haml +107 -0
  29. data/examples/api-samples/views/sample3.haml +10 -2
  30. data/examples/api-samples/views/sample4.haml +8 -0
  31. data/examples/api-samples/views/sample5.haml +8 -0
  32. data/examples/api-samples/views/sample6.haml +8 -0
  33. data/examples/api-samples/views/sample7.haml +9 -1
  34. data/examples/api-samples/views/sample8.haml +10 -2
  35. data/examples/api-samples/views/sample9.haml +10 -2
  36. data/groupdocs.gemspec +4 -3
  37. data/lib/groupdocs.rb +2 -4
  38. data/lib/groupdocs/api.rb +2 -0
  39. data/lib/groupdocs/api/entity.rb +4 -36
  40. data/lib/groupdocs/api/helpers/access_rights_helper.rb +4 -4
  41. data/lib/groupdocs/api/helpers/byte_flag_helper.rb +3 -3
  42. data/lib/groupdocs/api/helpers/rest_helper.rb +5 -5
  43. data/lib/groupdocs/api/helpers/status_helper.rb +2 -2
  44. data/lib/groupdocs/api/helpers/url_helper.rb +2 -2
  45. data/lib/groupdocs/document.rb +55 -24
  46. data/lib/groupdocs/document/annotation.rb +7 -7
  47. data/lib/groupdocs/document/annotation/reply.rb +2 -2
  48. data/lib/groupdocs/document/view.rb +1 -1
  49. data/lib/groupdocs/job.rb +20 -20
  50. data/lib/groupdocs/questionnaire.rb +2 -2
  51. data/lib/groupdocs/questionnaire/collector.rb +2 -2
  52. data/lib/groupdocs/questionnaire/execution.rb +1 -1
  53. data/lib/groupdocs/questionnaire/question.rb +2 -2
  54. data/lib/groupdocs/signature.rb +1 -1
  55. data/lib/groupdocs/signature/envelope.rb +19 -19
  56. data/lib/groupdocs/signature/field.rb +6 -6
  57. data/lib/groupdocs/signature/form.rb +7 -7
  58. data/lib/groupdocs/signature/list.rb +2 -2
  59. data/lib/groupdocs/signature/recipient.rb +6 -6
  60. data/lib/groupdocs/signature/shared/document_methods.rb +5 -5
  61. data/lib/groupdocs/signature/shared/entity_methods.rb +4 -4
  62. data/lib/groupdocs/signature/shared/field_methods.rb +8 -8
  63. data/lib/groupdocs/signature/shared/recipient_methods.rb +2 -2
  64. data/lib/groupdocs/signature/shared/resource_methods.rb +1 -1
  65. data/lib/groupdocs/signature/template.rb +4 -4
  66. data/lib/groupdocs/storage.rb +4 -4
  67. data/lib/groupdocs/storage/file.rb +4 -4
  68. data/lib/groupdocs/storage/folder.rb +4 -4
  69. data/lib/groupdocs/subscription.rb +15 -15
  70. data/lib/groupdocs/version.rb +1 -1
  71. data/spec/groupdocs/api/entity_spec.rb +10 -37
  72. data/spec/groupdocs/api/helpers/access_mode_helper_spec.rb +1 -1
  73. data/spec/groupdocs/api/helpers/access_rights_helper_spec.rb +3 -3
  74. data/spec/groupdocs/api/helpers/credentials_helpers_spec.rb +5 -5
  75. data/spec/groupdocs/api/helpers/rest_helper_spec.rb +15 -15
  76. data/spec/groupdocs/api/helpers/status_helper_spec.rb +1 -1
  77. data/spec/groupdocs/api/helpers/url_helper_spec.rb +11 -11
  78. data/spec/groupdocs/api/request_spec.rb +6 -6
  79. data/spec/groupdocs/datasource_spec.rb +9 -9
  80. data/spec/groupdocs/document/annotation/reply_spec.rb +15 -15
  81. data/spec/groupdocs/document/annotation/reviewer_spec.rb +3 -3
  82. data/spec/groupdocs/document/annotation_spec.rb +17 -17
  83. data/spec/groupdocs/document/change_spec.rb +1 -1
  84. data/spec/groupdocs/document/field_spec.rb +1 -1
  85. data/spec/groupdocs/document/metadata_spec.rb +3 -3
  86. data/spec/groupdocs/document/view_spec.rb +4 -4
  87. data/spec/groupdocs/document_spec.rb +92 -66
  88. data/spec/groupdocs/job_spec.rb +29 -29
  89. data/spec/groupdocs/questionnaire/collector_spec.rb +15 -19
  90. data/spec/groupdocs/questionnaire/execution_spec.rb +12 -12
  91. data/spec/groupdocs/questionnaire/page_spec.rb +4 -4
  92. data/spec/groupdocs/questionnaire/question_spec.rb +6 -6
  93. data/spec/groupdocs/questionnaire_spec.rb +18 -18
  94. data/spec/groupdocs/signature/contact_spec.rb +9 -9
  95. data/spec/groupdocs/signature/envelope_spec.rb +34 -34
  96. data/spec/groupdocs/signature/field_spec.rb +13 -13
  97. data/spec/groupdocs/signature/form_spec.rb +9 -9
  98. data/spec/groupdocs/signature/list_spec.rb +3 -3
  99. data/spec/groupdocs/signature/role_spec.rb +2 -2
  100. data/spec/groupdocs/signature/template_spec.rb +6 -6
  101. data/spec/groupdocs/signature_spec.rb +3 -3
  102. data/spec/groupdocs/storage/file_spec.rb +20 -20
  103. data/spec/groupdocs/storage/folder_spec.rb +21 -21
  104. data/spec/groupdocs/storage/package_spec.rb +2 -2
  105. data/spec/groupdocs/storage_spec.rb +1 -1
  106. data/spec/groupdocs/subscription_spec.rb +3 -3
  107. data/spec/groupdocs/user_spec.rb +5 -5
  108. data/spec/spec_helper.rb +9 -7
  109. data/spec/support/json/document_thumbnails.json +24 -0
  110. data/spec/support/shared_examples/api/entity.rb +8 -8
  111. data/spec/support/shared_examples/signature/shared/document_methods.rb +8 -8
  112. data/spec/support/shared_examples/signature/shared/entity_fields.rb +3 -3
  113. data/spec/support/shared_examples/signature/shared/entity_methods.rb +12 -12
  114. data/spec/support/shared_examples/signature/shared/field_methods.rb +29 -29
  115. data/spec/support/shared_examples/signature/shared/recipient_methods.rb +3 -3
  116. data/spec/support/shared_examples/signature/shared/resource_methods.rb +2 -2
  117. metadata +33 -5
@@ -1,4 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
+ - 1.8.7
3
4
  - 1.9.2
4
5
  - 1.9.3
6
+ - 2.0.0
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
- source :rubygems
1
+ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
data/README.md CHANGED
@@ -4,8 +4,6 @@ Ruby SDK for [GroupDocs](http://groupdocs.com) REST API.
4
4
 
5
5
  ## Installation
6
6
 
7
- GroupDocs requires Ruby 1.9. Ruby 1.8 is not supported!
8
-
9
7
  Install as usually
10
8
 
11
9
  gem install groupdocs
data/Rakefile CHANGED
@@ -6,4 +6,4 @@ RSpec::Core::RakeTask.new do |spec|
6
6
  spec.pattern = 'spec/**/*_spec.rb'
7
7
  end
8
8
 
9
- task default: :spec
9
+ task :default => :spec
@@ -1,5 +1,5 @@
1
1
  source :rubygems
2
2
 
3
3
  gem 'sinatra'
4
- gem 'groupdocs', "1.2"
4
+ gem 'groupdocs', "1.2.10"
5
5
  gem 'haml'
@@ -0,0 +1,50 @@
1
+ # GET request
2
+ get '/annotation-sample' do
3
+ haml :annotation_sample
4
+ end
5
+
6
+ # POST request
7
+ post '/annotation-sample' do
8
+ set :client_id, params[:client_id]
9
+ set :private_key, params[:private_key]
10
+ set :file_name, params[:file_name]
11
+
12
+ begin
13
+ raise "Please enter all required parameters" if settings.client_id.empty? or settings.private_key.empty? or settings.file_name.empty?
14
+
15
+ GroupDocs.configure do |groupdocs|
16
+ groupdocs.client_id = params[:client_id]
17
+ groupdocs.private_key = params[:private_key]
18
+ groupdocs.api_server = 'https://api.groupdocs.com'
19
+ end
20
+ # get document metadata
21
+ metadata = GroupDocs::Document.metadata!('resume.pdf')
22
+ document = GroupDocs::Storage::File.new(id: metadata.id, guid: metadata.guid).to_document
23
+
24
+ # create new user
25
+ user = GroupDocs::User.new
26
+ user.nickname = 'test_account'
27
+ user.primary_email = 'test_email@email.com'
28
+ user.first_name = 'First name'
29
+ user.last_name = 'Last name'
30
+ user = GroupDocs::User.update_account!(user)
31
+
32
+ # add collaborator
33
+ document.add_collaborator! user unless document.collaborators!.any? { |c| c.guid == user.guid }
34
+
35
+ # build url
36
+ annotation = true # looks like "IsAnnotation" is some helper method so I stub it here
37
+ url = if annotation
38
+ "/document-annotation2/embed?quality=50&guid=#{document.file.guid}&uid=#{user.guid}&download=True"
39
+ else
40
+ "/document-viewer/embed?quality=50&guid=#{document.file.guid}&uid=#{user.guid}&download=True"
41
+ end
42
+
43
+ url = GroupDocs::Api::Request.new(path: url).prepare_and_sign_url
44
+ iframe_url = "https://apps.groupdocs.com#{url}"
45
+ rescue Exception => e
46
+ err = e.message
47
+ end
48
+
49
+ haml :annotation_sample, :locals => { :client_id => settings.client_id, :private_key => settings.private_key, :err => err, :file_name => settings.file_name, :iframe_url => iframe_url}
50
+ end
@@ -27,11 +27,12 @@ post '/sample18' do
27
27
  end
28
28
 
29
29
  message = ""
30
+ iframe = ""
30
31
  unless document.instance_of? String
31
32
 
32
33
  # convert file
33
34
  convert = document.to_document.convert!(settings.convert_type, {}, {:client_id => settings.client_id, :private_key => settings.private_key})
34
- sleep(3)
35
+ sleep(5)
35
36
 
36
37
  if convert.instance_of? GroupDocs::Job
37
38
  # get all jobs
@@ -46,6 +47,14 @@ post '/sample18' do
46
47
  end
47
48
 
48
49
  if job.status == :archived
50
+ # get job by ID
51
+ job = GroupDocs::Job.new(id: convert.id)
52
+ # get all job documents
53
+ documents = job.documents!({:client_id => settings.client_id, :private_key => settings.private_key})
54
+ # get compared file giud
55
+ guid = documents[:inputs].first.outputs.first.guid
56
+ # construct result iframe
57
+ iframe = "<iframe src='https://apps.groupdocs.com/document-viewer/embed/#{guid}' frameborder='0' width='100%' height='600'></iframe>"
49
58
  message = "<p>Converted file saved successfully."
50
59
  end
51
60
 
@@ -57,5 +66,5 @@ post '/sample18' do
57
66
  end
58
67
 
59
68
  # set variables for template
60
- haml :sample18, :locals => { :userId => settings.client_id, :privateKey => settings.private_key, :fileId => settings.file_id, :message => message, :err => err }
69
+ haml :sample18, :locals => { :userId => settings.client_id, :privateKey => settings.private_key, :fileId => settings.file_id, :message => message, :iframe => iframe, :err => err }
61
70
  end
@@ -0,0 +1,58 @@
1
+ # GET request
2
+ get '/sample19' do
3
+ haml :sample19
4
+ end
5
+
6
+ # POST request
7
+ post '/sample19' do
8
+ # set variables
9
+ set :client_id, params[:client_id]
10
+ set :private_key, params[:private_key]
11
+ set :sourceFileId, params[:sourceFileId]
12
+ set :targetFileId, params[:targetFileId]
13
+ set :callbackUrl, params[:callbackUrl]
14
+
15
+ begin
16
+ # check required variables
17
+ raise "Please enter all required parameters" if settings.client_id.empty? or settings.private_key.empty? or settings.sourceFileId.empty? or settings.targetFileId.empty?
18
+
19
+ # make a request to API using client_id and private_key
20
+ files_list = GroupDocs::Storage::Folder.list!('/', {}, { :client_id => settings.client_id, :private_key => settings.private_key})
21
+
22
+ source_document = ''
23
+ target_document = ''
24
+
25
+ # get source and target documents by file ID
26
+ files_list.each do |element|
27
+ if element.respond_to?('guid') == true and element.guid == settings.sourceFileId
28
+ source_document = element
29
+ end
30
+ if element.respond_to?('guid') == true and element.guid == settings.targetFileId
31
+ target_document = element
32
+ end
33
+ end
34
+
35
+ unless source_document.instance_of? String and target_document.instance_of? String
36
+
37
+ info = source_document.to_document.compare!(target_document.to_document, {:client_id => settings.client_id, :private_key => settings.private_key});
38
+ sleep(5)
39
+
40
+ # get job by ID
41
+ job = GroupDocs::Job.new(id: info.id)
42
+ # get all job documents
43
+ documents = job.documents!({:client_id => settings.client_id, :private_key => settings.private_key})
44
+ # get compared file giud
45
+ guid = documents[:outputs].first.file.guid
46
+
47
+ # construct result iframe
48
+ iframe = "<iframe src='https://apps.groupdocs.com/document-viewer/embed/#{guid}' frameborder='0' width='100%' height='600'></iframe>"
49
+
50
+ end
51
+
52
+ rescue Exception => e
53
+ err = e.message
54
+ end
55
+
56
+ # set variables for template
57
+ haml :sample19, :locals => { :userId => settings.client_id, :privateKey => settings.private_key, :sourceFileId => settings.sourceFileId, :targetFileId => settings.targetFileId, :callbackUrl => settings.callbackUrl, :iframe => iframe, :err => err }
58
+ end
@@ -0,0 +1,50 @@
1
+ # GET request
2
+ get '/sample20' do
3
+ haml :sample20
4
+ end
5
+
6
+ # POST request
7
+ post '/sample20' do
8
+ # set variables
9
+ set :client_id, params[:client_id]
10
+ set :private_key, params[:private_key]
11
+ set :resultFileId, params[:resultFileId]
12
+
13
+ begin
14
+
15
+ # check required variables
16
+ raise "Please enter all required parameters" if settings.client_id.empty? or settings.private_key.empty? or settings.resultFileId.empty?
17
+
18
+ # construct new storage file
19
+ file = GroupDocs::Storage::File.new(guid: settings.resultFileId)
20
+ # construct new document
21
+ document = GroupDocs::Document.new(file: file)
22
+ # get compare changes
23
+ changes = document.changes!({:client_id => settings.client_id, :private_key => settings.private_key})
24
+
25
+ result = ""
26
+ result += "<table class='border'>"
27
+ result += "<tr><td><font color='green'>Change Name</font></td><td><font color='green'>Change</font></td></tr>"
28
+ changes.each do |change|
29
+ result += "<tr><td>id</td><td>#{change.id}</td></tr>"
30
+ result += "<tr><td>type</td><td>#{change.type}</td></tr>"
31
+ result += "<tr><td>text</td><td>#{change.text}</td></tr>"
32
+ result += "<tr><td>page id</td><td>#{change.page[:Id]}</td></tr>"
33
+ result += "<tr><td>page weight</td><td>#{change.page[:Width]}</td></tr>"
34
+ result += "<tr><td>page height</td><td>#{change.page[:Height]}</td></tr>"
35
+ result += "<tr><td>box x</td><td>#{change.box.x}</td></tr>"
36
+ result += "<tr><td>box y</td><td>#{change.box.y}</td></tr>"
37
+ result += "<tr><td>box weight</td><td>#{change.box.width}</td></tr>"
38
+ result += "<tr><td>box height</td><td>#{change.box.height}</td></tr>"
39
+ result += "<tr bgcolor='#808080'><td></td><td></td></tr>"
40
+ end
41
+
42
+ result += "</table>"
43
+
44
+ rescue Exception => e
45
+ err = e.message
46
+ end
47
+
48
+ # set variables for template
49
+ haml :sample20, :locals => { :userId => settings.client_id, :privateKey => settings.private_key, :resultFileId => settings.resultFileId, :result => result, :err => err }
50
+ end
@@ -0,0 +1,65 @@
1
+ # GET request
2
+ get '/sample21' do
3
+ haml :sample21
4
+ end
5
+
6
+ # POST request
7
+ post '/sample21' do
8
+ # set variables
9
+ set :client_id, params[:client_id]
10
+ set :private_key, params[:private_key]
11
+ set :email, params[:email]
12
+ set :name, params[:name]
13
+ set :lastName, params[:lastName]
14
+ set :file, params[:file]
15
+
16
+ begin
17
+
18
+ # check required variables
19
+ raise "Please enter all required parameters" if settings.client_id.empty? or settings.private_key.empty? or settings.email.empty? or settings.name.empty? or settings.lastName.empty? or settings.file.nil?
20
+
21
+ # construct path
22
+ filepath = "#{Dir.tmpdir}/#{params[:file][:filename]}"
23
+ # open file
24
+ File.open(filepath, 'wb') { |f| f.write(params[:file][:tempfile].read) }
25
+ # upload file
26
+ file = GroupDocs::Storage::File.upload!(filepath, {}, client_id: settings.client_id, private_key: settings.private_key)
27
+
28
+ # create envelope using user id and entered by user name
29
+ envelope = GroupDocs::Signature::Envelope.new
30
+ envelope.name = params[:file][:filename]
31
+ envelope.email_subject = "Sing this!"
32
+ envelope.create!({}, client_id: settings.client_id, private_key: settings.private_key)
33
+
34
+ # Add uploaded document to envelope
35
+ envelope.add_document!(file.to_document, {}, {client_id: settings.client_id, private_key: settings.private_key})
36
+
37
+ # Get role list for current user
38
+ roles = GroupDocs::Signature::Role.get!({}, {client_id: settings.client_id, private_key: settings.private_key})
39
+
40
+ # Create new recipient
41
+ recipient = GroupDocs::Signature::Recipient.new
42
+ recipient.email = settings.email
43
+ recipient.first_name = settings.name
44
+ recipient.last_name = settings.lastName
45
+ recipient.role_id = roles.detect { |role| role.name == "Signer" }.id
46
+
47
+ # Add recipient to envelope
48
+ add = envelope.add_recipient!(recipient, {client_id: settings.client_id, private_key: settings.private_key})
49
+
50
+ # get recipient id
51
+ recipient_id = add[:recipient][:id]
52
+
53
+ # Send envelop
54
+ envelope.send!(nil, {client_id: settings.client_id, private_key: settings.private_key})
55
+
56
+ # Make iframe
57
+ iframe = "<iframe src='https://apps.groupdocs.com/signature/signembed/#{envelope.id}/#{recipient_id}' frameborder='0' width='720' height='600'></iframe>"
58
+
59
+ rescue Exception => e
60
+ err = e.message
61
+ end
62
+
63
+ # set variables for template
64
+ haml :sample21, :locals => { :userId => settings.client_id, :privateKey => settings.private_key, :email => settings.email, :name => settings.name, :lastName => settings.lastName, :iframe => iframe, :err => err }
65
+ end
@@ -0,0 +1,52 @@
1
+ # GET request
2
+ get '/sample22' do
3
+ haml :sample22
4
+ end
5
+
6
+ # POST request
7
+ post '/sample22' do
8
+ # set variables
9
+ set :client_id, params[:client_id]
10
+ set :private_key, params[:private_key]
11
+ set :fileId, params[:fileId]
12
+ set :email, params[:email]
13
+ set :first_name, params[:first_name]
14
+ set :last_name, params[:last_name]
15
+
16
+ begin
17
+
18
+ # check required variables
19
+ raise "Please enter all required parameters" if settings.client_id.empty? or settings.private_key.empty? or settings.fileId.empty? or settings.email.empty? or settings.first_name.empty? or settings.last_name.empty?
20
+
21
+ # create new user
22
+ user = GroupDocs::User.new
23
+ user.primary_email = settings.email
24
+ user.nickname = settings.first_name
25
+ user.first_name = settings.first_name
26
+ user.last_name = settings.last_name
27
+
28
+ # update account
29
+ GroupDocs::User.update_account!(user, {client_id: settings.client_id, private_key: settings.private_key})
30
+
31
+ # create file from GUID
32
+ file = GroupDocs::Storage::File.new(guid: settings.fileId)
33
+
34
+ # create document from file
35
+ document = GroupDocs::Document.new(file: file)
36
+
37
+ # set new collaboration
38
+ document.set_collaborators!([settings.email], 2, {:client_id => settings.client_id, :private_key => settings.private_key})
39
+
40
+ # get all collaborations
41
+ collaborations = document.collaborators!({:client_id => settings.client_id, :private_key => settings.private_key})
42
+
43
+ # set document reviewers
44
+ document.set_reviewers!(collaborations, {:client_id => settings.client_id, :private_key => settings.private_key})
45
+
46
+ rescue Exception => e
47
+ err = e.message
48
+ end
49
+
50
+ # set variables for template
51
+ haml :sample22, :locals => { :userId => settings.client_id, :privateKey => settings.private_key, :fileId => settings.fileId, :email => settings.email, :first_name => settings.first_name, :last_name => settings.last_name }
52
+ end
@@ -0,0 +1,64 @@
1
+ %h3{:style => "text-align:center;"}
2
+ %a{:href => "/"} GroupDocs Ruby SDK Samples
3
+ \- Envelope sample
4
+ .samplecontent{:style => "padding:10px;"}
5
+ %i This sample will show how to use annotation and user API using Ruby SDK
6
+ %br/
7
+ %br/
8
+ %p
9
+ You entered:
10
+ %p
11
+ UserId = #{(defined? client_id) ? client_id : ""}
12
+ %p
13
+ PrivateKey = #{(defined? private_key) ? private_key : ""}
14
+ %p
15
+ File name = #{(defined? file_name) ? file_name : ""}
16
+ %p
17
+ %font{:color => "red"} #{(defined? err) ? err : ""}
18
+ %br/
19
+ #requestForm{:style => "padding:20px; border:1px solid black;"}
20
+ %p Enter data for request and press "Make request" button
21
+ %form{:action => "/annotation-sample", :enctype => "multipart/form-data", :method => "post"}
22
+ %label{:for => "client_id"} GroupDocs ClientID
23
+ %br/
24
+ %input{:type=>"text", :name=>"client_id"}
25
+ %br/
26
+ %label{:for => "private_key"} GroupDocs PrivateKey
27
+ %br/
28
+ %input{:type=>"text", :name=>"private_key"}
29
+ %br/
30
+ %label{:for => "file"} File name with extension (filename.doc)
31
+ %br/
32
+ %input{:type => "text", :name => "file_name" }/
33
+ %br/
34
+ %br/
35
+ %input{:type => "submit", :value => "Submit"}/
36
+ %div{:style => "padding:20px; border:1px solid black;"}
37
+ %p
38
+ Results:
39
+ %br/
40
+ #{(defined? iframe_url) ? iframe_url : ""}
41
+
42
+ %div{:style => "padding:10px;"}
43
+ Choose anothe one sample:
44
+ %ul
45
+ %li
46
+ %a{:href => "/sample1"} Sample1 - How to login to GroupDocs using the API
47
+ %li
48
+ %a{:href => "/sample2"} Sample2 - How to list files within GroupDocs Storage using the Storage API
49
+ %li
50
+ %a{:href => "/sample3"} Sample3 - How to upload a file to GroupDocs using the Storage API
51
+ %li
52
+ %a{:href => "/sample4"} Sample4 - How to download a file from GroupDocs Storage using the Storage API
53
+ %li
54
+ %a{:href => "/sample5"} Sample5 - How to copy / move a file using the GroupDocs Storage API
55
+ %li
56
+ %a{:href => "/sample6"} Sample6 - How to add a Signature to a document in GroupDocs Signature
57
+ %li
58
+ %a{:href => "/sample7"} Sample7 - How to create a list of thumbnails for a document
59
+ %li
60
+ %a{:href => "/sample8"} Sample8 - How to return a URL representing a single page of a Document
61
+ %li
62
+ %a{:href => "/sample9"} Sample9 - How to generate an embedded Viewer URL for a Document
63
+ %li
64
+ %a{:href => "/sample10"} Sample10 - How to share a document to other users
@@ -37,5 +37,13 @@
37
37
  %a{:href => "/sample17"}Sample17 - How to upload a file into the storage and compress it into zip archive
38
38
  %li
39
39
  %a{:href => "/sample18"}Sample18 - How to convert Doc to Docx, Docx to Doc, Docx to PDF, PPT to PDF
40
+ %li
41
+ %a{:href => "/sample19"}Sample19 - How to Compare documents using Ruby SDK
42
+ %li
43
+ %a{:href => "/sample20"}Sample20 - How to Get Compare Change list for document using Ruby SDK
44
+ %li
45
+ %a{:href => "/sample21"}Sample21 - How to Create and Upload Envelop to GroupDocs account using Ruby SDK
46
+ %li
47
+ %a{:href => "/sample22"}Sample22 - How create or update user and add him to collaborators using PHP SDK
40
48
  %li
41
49
  %a{:href => "/envelope-sample"}Envelope sample - How to use envelope and signature API
@@ -50,7 +50,7 @@
50
50
  %br/
51
51
  %input{:type => "submit", :value => "Make Request"}/
52
52
  %div{:style => "padding:10px;"}
53
- Choose anothe one sample:
53
+ Choose another one sample:
54
54
  %ul
55
55
  %li
56
56
  %a{:href => "/sample1"} Sample1 - How to login to GroupDocs using the API
@@ -88,5 +88,13 @@
88
88
  %a{:href => "/sample17"}Sample17 - How to upload a file into the storage and compress it into zip archive
89
89
  %li
90
90
  %a{:href => "/sample18"}Sample18 - How to convert Doc to Docx, Docx to Doc, Docx to PDF, PPT to PDF
91
+ %li
92
+ %a{:href => "/sample19"}Sample19 - How to Compare documents using Ruby SDK
93
+ %li
94
+ %a{:href => "/sample20"}Sample20 - How to Get Compare Change list for document using Ruby SDK
95
+ %li
96
+ %a{:href => "/sample21"}Sample21 - How to Create and Upload Envelop to GroupDocs account using Ruby SDK
97
+ %li
98
+ %a{:href => "/sample22"}Sample22 - How create or update user and add him to collaborators using PHP SDK
91
99
  %li
92
100
  %a{:href => "/envelope-sample"}Envelope sample - How to use envelope and signature API