resourcespace-ruby 0.1.1 → 0.1.2

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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/.yardoc/checksums +10 -0
  3. data/.yardoc/complete +0 -0
  4. data/.yardoc/object_types +0 -0
  5. data/.yardoc/objects/root.dat +0 -0
  6. data/.yardoc/proxy_types +0 -0
  7. data/.yardopts +7 -0
  8. data/README.md +1 -2
  9. data/doc/ResourceSpace/AuthenticationError.html +159 -0
  10. data/doc/ResourceSpace/AuthorizationError.html +159 -0
  11. data/doc/ResourceSpace/Client.html +2412 -0
  12. data/doc/ResourceSpace/ClientError.html +159 -0
  13. data/doc/ResourceSpace/Collection.html +2301 -0
  14. data/doc/ResourceSpace/Configuration.html +1655 -0
  15. data/doc/ResourceSpace/ConfigurationError.html +159 -0
  16. data/doc/ResourceSpace/ConflictError.html +159 -0
  17. data/doc/ResourceSpace/Error.html +682 -0
  18. data/doc/ResourceSpace/Metadata.html +2222 -0
  19. data/doc/ResourceSpace/NetworkError.html +159 -0
  20. data/doc/ResourceSpace/NotFoundError.html +159 -0
  21. data/doc/ResourceSpace/ParseError.html +159 -0
  22. data/doc/ResourceSpace/QuotaExceededError.html +159 -0
  23. data/doc/ResourceSpace/RateLimitError.html +159 -0
  24. data/doc/ResourceSpace/Resource.html +2995 -0
  25. data/doc/ResourceSpace/Search.html +2487 -0
  26. data/doc/ResourceSpace/ServerError.html +159 -0
  27. data/doc/ResourceSpace/TimeoutError.html +159 -0
  28. data/doc/ResourceSpace/UploadError.html +159 -0
  29. data/doc/ResourceSpace/User.html +2080 -0
  30. data/doc/ResourceSpace/ValidationError.html +159 -0
  31. data/doc/ResourceSpace.html +763 -0
  32. data/doc/_index.html +358 -0
  33. data/doc/class_list.html +54 -0
  34. data/doc/css/common.css +1 -0
  35. data/doc/css/full_list.css +58 -0
  36. data/doc/css/style.css +503 -0
  37. data/doc/file.CHANGELOG.html +105 -0
  38. data/doc/file.LICENSE.html +70 -0
  39. data/doc/file.README.html +419 -0
  40. data/doc/file_list.html +69 -0
  41. data/doc/frames.html +22 -0
  42. data/doc/index.html +419 -0
  43. data/doc/js/app.js +344 -0
  44. data/doc/js/full_list.js +242 -0
  45. data/doc/js/jquery.js +4 -0
  46. data/doc/method_list.html +1142 -0
  47. data/doc/top-level-namespace.html +110 -0
  48. data/lib/resourcespace/version.rb +1 -1
  49. data/resourcespace-ruby-0.1.0.gem +0 -0
  50. data/resourcespace-ruby-0.1.1.gem +0 -0
  51. data/resourcespace-ruby.gemspec +5 -5
  52. metadata +54 -7
@@ -0,0 +1,419 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ File: README
8
+
9
+ &mdash; Documentation by YARD 0.9.37
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" />
16
+
17
+ <script type="text/javascript">
18
+ pathId = "README";
19
+ relpath = '';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="file_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="_index.html">Index</a> &raquo;
40
+ <span class="title">File: README</span>
41
+
42
+ </div>
43
+
44
+ <div id="search">
45
+
46
+ <a class="full_list_link" id="class_list_link"
47
+ href="class_list.html">
48
+
49
+ <svg width="24" height="24">
50
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
51
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
52
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
53
+ </svg>
54
+ </a>
55
+
56
+ </div>
57
+ <div class="clear"></div>
58
+ </div>
59
+
60
+ <div id="content"><div id='filecontents'>
61
+ <h1 id="label-ResourceSpace+Ruby+Client">ResourceSpace Ruby Client</h1>
62
+
63
+ <p>A comprehensive Ruby client library for the <a href="https://www.resourcespace.com/">ResourceSpace</a> open-source Digital Asset Management system. This gem provides an easy-to-use interface for managing web assets including images, CSS files, JavaScript files, fonts, and other digital resources.</p>
64
+
65
+ <p><a href="https://badge.fury.io/rb/resourcespace-ruby"><img src="https://badge.fury.io/rb/resourcespace-ruby.svg"></a> <a href="https://rubydoc.info/gems/resourcespace-ruby"><img src="https://img.shields.io/badge/docs-rubydoc.info-blue"></a></p>
66
+
67
+ <h2 id="label-Features">Features</h2>
68
+ <ul><li>
69
+ <p><strong>Complete API Coverage</strong>: Supports all major ResourceSpace API endpoints</p>
70
+ </li><li>
71
+ <p><strong>Web Asset Focused</strong>: Optimized for managing web development assets (images, CSS, JS, fonts, icons)</p>
72
+ </li><li>
73
+ <p><strong>Authentication</strong>: Secure SHA256 signature-based authentication</p>
74
+ </li><li>
75
+ <p><strong>File Operations</strong>: Upload, download, and manage files with ease</p>
76
+ </li><li>
77
+ <p><strong>Search &amp; Collections</strong>: Powerful search capabilities and collection management</p>
78
+ </li><li>
79
+ <p><strong>Metadata Management</strong>: Comprehensive metadata and field management</p>
80
+ </li><li>
81
+ <p><strong>Error Handling</strong>: Robust error handling with specific exception types</p>
82
+ </li><li>
83
+ <p><strong>Configurable</strong>: Flexible configuration options with global and instance-level settings</p>
84
+ </li></ul>
85
+
86
+ <h2 id="label-Installation">Installation</h2>
87
+
88
+ <p>Add this line to your application’s Gemfile:</p>
89
+
90
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_gem'>gem</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>resourcespace-ruby</span><span class='tstring_end'>&#39;</span></span>
91
+ </code></pre>
92
+
93
+ <p>And then execute:</p>
94
+
95
+ <pre class="code ruby"><code class="ruby">$ bundle install
96
+ </code></pre>
97
+
98
+ <p>Or install it yourself as:</p>
99
+
100
+ <pre class="code ruby"><code class="ruby">$ gem install resourcespace-ruby
101
+ </code></pre>
102
+
103
+ <h2 id="label-Quick+Start">Quick Start</h2>
104
+
105
+ <h3 id="label-Basic+Configuration">Basic Configuration</h3>
106
+
107
+ <pre class="code ruby"><code class="ruby"><span class='id identifier rubyid_require'>require</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>resourcespace</span><span class='tstring_end'>&#39;</span></span>
108
+
109
+ <span class='comment'># Configure globally
110
+ </span><span class='const'><span class='object_link'><a href="ResourceSpace.html" title="ResourceSpace (module)">ResourceSpace</a></span></span><span class='period'>.</span><span class='id identifier rubyid_configure'><span class='object_link'><a href="ResourceSpace.html#configure-class_method" title="ResourceSpace.configure (method)">configure</a></span></span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_config'>config</span><span class='op'>|</span>
111
+ <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_url'>url</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>https://your-resourcespace.com/api/</span><span class='tstring_end'>&quot;</span></span>
112
+ <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_user'>user</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>your_username</span><span class='tstring_end'>&quot;</span></span>
113
+ <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_private_key'>private_key</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>your_private_key</span><span class='tstring_end'>&quot;</span></span> <span class='comment'># Get this from your ResourceSpace profile
114
+ </span> <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_timeout'>timeout</span> <span class='op'>=</span> <span class='int'>30</span>
115
+ <span class='kw'>end</span>
116
+
117
+ <span class='comment'># Or configure per instance
118
+ </span><span class='id identifier rubyid_client'>client</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="ResourceSpace.html" title="ResourceSpace (module)">ResourceSpace</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceSpace/Client.html" title="ResourceSpace::Client (class)">Client</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="ResourceSpace/Client.html#initialize-instance_method" title="ResourceSpace::Client#initialize (method)">new</a></span></span><span class='lparen'>(</span>
119
+ <span class='label'>url:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>https://your-resourcespace.com/api/</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
120
+ <span class='label'>user:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>your_username</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
121
+ <span class='label'>private_key:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>your_private_key</span><span class='tstring_end'>&quot;</span></span>
122
+ <span class='rparen'>)</span>
123
+ </code></pre>
124
+
125
+ <h3 id="label-Basic+Usage">Basic Usage</h3>
126
+
127
+ <pre class="code ruby"><code class="ruby"><span class='comment'># Test connection
128
+ </span><span class='id identifier rubyid_status'>status</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_test_connection'>test_connection</span>
129
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Connected to ResourceSpace </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_status'>status</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>version</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
130
+
131
+ <span class='comment'># Search for web assets
132
+ </span><span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_search'>search</span><span class='period'>.</span><span class='id identifier rubyid_search_web_assets'>search_web_assets</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>images</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
133
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Found </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_results'>results</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='embexpr_end'>}</span><span class='tstring_content'> image assets</span><span class='tstring_end'>&quot;</span></span>
134
+
135
+ <span class='comment'># Upload a web asset
136
+ </span><span class='id identifier rubyid_uploaded'>uploaded</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_resources'>resources</span><span class='period'>.</span><span class='id identifier rubyid_upload_file'>upload_file</span><span class='lparen'>(</span>
137
+ <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>assets/logo.png</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='comma'>,</span>
138
+ <span class='label'>caption:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Company Logo</span><span class='tstring_end'>&quot;</span></span>
139
+ <span class='rparen'>)</span>
140
+
141
+ <span class='comment'># Create a collection for web assets
142
+ </span><span class='id identifier rubyid_collection'>collection</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_collections'>collections</span><span class='period'>.</span><span class='id identifier rubyid_create_web_asset_collection'>create_web_asset_collection</span><span class='lparen'>(</span>
143
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Website Assets</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
144
+ <span class='label'>asset_type:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>images</span><span class='tstring_end'>&quot;</span></span>
145
+ <span class='rparen'>)</span>
146
+
147
+ <span class='comment'># Add resource to collection
148
+ </span><span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_collections'>collections</span><span class='period'>.</span><span class='id identifier rubyid_add_resource_to_collection'>add_resource_to_collection</span><span class='lparen'>(</span><span class='id identifier rubyid_uploaded'>uploaded</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>ref</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_collection'>collection</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>ref</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
149
+ </code></pre>
150
+
151
+ <h2 id="label-Web+Asset+Management">Web Asset Management</h2>
152
+
153
+ <p>This gem is specifically designed to work well with web development assets:</p>
154
+
155
+ <h3 id="label-Upload+Web+Assets">Upload Web Assets</h3>
156
+
157
+ <pre class="code ruby"><code class="ruby"><span class='comment'># Upload different types of web assets
158
+ </span><span class='id identifier rubyid_logo'>logo</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_resources'>resources</span><span class='period'>.</span><span class='id identifier rubyid_upload_file'>upload_file</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>assets/logo.png</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
159
+ <span class='id identifier rubyid_stylesheet'>stylesheet</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_resources'>resources</span><span class='period'>.</span><span class='id identifier rubyid_upload_file'>upload_file</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>assets/main.css</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
160
+ <span class='id identifier rubyid_script'>script</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_resources'>resources</span><span class='period'>.</span><span class='id identifier rubyid_upload_file'>upload_file</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>assets/app.js</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
161
+ <span class='id identifier rubyid_font'>font</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_resources'>resources</span><span class='period'>.</span><span class='id identifier rubyid_upload_file'>upload_file</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>assets/custom-font.woff2</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
162
+ </code></pre>
163
+
164
+ <h3 id="label-Search+for+Specific+Asset+Types">Search for Specific Asset Types</h3>
165
+
166
+ <pre class="code ruby"><code class="ruby"><span class='comment'># Search by asset type
167
+ </span><span class='id identifier rubyid_images'>images</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_search'>search</span><span class='period'>.</span><span class='id identifier rubyid_search_web_assets'>search_web_assets</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>images</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
168
+ <span class='id identifier rubyid_css_files'>css_files</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_search'>search</span><span class='period'>.</span><span class='id identifier rubyid_search_web_assets'>search_web_assets</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>css</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
169
+ <span class='id identifier rubyid_js_files'>js_files</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_search'>search</span><span class='period'>.</span><span class='id identifier rubyid_search_web_assets'>search_web_assets</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>javascript</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
170
+ <span class='id identifier rubyid_fonts'>fonts</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_search'>search</span><span class='period'>.</span><span class='id identifier rubyid_search_web_assets'>search_web_assets</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>fonts</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
171
+
172
+ <span class='comment'># Search by file extension
173
+ </span><span class='id identifier rubyid_svg_files'>svg_files</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_search'>search</span><span class='period'>.</span><span class='id identifier rubyid_search_by_extension'>search_by_extension</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>svg</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
174
+ <span class='id identifier rubyid_web_fonts'>web_fonts</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_search'>search</span><span class='period'>.</span><span class='id identifier rubyid_search_by_extension'>search_by_extension</span><span class='lparen'>(</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>woff</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>woff2</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ttf</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
175
+ </code></pre>
176
+
177
+ <h3 id="label-Organize+with+Collections">Organize with Collections</h3>
178
+
179
+ <pre class="code ruby"><code class="ruby"><span class='comment'># Create collections for different asset types
180
+ </span><span class='id identifier rubyid_image_collection'>image_collection</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_collections'>collections</span><span class='period'>.</span><span class='id identifier rubyid_create_web_asset_collection'>create_web_asset_collection</span><span class='lparen'>(</span>
181
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Website Images</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
182
+ <span class='label'>asset_type:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>images</span><span class='tstring_end'>&quot;</span></span>
183
+ <span class='rparen'>)</span>
184
+
185
+ <span class='id identifier rubyid_css_collection'>css_collection</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_collections'>collections</span><span class='period'>.</span><span class='id identifier rubyid_create_web_asset_collection'>create_web_asset_collection</span><span class='lparen'>(</span>
186
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Stylesheets</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
187
+ <span class='label'>asset_type:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>css</span><span class='tstring_end'>&quot;</span></span>
188
+ <span class='rparen'>)</span>
189
+
190
+ <span class='comment'># Get all web asset collections
191
+ </span><span class='id identifier rubyid_web_collections'>web_collections</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_collections'>collections</span><span class='period'>.</span><span class='id identifier rubyid_get_web_asset_collections'>get_web_asset_collections</span>
192
+ </code></pre>
193
+
194
+ <h3 id="label-Manage+Web+Asset+Metadata">Manage Web Asset Metadata</h3>
195
+
196
+ <pre class="code ruby"><code class="ruby"><span class='comment'># Set up web asset metadata fields (one-time setup)
197
+ </span><span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_metadata'>metadata</span><span class='period'>.</span><span class='id identifier rubyid_create_web_asset_fields'>create_web_asset_fields</span>
198
+
199
+ <span class='comment'># Update resource with web asset metadata
200
+ </span><span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_metadata'>metadata</span><span class='period'>.</span><span class='id identifier rubyid_update_web_asset_metadata'>update_web_asset_metadata</span><span class='lparen'>(</span><span class='id identifier rubyid_resource_id'>resource_id</span><span class='comma'>,</span> <span class='lbrace'>{</span>
201
+ <span class='label'>title:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Hero Background Image</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
202
+ <span class='label'>asset_type:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Image</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
203
+ <span class='label'>dimensions:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>1920x1080</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
204
+ <span class='label'>usage_rights:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Creative Commons</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
205
+ <span class='label'>purpose:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Website header background</span><span class='tstring_end'>&quot;</span></span>
206
+ <span class='rbrace'>}</span><span class='rparen'>)</span>
207
+ </code></pre>
208
+
209
+ <h2 id="label-Advanced+Usage">Advanced Usage</h2>
210
+
211
+ <h3 id="label-Resource+Management">Resource Management</h3>
212
+
213
+ <pre class="code ruby"><code class="ruby"><span class='comment'># Create a new resource
214
+ </span><span class='id identifier rubyid_resource'>resource</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_resources'>resources</span><span class='period'>.</span><span class='id identifier rubyid_create_resource'>create_resource</span><span class='lparen'>(</span>
215
+ <span class='label'>name:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Company Logo</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
216
+ <span class='label'>resource_type:</span> <span class='int'>1</span><span class='comma'>,</span>
217
+ <span class='label'>metadata:</span> <span class='lbrace'>{</span>
218
+ <span class='int'>12</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>logo, branding, company</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='comment'># Keywords field
219
+ </span> <span class='int'>51</span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Image</span><span class='tstring_end'>&quot;</span></span> <span class='comment'># Custom asset type field
220
+ </span> <span class='rbrace'>}</span>
221
+ <span class='rparen'>)</span>
222
+
223
+ <span class='comment'># Get resource details
224
+ </span><span class='id identifier rubyid_details'>details</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_resources'>resources</span><span class='period'>.</span><span class='id identifier rubyid_get_resource_data'>get_resource_data</span><span class='lparen'>(</span><span class='id identifier rubyid_resource_id'>resource_id</span><span class='rparen'>)</span>
225
+
226
+ <span class='comment'># Update resource metadata
227
+ </span><span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_resources'>resources</span><span class='period'>.</span><span class='id identifier rubyid_update_field'>update_field</span><span class='lparen'>(</span><span class='id identifier rubyid_resource_id'>resource_id</span><span class='comma'>,</span> <span class='int'>8</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>New Title</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
228
+
229
+ <span class='comment'># Download resource
230
+ </span><span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_resources'>resources</span><span class='period'>.</span><span class='id identifier rubyid_download_resource'>download_resource</span><span class='lparen'>(</span><span class='id identifier rubyid_resource_id'>resource_id</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/local/path/file.jpg</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
231
+
232
+ <span class='comment'># Get alternative files
233
+ </span><span class='id identifier rubyid_alternatives'>alternatives</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_resources'>resources</span><span class='period'>.</span><span class='id identifier rubyid_get_alternative_files'>get_alternative_files</span><span class='lparen'>(</span><span class='id identifier rubyid_resource_id'>resource_id</span><span class='rparen'>)</span>
234
+ </code></pre>
235
+
236
+ <h3 id="label-Advanced+Search">Advanced Search</h3>
237
+
238
+ <pre class="code ruby"><code class="ruby"><span class='comment'># Advanced search with multiple criteria
239
+ </span><span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_search'>search</span><span class='period'>.</span><span class='id identifier rubyid_advanced_search'>advanced_search</span><span class='lparen'>(</span><span class='lbrace'>{</span>
240
+ <span class='label'>title:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>logo</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
241
+ <span class='label'>extensions:</span> <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>png</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>svg</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
242
+ <span class='label'>from_date:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>2023-01-01</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
243
+ <span class='label'>to_date:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>2023-12-31</span><span class='tstring_end'>&quot;</span></span>
244
+ <span class='rbrace'>}</span><span class='comma'>,</span> <span class='lbrace'>{</span>
245
+ <span class='label'>order_by:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>date</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
246
+ <span class='label'>sort:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>desc</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
247
+ <span class='label'>fetchrows:</span> <span class='int'>20</span>
248
+ <span class='rbrace'>}</span><span class='rparen'>)</span>
249
+
250
+ <span class='comment'># Search by date range
251
+ </span><span class='id identifier rubyid_recent'>recent</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_search'>search</span><span class='period'>.</span><span class='id identifier rubyid_search_by_date_range'>search_by_date_range</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>2023-01-01</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>2023-12-31</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
252
+
253
+ <span class='comment'># Get recently added resources
254
+ </span><span class='id identifier rubyid_latest'>latest</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_search'>search</span><span class='period'>.</span><span class='id identifier rubyid_recent_resources'>recent_resources</span><span class='lparen'>(</span><span class='int'>10</span><span class='rparen'>)</span>
255
+ </code></pre>
256
+
257
+ <h3 id="label-Collection+Management">Collection Management</h3>
258
+
259
+ <pre class="code ruby"><code class="ruby"><span class='comment'># Create collection
260
+ </span><span class='id identifier rubyid_collection'>collection</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_collections'>collections</span><span class='period'>.</span><span class='id identifier rubyid_create_collection'>create_collection</span><span class='lparen'>(</span>
261
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Marketing Assets</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
262
+ <span class='label'>public:</span> <span class='kw'>false</span><span class='comma'>,</span>
263
+ <span class='label'>allow_changes:</span> <span class='kw'>true</span>
264
+ <span class='rparen'>)</span>
265
+
266
+ <span class='comment'># Add multiple resources
267
+ </span><span class='id identifier rubyid_resource_ids'>resource_ids</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='int'>123</span><span class='comma'>,</span> <span class='int'>124</span><span class='comma'>,</span> <span class='int'>125</span><span class='rbracket'>]</span>
268
+ <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_collections'>collections</span><span class='period'>.</span><span class='id identifier rubyid_add_resources_to_collection'>add_resources_to_collection</span><span class='lparen'>(</span><span class='id identifier rubyid_resource_ids'>resource_ids</span><span class='comma'>,</span> <span class='id identifier rubyid_collection_id'>collection_id</span><span class='rparen'>)</span>
269
+
270
+ <span class='comment'># Search public collections
271
+ </span><span class='id identifier rubyid_public_collections'>public_collections</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_collections'>collections</span><span class='period'>.</span><span class='id identifier rubyid_search_public_collections'>search_public_collections</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>web</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
272
+ </code></pre>
273
+
274
+ <h3 id="label-User+-26+Permissions">User &amp; Permissions</h3>
275
+
276
+ <pre class="code ruby"><code class="ruby"><span class='comment'># Check user capabilities
277
+ </span><span class='id identifier rubyid_capabilities'>capabilities</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_users'>users</span><span class='period'>.</span><span class='id identifier rubyid_capabilities'>capabilities</span>
278
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Can upload: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_capabilities'>capabilities</span><span class='lbracket'>[</span><span class='symbol'>:upload</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
279
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Can edit: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_capabilities'>capabilities</span><span class='lbracket'>[</span><span class='symbol'>:edit_resources</span><span class='rbracket'>]</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
280
+
281
+ <span class='comment'># Check specific permissions
282
+ </span><span class='id identifier rubyid_can_download'>can_download</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_users'>users</span><span class='period'>.</span><span class='id identifier rubyid_can_download?'>can_download?</span>
283
+ <span class='id identifier rubyid_has_admin'>has_admin</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_users'>users</span><span class='period'>.</span><span class='id identifier rubyid_admin?'>admin?</span>
284
+
285
+ <span class='comment'># Check resource-specific permissions
286
+ </span><span class='id identifier rubyid_can_edit_resource'>can_edit_resource</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_users'>users</span><span class='period'>.</span><span class='id identifier rubyid_can_edit_resource?'>can_edit_resource?</span><span class='lparen'>(</span><span class='id identifier rubyid_resource_id'>resource_id</span><span class='rparen'>)</span>
287
+ </code></pre>
288
+
289
+ <h2 id="label-Configuration+Options">Configuration Options</h2>
290
+
291
+ <pre class="code ruby"><code class="ruby"><span class='const'><span class='object_link'><a href="ResourceSpace.html" title="ResourceSpace (module)">ResourceSpace</a></span></span><span class='period'>.</span><span class='id identifier rubyid_configure'><span class='object_link'><a href="ResourceSpace.html#configure-class_method" title="ResourceSpace.configure (method)">configure</a></span></span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_config'>config</span><span class='op'>|</span>
292
+ <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_url'>url</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>https://your-resourcespace.com/api/</span><span class='tstring_end'>&quot;</span></span> <span class='comment'># Required
293
+ </span> <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_user'>user</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>username</span><span class='tstring_end'>&quot;</span></span> <span class='comment'># Required
294
+ </span> <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_private_key'>private_key</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>your_private_key</span><span class='tstring_end'>&quot;</span></span> <span class='comment'># Required
295
+ </span> <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_timeout'>timeout</span> <span class='op'>=</span> <span class='int'>30</span> <span class='comment'># Request timeout (seconds)
296
+ </span> <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_retries'>retries</span> <span class='op'>=</span> <span class='int'>3</span> <span class='comment'># Number of retry attempts
297
+ </span> <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_verify_ssl'>verify_ssl</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='comment'># Verify SSL certificates
298
+ </span> <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_auth_mode'>auth_mode</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>userkey</span><span class='tstring_end'>&quot;</span></span> <span class='comment'># Authentication mode
299
+ </span> <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_debug'>debug</span> <span class='op'>=</span> <span class='kw'>false</span> <span class='comment'># Enable debug logging
300
+ </span> <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_logger'>logger</span> <span class='op'>=</span> <span class='const'>Logger</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>STDOUT</span><span class='rparen'>)</span> <span class='comment'># Custom logger
301
+ </span><span class='kw'>end</span>
302
+ </code></pre>
303
+
304
+ <h2 id="label-Error+Handling">Error Handling</h2>
305
+
306
+ <p>The gem provides specific exception types for different error conditions:</p>
307
+
308
+ <pre class="code ruby"><code class="ruby"><span class='kw'>begin</span>
309
+ <span class='id identifier rubyid_resource'>resource</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_resources'>resources</span><span class='period'>.</span><span class='id identifier rubyid_get_resource_data'>get_resource_data</span><span class='lparen'>(</span><span class='int'>999</span><span class='rparen'>)</span>
310
+ <span class='kw'>rescue</span> <span class='const'><span class='object_link'><a href="ResourceSpace.html" title="ResourceSpace (module)">ResourceSpace</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceSpace/NotFoundError.html" title="ResourceSpace::NotFoundError (class)">NotFoundError</a></span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
311
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Resource not found: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
312
+ <span class='kw'>rescue</span> <span class='const'><span class='object_link'><a href="ResourceSpace.html" title="ResourceSpace (module)">ResourceSpace</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceSpace/AuthenticationError.html" title="ResourceSpace::AuthenticationError (class)">AuthenticationError</a></span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
313
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Authentication failed: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
314
+ <span class='kw'>rescue</span> <span class='const'><span class='object_link'><a href="ResourceSpace.html" title="ResourceSpace (module)">ResourceSpace</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceSpace/AuthorizationError.html" title="ResourceSpace::AuthorizationError (class)">AuthorizationError</a></span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
315
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Access denied: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
316
+ <span class='kw'>rescue</span> <span class='const'><span class='object_link'><a href="ResourceSpace.html" title="ResourceSpace (module)">ResourceSpace</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceSpace/ValidationError.html" title="ResourceSpace::ValidationError (class)">ValidationError</a></span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
317
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Invalid data: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
318
+ <span class='kw'>rescue</span> <span class='const'><span class='object_link'><a href="ResourceSpace.html" title="ResourceSpace (module)">ResourceSpace</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceSpace/ServerError.html" title="ResourceSpace::ServerError (class)">ServerError</a></span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
319
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Server error: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
320
+ <span class='kw'>rescue</span> <span class='const'><span class='object_link'><a href="ResourceSpace.html" title="ResourceSpace (module)">ResourceSpace</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceSpace/NetworkError.html" title="ResourceSpace::NetworkError (class)">NetworkError</a></span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_e'>e</span>
321
+ <span class='id identifier rubyid_puts'>puts</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Network error: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_message'>message</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
322
+ <span class='kw'>end</span>
323
+ </code></pre>
324
+
325
+ <h2 id="label-Rails+Integration">Rails Integration</h2>
326
+
327
+ <p>For Rails applications, add an initializer:</p>
328
+
329
+ <pre class="code ruby"><code class="ruby"><span class='comment'># config/initializers/resourcespace.rb
330
+ </span><span class='const'><span class='object_link'><a href="ResourceSpace.html" title="ResourceSpace (module)">ResourceSpace</a></span></span><span class='period'>.</span><span class='id identifier rubyid_configure'><span class='object_link'><a href="ResourceSpace.html#configure-class_method" title="ResourceSpace.configure (method)">configure</a></span></span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_config'>config</span><span class='op'>|</span>
331
+ <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_url'>url</span> <span class='op'>=</span> <span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>RESOURCESPACE_URL</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
332
+ <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_user'>user</span> <span class='op'>=</span> <span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>RESOURCESPACE_USER</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
333
+ <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_private_key'>private_key</span> <span class='op'>=</span> <span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>RESOURCESPACE_PRIVATE_KEY</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
334
+ <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_timeout'>timeout</span> <span class='op'>=</span> <span class='int'>30</span>
335
+ <span class='kw'>end</span>
336
+ </code></pre>
337
+
338
+ <p>Then use in your application:</p>
339
+
340
+ <pre class="code ruby"><code class="ruby"><span class='kw'>class</span> <span class='const'>AssetsController</span> <span class='op'>&lt;</span> <span class='const'>ApplicationController</span>
341
+ <span class='kw'>def</span> <span class='id identifier rubyid_upload'>upload</span>
342
+ <span class='id identifier rubyid_client'>client</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="ResourceSpace.html" title="ResourceSpace (module)">ResourceSpace</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="ResourceSpace/Client.html" title="ResourceSpace::Client (class)">Client</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="ResourceSpace/Client.html#initialize-instance_method" title="ResourceSpace::Client#initialize (method)">new</a></span></span>
343
+ <span class='id identifier rubyid_uploaded'>uploaded</span> <span class='op'>=</span> <span class='id identifier rubyid_client'>client</span><span class='period'>.</span><span class='id identifier rubyid_resources'>resources</span><span class='period'>.</span><span class='id identifier rubyid_upload_file'>upload_file</span><span class='lparen'>(</span><span class='id identifier rubyid_params'>params</span><span class='lbracket'>[</span><span class='symbol'>:file</span><span class='rbracket'>]</span><span class='rparen'>)</span>
344
+
345
+ <span class='comment'># Store reference in your model
346
+ </span> <span class='ivar'>@asset</span> <span class='op'>=</span> <span class='const'>Asset</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span>
347
+ <span class='label'>name:</span> <span class='id identifier rubyid_uploaded'>uploaded</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>title</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
348
+ <span class='label'>resourcespace_id:</span> <span class='id identifier rubyid_uploaded'>uploaded</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>ref</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span><span class='comma'>,</span>
349
+ <span class='label'>file_type:</span> <span class='id identifier rubyid_uploaded'>uploaded</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>file_extension</span><span class='tstring_end'>&#39;</span></span><span class='rbracket'>]</span>
350
+ <span class='rparen'>)</span>
351
+ <span class='kw'>end</span>
352
+ <span class='kw'>end</span>
353
+ </code></pre>
354
+
355
+ <h2 id="label-Testing">Testing</h2>
356
+
357
+ <p>Run the test suite:</p>
358
+
359
+ <pre class="code ruby"><code class="ruby">$ bundle exec rspec
360
+ </code></pre>
361
+
362
+ <p>Run tests with coverage:</p>
363
+
364
+ <pre class="code ruby"><code class="ruby">$ COVERAGE=1 bundle exec rspec
365
+ </code></pre>
366
+
367
+ <h2 id="label-Development">Development</h2>
368
+
369
+ <p>After checking out the repo, run:</p>
370
+
371
+ <pre class="code ruby"><code class="ruby">$ bin/setup
372
+ $ bundle exec rake spec
373
+ </code></pre>
374
+
375
+ <p>To install this gem onto your local machine:</p>
376
+
377
+ <pre class="code ruby"><code class="ruby">$ bundle exec rake install
378
+ </code></pre>
379
+
380
+ <h2 id="label-Contributing">Contributing</h2>
381
+ <ol><li>
382
+ <p>Fork it</p>
383
+ </li><li>
384
+ <p>Create your feature branch (<code>git checkout -b my-new-feature</code>)</p>
385
+ </li><li>
386
+ <p>Commit your changes (<code>git commit -am &#39;Add some feature&#39;</code>)</p>
387
+ </li><li>
388
+ <p>Push to the branch (<code>git push origin my-new-feature</code>)</p>
389
+ </li><li>
390
+ <p>Create new Pull Request</p>
391
+ </li></ol>
392
+
393
+ <h2 id="label-API+Reference">API Reference</h2>
394
+
395
+ <p>For complete API documentation, see the <a href="https://www.resourcespace.com/knowledge-base/api/">ResourceSpace API documentation</a>.</p>
396
+
397
+ <h2 id="label-License">License</h2>
398
+
399
+ <p>The gem is available as open source under the terms of the <a href="https://opensource.org/licenses/MIT">MIT License</a>.</p>
400
+
401
+ <h2 id="label-Support">Support</h2>
402
+ <ul><li>
403
+ <p>Documentation: <a href="https://rubydoc.info/gems/resourcespace-ruby">rubydoc.info/gems/resourcespace-ruby</a></p>
404
+ </li><li>
405
+ <p>Issues: <a href="https://github.com/mandelbro/resourcespace-ruby/issues">github.com/mandelbro/resourcespace-ruby/issues</a></p>
406
+ </li><li>
407
+ <p>ResourceSpace Documentation: <a href="https://www.resourcespace.com/knowledge-base/">www.resourcespace.com/knowledge-base/</a></p>
408
+ </li></ul>
409
+ </div></div>
410
+
411
+ <div id="footer">
412
+ Generated on Sat May 24 15:41:23 2025 by
413
+ <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
414
+ 0.9.37 (ruby-3.4.4).
415
+ </div>
416
+
417
+ </div>
418
+ </body>
419
+ </html>
@@ -0,0 +1,69 @@
1
+ <!DOCTYPE html>
2
+ <html >
3
+ <head>
4
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
5
+ <meta charset="utf-8" />
6
+
7
+ <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" />
8
+
9
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" />
10
+
11
+
12
+
13
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
16
+
17
+
18
+ <title>File List</title>
19
+ <base id="base_target" target="_parent" />
20
+ </head>
21
+ <body>
22
+ <div id="content">
23
+ <div class="fixed_header">
24
+ <h1 id="full_list_header">File List</h1>
25
+ <div id="full_list_nav">
26
+
27
+ <span><a target="_self" href="class_list.html">
28
+ Classes
29
+ </a></span>
30
+
31
+ <span><a target="_self" href="method_list.html">
32
+ Methods
33
+ </a></span>
34
+
35
+ <span><a target="_self" href="file_list.html">
36
+ Files
37
+ </a></span>
38
+
39
+ </div>
40
+
41
+ <div id="search">
42
+ <label for="search-class">Search:</label>
43
+ <input id="search-class" type="text" />
44
+ </div>
45
+ </div>
46
+
47
+ <ul id="full_list" class="file">
48
+
49
+
50
+ <li id="object_README" class="odd">
51
+ <div class="item"><span class="object_link"><a href="index.html" title="README">README</a></span></div>
52
+ </li>
53
+
54
+
55
+ <li id="object_CHANGELOG" class="even">
56
+ <div class="item"><span class="object_link"><a href="file.CHANGELOG.html" title="CHANGELOG">CHANGELOG</a></span></div>
57
+ </li>
58
+
59
+
60
+ <li id="object_LICENSE" class="odd">
61
+ <div class="item"><span class="object_link"><a href="file.LICENSE.html" title="LICENSE">LICENSE</a></span></div>
62
+ </li>
63
+
64
+
65
+
66
+ </ul>
67
+ </div>
68
+ </body>
69
+ </html>
data/doc/frames.html ADDED
@@ -0,0 +1,22 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>Documentation by YARD 0.9.37</title>
6
+ </head>
7
+ <script type="text/javascript">
8
+ var mainUrl = 'index.html';
9
+ try {
10
+ var match = decodeURIComponent(window.location.hash).match(/^#!(.+)/);
11
+ var name = match ? match[1] : mainUrl;
12
+ var url = new URL(name, location.href);
13
+ window.top.location.replace(url.origin === location.origin ? name : mainUrl);
14
+ } catch (e) {
15
+ window.top.location.replace(mainUrl);
16
+ }
17
+ </script>
18
+ <noscript>
19
+ <h1>Oops!</h1>
20
+ <h2>YARD requires JavaScript!</h2>
21
+ </noscript>
22
+ </html>