monday_ruby 1.1.0 → 1.2.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 (82) hide show
  1. checksums.yaml +4 -4
  2. data/.env +1 -1
  3. data/.rubocop.yml +2 -1
  4. data/CHANGELOG.md +14 -0
  5. data/CONTRIBUTING.md +104 -0
  6. data/README.md +146 -142
  7. data/docs/.vitepress/config.mjs +255 -0
  8. data/docs/.vitepress/theme/index.js +4 -0
  9. data/docs/.vitepress/theme/style.css +43 -0
  10. data/docs/README.md +80 -0
  11. data/docs/explanation/architecture.md +507 -0
  12. data/docs/explanation/best-practices/errors.md +478 -0
  13. data/docs/explanation/best-practices/performance.md +1084 -0
  14. data/docs/explanation/best-practices/rate-limiting.md +630 -0
  15. data/docs/explanation/best-practices/testing.md +820 -0
  16. data/docs/explanation/column-values.md +857 -0
  17. data/docs/explanation/design.md +795 -0
  18. data/docs/explanation/graphql.md +356 -0
  19. data/docs/explanation/migration/v1.md +808 -0
  20. data/docs/explanation/pagination.md +447 -0
  21. data/docs/guides/advanced/batch.md +1274 -0
  22. data/docs/guides/advanced/complex-queries.md +1114 -0
  23. data/docs/guides/advanced/errors.md +818 -0
  24. data/docs/guides/advanced/pagination.md +934 -0
  25. data/docs/guides/advanced/rate-limiting.md +981 -0
  26. data/docs/guides/authentication.md +286 -0
  27. data/docs/guides/boards/create.md +386 -0
  28. data/docs/guides/boards/delete.md +405 -0
  29. data/docs/guides/boards/duplicate.md +511 -0
  30. data/docs/guides/boards/query.md +530 -0
  31. data/docs/guides/boards/update.md +453 -0
  32. data/docs/guides/columns/create.md +452 -0
  33. data/docs/guides/columns/metadata.md +492 -0
  34. data/docs/guides/columns/query.md +455 -0
  35. data/docs/guides/columns/update-multiple.md +459 -0
  36. data/docs/guides/columns/update-values.md +509 -0
  37. data/docs/guides/files/add-to-column.md +40 -0
  38. data/docs/guides/files/add-to-update.md +37 -0
  39. data/docs/guides/files/clear-column.md +33 -0
  40. data/docs/guides/first-request.md +285 -0
  41. data/docs/guides/folders/manage.md +750 -0
  42. data/docs/guides/groups/items.md +626 -0
  43. data/docs/guides/groups/manage.md +501 -0
  44. data/docs/guides/installation.md +169 -0
  45. data/docs/guides/items/create.md +493 -0
  46. data/docs/guides/items/delete.md +514 -0
  47. data/docs/guides/items/query.md +605 -0
  48. data/docs/guides/items/subitems.md +483 -0
  49. data/docs/guides/items/update.md +699 -0
  50. data/docs/guides/updates/manage.md +619 -0
  51. data/docs/guides/use-cases/dashboard.md +1421 -0
  52. data/docs/guides/use-cases/import.md +1962 -0
  53. data/docs/guides/use-cases/task-management.md +1381 -0
  54. data/docs/guides/workspaces/manage.md +502 -0
  55. data/docs/index.md +69 -0
  56. data/docs/package-lock.json +2468 -0
  57. data/docs/package.json +13 -0
  58. data/docs/reference/client.md +540 -0
  59. data/docs/reference/configuration.md +586 -0
  60. data/docs/reference/errors.md +693 -0
  61. data/docs/reference/resources/account.md +208 -0
  62. data/docs/reference/resources/activity-log.md +369 -0
  63. data/docs/reference/resources/board-view.md +359 -0
  64. data/docs/reference/resources/board.md +393 -0
  65. data/docs/reference/resources/column.md +543 -0
  66. data/docs/reference/resources/file.md +236 -0
  67. data/docs/reference/resources/folder.md +386 -0
  68. data/docs/reference/resources/group.md +507 -0
  69. data/docs/reference/resources/item.md +348 -0
  70. data/docs/reference/resources/subitem.md +267 -0
  71. data/docs/reference/resources/update.md +259 -0
  72. data/docs/reference/resources/workspace.md +213 -0
  73. data/docs/reference/response.md +560 -0
  74. data/docs/tutorial/first-integration.md +713 -0
  75. data/lib/monday/client.rb +24 -0
  76. data/lib/monday/configuration.rb +5 -0
  77. data/lib/monday/request.rb +15 -0
  78. data/lib/monday/resources/base.rb +4 -0
  79. data/lib/monday/resources/file.rb +56 -0
  80. data/lib/monday/util.rb +1 -0
  81. data/lib/monday/version.rb +1 -1
  82. metadata +87 -4
@@ -0,0 +1,255 @@
1
+ import { defineConfig } from 'vitepress'
2
+
3
+ export default defineConfig({
4
+ title: 'monday_ruby',
5
+ description: 'A Ruby client library for the monday.com GraphQL API',
6
+ base: '/monday_ruby/',
7
+
8
+ head: [
9
+ [
10
+ 'script',
11
+ { async: '', src: 'https://www.googletagmanager.com/gtag/js?id=G-1TWB59K0W2' }
12
+ ],
13
+ [
14
+ 'script',
15
+ {},
16
+ `window.dataLayer = window.dataLayer || [];
17
+ function gtag(){dataLayer.push(arguments);}
18
+ gtag('js', new Date());
19
+ gtag('config', 'G-1TWB59K0W2');`
20
+ ]
21
+ ],
22
+
23
+ ignoreDeadLinks: false,
24
+
25
+ themeConfig: {
26
+ nav: [
27
+ { text: 'Home', link: '/' },
28
+ { text: 'Tutorial', link: '/tutorial/first-integration' },
29
+ { text: 'Guides', link: '/guides/installation' },
30
+ { text: 'Reference', link: '/reference/client' },
31
+ {
32
+ text: 'v1.1.0',
33
+ items: [
34
+ {
35
+ text: 'Changelog',
36
+ link: 'https://github.com/sanifhimani/monday_ruby/blob/main/CHANGELOG.md'
37
+ },
38
+ {
39
+ text: 'Contributing',
40
+ link: 'https://github.com/sanifhimani/monday_ruby/blob/main/CONTRIBUTING.md'
41
+ },
42
+ {
43
+ text: 'Migration Guide',
44
+ link: '/explanation/migration/v1'
45
+ }
46
+ ]
47
+ }
48
+ ],
49
+
50
+ sidebar: [
51
+ {
52
+ text: 'Getting Started',
53
+ items: [
54
+ { text: 'Overview', link: '/' },
55
+ { text: 'Tutorial', link: '/tutorial/first-integration' }
56
+ ]
57
+ },
58
+ {
59
+ text: 'How-to Guides',
60
+ collapsed: false,
61
+ items: [
62
+ { text: 'Installation & Setup', link: '/guides/installation' },
63
+ { text: 'Authentication', link: '/guides/authentication' },
64
+ { text: 'First Request', link: '/guides/first-request' },
65
+ {
66
+ text: 'Working with Boards',
67
+ collapsed: true,
68
+ items: [
69
+ { text: 'Create a Board', link: '/guides/boards/create' },
70
+ { text: 'Query Boards', link: '/guides/boards/query' },
71
+ { text: 'Update Board Settings', link: '/guides/boards/update' },
72
+ { text: 'Archive & Delete', link: '/guides/boards/delete' },
73
+ { text: 'Duplicate Boards', link: '/guides/boards/duplicate' }
74
+ ]
75
+ },
76
+ {
77
+ text: 'Working with Items',
78
+ collapsed: true,
79
+ items: [
80
+ { text: 'Create Items', link: '/guides/items/create' },
81
+ { text: 'Query Items', link: '/guides/items/query' },
82
+ { text: 'Update Items', link: '/guides/items/update' },
83
+ { text: 'Manage Subitems', link: '/guides/items/subitems' },
84
+ { text: 'Archive & Delete', link: '/guides/items/delete' }
85
+ ]
86
+ },
87
+ {
88
+ text: 'Working with Columns',
89
+ collapsed: true,
90
+ items: [
91
+ { text: 'Create Columns', link: '/guides/columns/create' },
92
+ { text: 'Update Column Values', link: '/guides/columns/update-values' },
93
+ { text: 'Update Multiple Values', link: '/guides/columns/update-multiple' },
94
+ { text: 'Query Column Values', link: '/guides/columns/query' },
95
+ { text: 'Change Metadata', link: '/guides/columns/metadata' }
96
+ ]
97
+ },
98
+ {
99
+ text: 'Working with Groups',
100
+ collapsed: true,
101
+ items: [
102
+ { text: 'Manage Groups', link: '/guides/groups/manage' },
103
+ { text: 'Items in Groups', link: '/guides/groups/items' }
104
+ ]
105
+ },
106
+ {
107
+ text: 'Working with Folders',
108
+ collapsed: true,
109
+ items: [
110
+ { text: 'Manage Folders', link: '/guides/folders/manage' }
111
+ ]
112
+ },
113
+ {
114
+ text: 'Working with Workspaces',
115
+ collapsed: true,
116
+ items: [
117
+ { text: 'Manage Workspaces', link: '/guides/workspaces/manage' }
118
+ ]
119
+ },
120
+ {
121
+ text: 'Working with Updates',
122
+ collapsed: true,
123
+ items: [
124
+ { text: 'Manage Updates', link: '/guides/updates/manage' }
125
+ ]
126
+ },
127
+ {
128
+ text: 'Working with Files',
129
+ collapsed: true,
130
+ items: [
131
+ { text: 'Add Files to Column', link: '/guides/files/add-to-column' },
132
+ { text: 'Add Files to Update', link: '/guides/files/add-to-update' },
133
+ { text: 'Clear Files Column', link: '/guides/files/clear-column' }
134
+ ]
135
+ },
136
+ {
137
+ text: 'Advanced Topics',
138
+ collapsed: true,
139
+ items: [
140
+ { text: 'Pagination', link: '/guides/advanced/pagination' },
141
+ { text: 'Error Handling', link: '/guides/advanced/errors' },
142
+ { text: 'Rate Limiting', link: '/guides/advanced/rate-limiting' },
143
+ { text: 'Complex Queries', link: '/guides/advanced/complex-queries' },
144
+ { text: 'Batch Operations', link: '/guides/advanced/batch' }
145
+ ]
146
+ },
147
+ {
148
+ text: 'Common Use Cases',
149
+ collapsed: true,
150
+ items: [
151
+ { text: 'Task Management', link: '/guides/use-cases/task-management' },
152
+ { text: 'Project Dashboard', link: '/guides/use-cases/dashboard' },
153
+ { text: 'Data Import', link: '/guides/use-cases/import' }
154
+ ]
155
+ }
156
+ ]
157
+ },
158
+ {
159
+ text: 'API Reference',
160
+ collapsed: false,
161
+ items: [
162
+ {
163
+ text: 'Core Concepts',
164
+ collapsed: false,
165
+ items: [
166
+ { text: 'Client', link: '/reference/client' },
167
+ { text: 'Configuration', link: '/reference/configuration' },
168
+ { text: 'Response', link: '/reference/response' },
169
+ { text: 'Errors', link: '/reference/errors' }
170
+ ]
171
+ },
172
+ {
173
+ text: 'Resources',
174
+ collapsed: true,
175
+ items: [
176
+ { text: 'Account', link: '/reference/resources/account' },
177
+ { text: 'Activity Log', link: '/reference/resources/activity-log' },
178
+ { text: 'Board', link: '/reference/resources/board' },
179
+ { text: 'Board View', link: '/reference/resources/board-view' },
180
+ { text: 'Column', link: '/reference/resources/column' },
181
+ { text: 'Folder', link: '/reference/resources/folder' },
182
+ { text: 'Group', link: '/reference/resources/group' },
183
+ { text: 'Item', link: '/reference/resources/item' },
184
+ { text: 'Subitem', link: '/reference/resources/subitem' },
185
+ { text: 'Update', link: '/reference/resources/update' },
186
+ { text: 'Workspace', link: '/reference/resources/workspace' }
187
+ ]
188
+ }
189
+ ]
190
+ },
191
+ {
192
+ text: 'Explanation',
193
+ collapsed: true,
194
+ items: [
195
+ {
196
+ text: 'Architecture & Design',
197
+ collapsed: true,
198
+ items: [
199
+ { text: 'Architecture Overview', link: '/explanation/architecture' },
200
+ { text: 'Design Decisions', link: '/explanation/design' }
201
+ ]
202
+ },
203
+ {
204
+ text: 'Concepts',
205
+ collapsed: true,
206
+ items: [
207
+ { text: 'GraphQL Basics', link: '/explanation/graphql' },
208
+ { text: 'Pagination Strategies', link: '/explanation/pagination' },
209
+ { text: 'Column Values', link: '/explanation/column-values' }
210
+ ]
211
+ },
212
+ {
213
+ text: 'Best Practices',
214
+ items: [
215
+ { text: 'Error Handling Patterns', link: '/explanation/best-practices/errors' },
216
+ { text: 'Rate Limiting Strategy', link: '/explanation/best-practices/rate-limiting' },
217
+ { text: 'Testing Your Integration', link: '/explanation/best-practices/testing' },
218
+ { text: 'Performance Optimization', link: '/explanation/best-practices/performance' }
219
+ ]
220
+ },
221
+ {
222
+ text: 'Migration',
223
+ items: [
224
+ { text: 'v0.x to v1.x', link: '/explanation/migration/v1' }
225
+ ]
226
+ }
227
+ ]
228
+ }
229
+ ],
230
+
231
+ socialLinks: [
232
+ { icon: 'github', link: 'https://github.com/sanifhimani/monday_ruby' },
233
+ {
234
+ icon: {
235
+ svg: '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="Rubygems--Streamline-Svg-Logos" height="24" width="24"><desc>Rubygems Streamline Icon: https://streamlinehq.com</desc><path fill="#d34231" d="m7.900525 7.99205 -0.01305 -0.01305 -2.89835 2.898325 7.03695 7.0239 2.89835 -2.885275 4.1386 -4.138625L16.1647 7.979v-0.01305H7.887475l0.01305 0.0261Z" stroke-width="0.25"></path><path fill="#d34231" d="M11.99995 0.25 1.7513425 6.125v11.75L11.99995 23.75l10.248625 -5.875v-11.75L11.99995 0.25Zm8.290275 16.502225L11.99995 21.53055 3.709675 16.752225V7.221675L11.99995 2.4433325 20.290225 7.221675v9.53055Z" stroke-width="0.25"></path></svg>'
236
+ },
237
+ link: 'https://rubygems.org/gems/monday_ruby'
238
+ }
239
+ ],
240
+
241
+ search: {
242
+ provider: 'local'
243
+ },
244
+
245
+ editLink: {
246
+ pattern: 'https://github.com/sanifhimani/monday_ruby/edit/main/docs/:path',
247
+ text: 'Edit this page on GitHub'
248
+ },
249
+
250
+ outline: {
251
+ level: [2, 3],
252
+ label: 'On this page'
253
+ }
254
+ }
255
+ })
@@ -0,0 +1,4 @@
1
+ import DefaultTheme from 'vitepress/theme'
2
+ import './style.css'
3
+
4
+ export default DefaultTheme
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Customize default theme styling by overriding CSS variables:
3
+ * https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css
4
+ */
5
+
6
+ /**
7
+ * Colors - shadcn-inspired palette with neutral grays and subtle blue accents
8
+ */
9
+
10
+ :root {
11
+ --vp-c-brand-1: #3b82f6;
12
+ --vp-c-brand-2: #2563eb;
13
+ --vp-c-brand-3: #1d4ed8;
14
+ --vp-c-brand-soft: rgba(59, 130, 246, 0.14);
15
+
16
+ --vp-c-tip-1: var(--vp-c-brand-1);
17
+ --vp-c-tip-2: var(--vp-c-brand-2);
18
+ --vp-c-tip-3: var(--vp-c-brand-3);
19
+ --vp-c-tip-soft: var(--vp-c-brand-soft);
20
+ }
21
+
22
+ .dark {
23
+ --vp-c-brand-1: #60a5fa;
24
+ --vp-c-brand-2: #3b82f6;
25
+ --vp-c-brand-3: #2563eb;
26
+ --vp-c-brand-soft: rgba(96, 165, 250, 0.16);
27
+ }
28
+
29
+ /**
30
+ * Component: Button
31
+ */
32
+
33
+ :root {
34
+ --vp-button-brand-border: transparent;
35
+ --vp-button-brand-text: var(--vp-c-white);
36
+ --vp-button-brand-bg: var(--vp-c-brand-3);
37
+ --vp-button-brand-hover-border: transparent;
38
+ --vp-button-brand-hover-text: var(--vp-c-white);
39
+ --vp-button-brand-hover-bg: var(--vp-c-brand-2);
40
+ --vp-button-brand-active-border: transparent;
41
+ --vp-button-brand-active-text: var(--vp-c-white);
42
+ --vp-button-brand-active-bg: var(--vp-c-brand-1);
43
+ }
data/docs/README.md ADDED
@@ -0,0 +1,80 @@
1
+ # Documentation
2
+
3
+ Documentation for monday_ruby, built with [VitePress](https://vitepress.dev/) following the [Diátaxis](https://diataxis.fr/) framework.
4
+
5
+ ## Development
6
+
7
+ ```bash
8
+ cd docs
9
+ npm install
10
+ npm run dev
11
+ ```
12
+
13
+ Visit `http://localhost:5173/monday_ruby/`
14
+
15
+ ## Building
16
+
17
+ ```bash
18
+ npm run build
19
+ ```
20
+
21
+ ## Documentation Structure
22
+
23
+ The documentation follows the Diátaxis framework with four distinct sections:
24
+
25
+ ### 1. Tutorial (Learning-oriented)
26
+ - **Purpose**: Help beginners learn by building something
27
+ - **Location**: `/tutorial/`
28
+ - Takes users through their first integration step-by-step
29
+
30
+ ### 2. How-to Guides (Problem-oriented)
31
+ - **Purpose**: Show how to solve specific problems
32
+ - **Location**: `/guides/`
33
+ - Task-based guides for common scenarios
34
+
35
+ ### 3. API Reference (Information-oriented)
36
+ - **Purpose**: Technical description of the API
37
+ - **Location**: `/reference/`
38
+ - Complete documentation of all resources and methods
39
+
40
+ ### 4. Explanation (Understanding-oriented)
41
+ - **Purpose**: Clarify concepts and design decisions
42
+ - **Location**: `/explanation/`
43
+ - Deep dives into architecture and best practices
44
+
45
+ ## Adding New Pages
46
+
47
+ ### Creating a New Page
48
+
49
+ 1. Create a markdown file in the appropriate directory:
50
+ ```
51
+ docs/guides/my-guide.md
52
+ docs/reference/resources/my-resource.md
53
+ ```
54
+
55
+ 2. Add to navigation in `docs/.vitepress/config.mjs`:
56
+ ```js
57
+ {
58
+ text: 'My Guide',
59
+ link: '/guides/my-guide'
60
+ }
61
+ ```
62
+
63
+ ### Page Templates
64
+
65
+ See `DOCS_PLANNING.md` in the repository root for templates and guidelines.
66
+
67
+ ## Deployment
68
+
69
+ Docs auto-deploy to GitHub Pages when you push to `main`.
70
+
71
+ Live at: `https://sanifhimani.github.io/monday_ruby/`
72
+
73
+ ## Writing Guidelines
74
+
75
+ - **Professional tone** — No excessive enthusiasm or emojis
76
+ - **Clear and concise** — Short sentences, active voice
77
+ - **Complete examples** — All code should be runnable
78
+ - **Consistent terminology** — Follow monday.com's terms
79
+
80
+ See `DOCS_PLANNING.md` for complete guidelines.