groupdocs 1.2.11 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
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