ruby_todo 0.3.0 → 0.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: df4bd82cdf26b1fe789c179bb3a9a5539acf1b2a415fb940f11bb61b1301cc95
4
- data.tar.gz: 1bc307c35e73e65869096f3999c6a3497060fbaedbeba7f0efd1d0205c2c0d10
3
+ metadata.gz: 229734a17a10d671008969bb5c7978ca1a39c487996a42fe46c083e215f8a93e
4
+ data.tar.gz: bfab43dd61cee93f66933fc03e35f6887015dad6f648adffa4fb21721aade435
5
5
  SHA512:
6
- metadata.gz: c41c8c4c9eb99d158a575ed241f916afbc3305a3efe62f76eac39c3a10b685c22e15e6cb5f599c6531f242894a0e4b8349642dd1e1116bd92465dd003b8d6901
7
- data.tar.gz: 17102824db5bdbae8d64815d8808797504712e64e85de681efdb93788fc3be605d6cdcda91a413aff960b3219d558c0eab0044b39100ab3f9aa228c726fc3d71
6
+ metadata.gz: 1d5f1da7992312f08826c979b73a8792ad6c55da104b0fef825b77319ab40f3ee5b45d8f23d0b3a0226b3c1784626bdc425bdddbb001e5e7a8b8f462968f6eb6
7
+ data.tar.gz: e3505cad87a10ac381f7359cbf1922611e5dd81cfd9005a7325850aa852e96fcd0146421cd1ec9a5508aa556267a486d9eafa812788cb2eb051e8f4a9809eaa5
data/CHANGELOG.md CHANGED
@@ -1,76 +1,55 @@
1
1
  # Changelog
2
2
 
3
- All notable changes to this project will be documented in this file.
3
+ ## [0.3.2] - 2024-03-28
4
4
 
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
5
+ ### Added
6
+ - Improved exposure of --version flag for CLI command
7
+
8
+ ## [0.3.1] - 2024-03-27
9
+
10
+ ### Fixed
11
+ - Fixed issue with executable not being properly included in the gem package
12
+ - Ensured all necessary files are included in the gem
13
+ - Updated documentation with clearer installation instructions
7
14
 
8
15
  ## [0.3.0] - 2024-03-27
9
16
 
10
17
  ### Added
11
- - Task export and import capabilities
12
- - JSON format for full data fidelity
13
- - CSV format for spreadsheet compatibility
14
- - Export single notebooks or all notebooks
15
- - Import with notebook creation
16
- - Task templates system
17
- - Reusable task patterns with placeholders
18
- - Dynamic due date calculations
19
- - Template management commands
20
- - Support for date and custom placeholders
21
- - Database schema versioning improvements
22
- - Added version 2 schema with templates table
23
- - Automatic database migrations
24
- - Enhanced CLI experience
25
- - Improved error handling
26
- - Better file path resolution
18
+ - Task export and import functionality with JSON and CSV formats
19
+ - Task templates system with reusable patterns
20
+ - Dynamic due date calculations for templates
21
+ - Database schema versioning for easier updates
22
+ - Improved CLI experience with better feedback
23
+ - Extended test coverage for new features
24
+ - GitHub Actions CI/CD workflow for automated testing and releases
27
25
 
28
26
  ### Changed
29
- - Extended database schema with templates table
27
+ - Enhanced documentation with examples
28
+ - Extended database schema to support templates
30
29
  - Improved exports directory organization
31
- - Enhanced documentation with template usage examples
30
+ - Better error handling for task operations
32
31
 
33
32
  ## [0.2.0] - 2024-03-27
34
33
 
35
34
  ### Added
36
- - Advanced task features
37
- - Task descriptions
38
- - Due dates with validation
39
- - Priority levels (high, medium, low)
40
- - Tags support with filtering
41
- - Enhanced task listing with filters
42
- - Filter by status
43
- - Filter by priority
44
- - Filter by due date
45
- - Filter by tags
46
- - New commands
47
- - `task show [NOTEBOOK] [TASK_ID]`: Show detailed task information
48
- - `task edit [NOTEBOOK] [TASK_ID]`: Edit task details
49
- - `task search [QUERY]`: Search for tasks across notebooks
50
- - `stats [NOTEBOOK]`: Show statistics for tasks
35
+ - Advanced task features (descriptions, due dates, priorities, tags)
36
+ - Task filtering and search capabilities
51
37
  - Task statistics and analytics
52
- - Database schema versioning and migration support
38
+ - Colored output for better readability
39
+ - Improved CLI interface with command aliases
40
+ - Enhanced error messages
53
41
 
54
42
  ### Changed
55
- - Improved task display with color-coded status and priority
56
- - Enhanced notebook listing with task counts
57
- - Better error handling and user feedback
58
- - Extended task model with additional validations
43
+ - Reorganized code structure for better maintainability
44
+ - Improved database schema for additional task attributes
45
+ - Enhanced documentation with more examples
59
46
 
60
47
  ## [0.1.0] - 2024-03-27
61
48
 
62
49
  ### Added
63
50
  - Initial release
64
- - Multi-notebook support
65
- - Task management with categories (todo, in progress, done, archived)
66
- - Automated task archiving
67
- - SQLite database for persistent storage
68
- - Beautiful CLI interface with colored output
69
- - Command-line interface with the following commands:
70
- - `init`: Initialize a new todo list
71
- - `notebook create [NAME]`: Create a new notebook
72
- - `notebook list`: List all notebooks
73
- - `task add [NOTEBOOK] [TITLE]`: Add a new task to a notebook
74
- - `task list [NOTEBOOK]`: List all tasks in a notebook
75
- - `task move [NOTEBOOK] [TASK_ID] [STATUS]`: Move a task to a different status
76
- - `task delete [NOTEBOOK] [TASK_ID]`: Delete a task
51
+ - Basic notebook management (create, list, delete)
52
+ - Task CRUD operations
53
+ - Task categorization (todo, in progress, done, archived)
54
+ - SQLite database integration
55
+ - Basic CLI interface
data/PRD.md ADDED
@@ -0,0 +1,264 @@
1
+ # ruby_todo - Product Requirements Document
2
+
3
+ ## Project Overview
4
+ Ruby Todo is a command-line interface (CLI) application that provides a flexible and powerful todo list management system. The application supports multiple notebooks, task categorization, and automated task management features, making it an ideal tool for personal and professional task organization.
5
+
6
+ ## Project Context
7
+ Platform: Command Line Interface
8
+ Framework: Ruby
9
+ Dependencies:
10
+ - thor: ^1.3.1 (CLI framework)
11
+ - sqlite3: ^1.7.0 (Database)
12
+ - activerecord: ^7.1.0 (ORM)
13
+ - colorize: ^1.1.0 (Terminal output formatting)
14
+ - tty-prompt: ^0.23.1 (Interactive prompts)
15
+ - tty-table: ^0.12.0 (Table formatting)
16
+
17
+ ## Document Sections
18
+
19
+ ### 1. Executive Summary
20
+ - Product Vision: Create an intuitive and powerful CLI todo list manager that helps users organize tasks across multiple notebooks with automated task management
21
+ - Target Audience:
22
+ - Primary: Developers and technical professionals
23
+ - Secondary: Anyone who prefers command-line tools for task management
24
+ - Key Value Propositions:
25
+ - Multi-notebook support
26
+ - Automated task management
27
+ - Simple and intuitive CLI interface
28
+ - Cross-category task movement
29
+ - Automatic task archiving
30
+ - Success Metrics:
31
+ - User adoption rate
32
+ - Task completion rates
33
+ - User satisfaction scores
34
+ - Command execution speed
35
+ - Project Timeline: 2-3 weeks for initial development
36
+
37
+ ### 2. Problem Statement
38
+ - Current Pain Points:
39
+ - Lack of flexible CLI todo list tools
40
+ - Difficulty in organizing tasks across different projects
41
+ - Manual task status management
42
+ - No automated task cleanup
43
+ - Market Opportunity:
44
+ - Growing demand for CLI productivity tools
45
+ - Need for automated task management
46
+ - Preference for terminal-based applications
47
+ - User Needs:
48
+ - Quick task entry and management
49
+ - Project-based organization
50
+ - Automated task progression
51
+ - Clear task status visualization
52
+ - Business Impact:
53
+ - Increased productivity
54
+ - Better task organization
55
+ - Reduced manual management
56
+ - Competitive Analysis:
57
+ - Existing CLI todo tools
58
+ - GUI-based todo applications
59
+ - Project management tools
60
+
61
+ ### 3. Product Scope
62
+ Core Features:
63
+ - Notebook Management
64
+ - Create multiple notebooks
65
+ - Switch between notebooks
66
+ - List all notebooks
67
+ - Delete notebooks
68
+ - Task Management
69
+ - Create new tasks
70
+ - Edit existing tasks
71
+ - Delete tasks
72
+ - Move tasks between categories
73
+ - Category System
74
+ - Todo (default state)
75
+ - In Progress
76
+ - Done
77
+ - Archived
78
+ - Automated Features
79
+ - Auto-archiving of completed tasks
80
+ - Task status tracking
81
+ - Due date management
82
+
83
+ User Personas:
84
+ 1. Developer
85
+ - Needs quick task entry
86
+ - Requires project organization
87
+ - Values automation
88
+
89
+ 2. Project Manager
90
+ - Needs task categorization
91
+ - Requires progress tracking
92
+ - Values organization
93
+
94
+ 3. Student
95
+ - Needs simple interface
96
+ - Requires task prioritization
97
+ - Values flexibility
98
+
99
+ Out of Scope:
100
+ - GUI interface
101
+ - Cloud synchronization
102
+ - Team collaboration
103
+ - Mobile app version
104
+ - Email notifications
105
+
106
+ ### 4. Technical Requirements
107
+ System Architecture:
108
+ - Ruby-based CLI application
109
+ - SQLite database
110
+ - ActiveRecord ORM
111
+ - Thor CLI framework
112
+
113
+ Platform Requirements:
114
+ - Ruby 3.0+
115
+ - SQLite3
116
+ - Unix-like terminal
117
+ - 100MB storage space
118
+
119
+ Framework Specifications:
120
+ - Thor for CLI commands
121
+ - ActiveRecord for data management
122
+ - TTY components for UI
123
+ - Colorize for output formatting
124
+
125
+ Integration Requirements:
126
+ - SQLite database
127
+ - File system operations
128
+ - Terminal I/O
129
+ - Date/time handling
130
+
131
+ Performance Criteria:
132
+ - Command response time < 1 second
133
+ - Database operations < 100ms
134
+ - Smooth command execution
135
+ - Efficient data retrieval
136
+
137
+ Security Requirements:
138
+ - Data file permissions
139
+ - Input validation
140
+ - Safe file operations
141
+ - Secure data storage
142
+
143
+ ### 5. Feature Specifications
144
+ Notebook Management:
145
+ - Description: Create and manage multiple notebooks
146
+ - User Stories:
147
+ - As a user, I want to create a new notebook
148
+ - As a user, I want to switch between notebooks
149
+ - As a user, I want to list all notebooks
150
+ - Acceptance Criteria:
151
+ - Creates notebook in database
152
+ - Validates notebook name
153
+ - Handles duplicate names
154
+ - Provides clear feedback
155
+ - Technical Constraints:
156
+ - Database schema design
157
+ - File system operations
158
+ - State management
159
+
160
+ Task Management:
161
+ - Description: Create and manage tasks within notebooks
162
+ - User Stories:
163
+ - As a user, I want to add a new task
164
+ - As a user, I want to move a task between categories
165
+ - As a user, I want to mark a task as complete
166
+ - Acceptance Criteria:
167
+ - Creates task with required fields
168
+ - Updates task status
169
+ - Validates task data
170
+ - Provides clear feedback
171
+ - Technical Constraints:
172
+ - Database operations
173
+ - State transitions
174
+ - Data validation
175
+
176
+ ### 6. Non-Functional Requirements
177
+ Performance Metrics:
178
+ - Command execution < 1 second
179
+ - Database operations < 100ms
180
+ - Efficient data retrieval
181
+ - Minimal memory usage
182
+
183
+ Security Standards:
184
+ - Safe file operations
185
+ - Input sanitization
186
+ - Data validation
187
+ - Error handling
188
+
189
+ Accessibility Requirements:
190
+ - Clear command syntax
191
+ - Helpful error messages
192
+ - Consistent formatting
193
+ - Keyboard navigation
194
+
195
+ Internationalization:
196
+ - UTF-8 support
197
+ - Date/time formatting
198
+ - Character encoding
199
+ - Locale support
200
+
201
+ ### 7. Implementation Plan
202
+ Development Phases:
203
+ 1. Core Infrastructure
204
+ - Database setup
205
+ - CLI framework
206
+ - Basic commands
207
+
208
+ 2. Feature Development
209
+ - Notebook management
210
+ - Task management
211
+ - Category system
212
+
213
+ 3. Automation
214
+ - Auto-archiving
215
+ - Status tracking
216
+ - Due dates
217
+
218
+ 4. Testing & Optimization
219
+ - Command testing
220
+ - Performance optimization
221
+ - User testing
222
+
223
+ Resource Requirements:
224
+ - Ruby developer
225
+ - Database specialist
226
+ - CLI/UX expert
227
+ - QA engineer
228
+
229
+ Timeline and Milestones:
230
+ - Phase 1: 1 week
231
+ - Phase 2: 1 week
232
+ - Phase 3: 3 days
233
+ - Phase 4: 2 days
234
+
235
+ ### 8. Success Metrics
236
+ Key Performance Indicators:
237
+ - Command execution speed
238
+ - User adoption rate
239
+ - Task completion rates
240
+ - Error rates
241
+
242
+ Success Criteria:
243
+ - < 1 second command response
244
+ - 95% command success rate
245
+ - 90% user satisfaction
246
+ - Zero data loss
247
+
248
+ Monitoring Plan:
249
+ - Command execution logging
250
+ - Error tracking
251
+ - Performance monitoring
252
+ - Usage analytics
253
+
254
+ Feedback Collection:
255
+ - Command feedback
256
+ - Error reporting
257
+ - Usage patterns
258
+ - Feature requests
259
+
260
+ Iteration Strategy:
261
+ - Weekly feature updates
262
+ - Continuous testing
263
+ - Regular user feedback
264
+ - Performance optimization
data/PROGRESS.md ADDED
@@ -0,0 +1,273 @@
1
+ # ruby_todo - Project Progress Tracker
2
+
3
+ ## Project Overview
4
+ Ruby Todo is a command-line interface (CLI) application that provides a flexible and powerful todo list management system. The application supports multiple notebooks, task categorization, and automated task management features, making it an ideal tool for personal and professional task organization.
5
+
6
+ ### Technical Stack
7
+ - Platform: Command Line Interface
8
+ - Framework: Ruby
9
+ - Key Dependencies:
10
+ - thor: CLI framework
11
+ - sqlite3: Database
12
+ - activerecord: ORM
13
+ - colorize: Terminal output formatting
14
+ - tty-prompt: Interactive prompts
15
+ - tty-table: Table formatting
16
+
17
+ ## Project Status Dashboard
18
+
19
+ ### Quick Status
20
+ - Project Start Date: March 27, 2024
21
+ - Current Phase: Pre-Release Testing
22
+ - Overall Progress: 95%
23
+ - Next Milestone: Production Release
24
+ - Current Sprint: Sprint 1
25
+ - Latest Release: v0.3.0
26
+
27
+ ### Key Metrics
28
+ - Features Completed: 19/20
29
+ - Open Issues: 0
30
+ - Test Coverage: 80%
31
+ - Performance Score: N/A
32
+ - Security Score: N/A
33
+
34
+ ## Development Phases
35
+
36
+ ### 1. Project Setup [Status: Completed]
37
+ #### Completed
38
+ - [x] Repository initialization
39
+ - [x] Development environment setup
40
+ - [x] Basic gem structure
41
+ - [x] Documentation structure
42
+ - [x] Initial architecture design
43
+ - [x] Test framework setup
44
+
45
+ #### In Progress
46
+ - [ ] CI/CD pipeline configuration
47
+
48
+ #### Blocked
49
+ - [ ] None
50
+
51
+ ### 2. Core Infrastructure [Status: Completed]
52
+ #### Completed
53
+ - [x] Base project structure
54
+ - [x] Database setup (SQLite)
55
+ - [x] ORM setup (ActiveRecord)
56
+ - [x] CLI framework (Thor)
57
+ - [x] Basic command structure
58
+ - [x] Database schema versioning
59
+ - [x] Schema migrations
60
+ - [x] Error handling improvements
61
+
62
+ #### In Progress
63
+ - [ ] Database optimization
64
+
65
+ #### Next Up
66
+ - [ ] Data backup system
67
+ - [ ] Configuration management
68
+
69
+ ### 3. Feature Development [Status: Completed]
70
+ #### Core Features
71
+ - [x] Notebook Management
72
+ - Progress: 100%
73
+ - Remaining Tasks: None
74
+ - Dependencies: None
75
+
76
+ - [x] Basic Task Management
77
+ - Progress: 100%
78
+ - Remaining Tasks: None
79
+ - Dependencies: None
80
+
81
+ - [x] Advanced Task Features
82
+ - Progress: 100%
83
+ - Remaining Tasks: None
84
+ - Dependencies: None
85
+
86
+ - [x] Task Filtering and Search
87
+ - Progress: 100%
88
+ - Remaining Tasks: None
89
+ - Dependencies: None
90
+
91
+ #### Additional Features
92
+ - [x] Task Statistics
93
+ - Priority: Medium
94
+ - Status: Completed
95
+ - [x] Task Export/Import
96
+ - Priority: Low
97
+ - Status: Completed
98
+ - [x] Task Templates
99
+ - Priority: Low
100
+ - Status: Completed
101
+
102
+ ### 4. Testing and Quality [Status: In Progress]
103
+ #### Unit Testing
104
+ - [x] Core Components
105
+ - [x] Database Operations
106
+ - [x] Models
107
+ - [ ] CLI Commands
108
+
109
+ #### Integration Testing
110
+ - [ ] Command Execution
111
+ - [ ] Database Operations
112
+ - [ ] File System Operations
113
+ - [ ] User Workflows
114
+
115
+ #### Performance Testing
116
+ - [ ] Command Response Time
117
+ - [ ] Database Query Performance
118
+ - [ ] Memory Usage
119
+ - [ ] File System Operations
120
+
121
+ ### 5. Documentation and Polish [Status: Completed]
122
+ #### Documentation
123
+ - [x] Basic README
124
+ - [x] CHANGELOG
125
+ - [x] Enhanced Usage Examples
126
+ - [x] API Documentation
127
+ - [x] Contributing Guide
128
+
129
+ #### Polish
130
+ - [x] Basic CLI Interface
131
+ - [x] Enhanced Error Messages
132
+ - [x] Colored Output
133
+ - [x] Progress Indicators
134
+ - [x] Command Aliases
135
+
136
+ ## Timeline and Milestones
137
+
138
+ ### Completed Milestones
139
+ 1. Initial Release (v0.1.0): March 27, 2024
140
+ - Key Achievements:
141
+ - Basic notebook management
142
+ - Task CRUD operations
143
+ - SQLite database integration
144
+ - Metrics:
145
+ - Basic feature set complete
146
+ - Working CLI interface
147
+ - Persistent storage
148
+
149
+ 2. Feature Update (v0.2.0): March 27, 2024
150
+ - Key Achievements:
151
+ - Advanced task features
152
+ - Task filtering and search
153
+ - Task statistics
154
+ - Database schema versioning
155
+ - Metrics:
156
+ - 15/20 features complete
157
+ - Enhanced user experience
158
+ - Improved documentation
159
+
160
+ 3. Beta Release (v0.3.0): March 27, 2024
161
+ - Key Achievements:
162
+ - Task export/import functionality
163
+ - Task templates with placeholders
164
+ - Additional unit tests
165
+ - Complete documentation
166
+ - Metrics:
167
+ - 19/20 features complete
168
+ - 80% test coverage
169
+ - Enhanced user workflow
170
+
171
+ ### Upcoming Milestones
172
+ 1. Production Release (v1.0.0): April 24, 2024
173
+ - Goals:
174
+ - Comprehensive testing
175
+ - CLI command testing
176
+ - Performance optimization
177
+ - Dependencies:
178
+ - Test completion
179
+ - Risk Factors:
180
+ - Testing scope
181
+ - Performance optimization
182
+
183
+ ## Current Sprint Details
184
+
185
+ ### Sprint 1 (March 27 - April 10, 2024)
186
+ #### Goals
187
+ - Implement advanced task features
188
+ - Add search and filtering
189
+ - Set up testing framework
190
+ - Add task export/import
191
+ - Add task templates
192
+
193
+ #### In Progress
194
+ - CLI Command Testing: [Owner] - 0% complete
195
+
196
+ #### Completed
197
+ - Basic Notebook Management
198
+ - Task CRUD Operations
199
+ - Database Setup
200
+ - CLI Interface
201
+ - Advanced Task Features
202
+ - Task Filtering and Search
203
+ - Task Statistics
204
+ - Model Unit Testing
205
+ - Core Component Testing
206
+ - Database Operation Testing
207
+ - Task Export/Import
208
+ - Task Templates
209
+
210
+ #### Blocked
211
+ - None
212
+
213
+ ## Risks and Mitigation
214
+
215
+ ### Active Risks
216
+ 1. Risk: Database Performance with Large Datasets
217
+ - Impact: Medium
218
+ - Probability: Low
219
+ - Mitigation: Implement pagination and optimization
220
+
221
+ 2. Risk: Test Coverage Goals
222
+ - Impact: High
223
+ - Probability: Medium
224
+ - Mitigation: Early test framework setup
225
+
226
+ ### Resolved Risks
227
+ 1. Risk: None yet
228
+
229
+ ## Dependencies and Blockers
230
+
231
+ ### External Dependencies
232
+ - Thor: Active
233
+ - SQLite3: Active
234
+ - ActiveRecord: Active
235
+ - TTY Components: Active
236
+
237
+ ### Internal Dependencies
238
+ - Database Setup: Active
239
+ - CLI Framework: Active
240
+ - Models: Active
241
+
242
+ ### Current Blockers
243
+ 1. None
244
+
245
+ ## Notes and Updates
246
+
247
+ ### Recent Updates
248
+ - March 27, 2024: Added task template functionality
249
+ - March 27, 2024: Implemented task export/import features
250
+ - March 27, 2024: Added template model unit tests
251
+ - March 27, 2024: Added database schema migrations
252
+ - March 27, 2024: Added unit tests for models
253
+ - March 27, 2024: Set up testing framework with in-memory database
254
+ - March 27, 2024: Added task statistics functionality
255
+ - March 27, 2024: Implemented search and filtering
256
+ - March 27, 2024: Added support for task descriptions, due dates, priorities, and tags
257
+ - March 27, 2024: Initial release with basic functionality
258
+
259
+ ### Important Decisions
260
+ - March 27, 2024: Using templates with placeholders for task patterns
261
+ - March 27, 2024: Using JSON and CSV for task import/export
262
+ - March 27, 2024: Using in-memory SQLite database for testing
263
+ - March 27, 2024: Implemented database schema versioning
264
+ - March 27, 2024: Chose Thor for CLI framework
265
+ - March 27, 2024: Selected SQLite for database
266
+ - March 27, 2024: Decided on TTY components for UI
267
+
268
+ ### Next Actions
269
+ 1. Complete CLI command testing
270
+ 2. Implement database optimization
271
+ 3. Add data backup system
272
+ 4. Add configuration management
273
+ 5. Set up CI/CD pipeline