kiq 0.1.7 → 0.1.8
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 +4 -4
- data/README.md +21 -13
- data/lib/kiq/helpers/version.rb +1 -1
- data/lib/kiq/project.rb +0 -3
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75fe72b618549a0e9e65a7608a6a9c128e37e016
|
4
|
+
data.tar.gz: 57677153f53bbf46d1832c64e5b6467c816a8c1e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 743b43c87d6d1767182a4c2d1e087dc17f95c83bc8dd751f57e93d31d86ff251130463c9ada7a83fd2abc213d447c2201394eec6bdcaadc12f75061626e20e47
|
7
|
+
data.tar.gz: 9d0eb94792df0c44a449ce728d7102c28c0cb9fb6fb97ca517f59b7006cd0511f14ab1fd4da09ae890d22e0c19fc9baed9672cf623ca27e9c60f89a3667a6760
|
data/README.md
CHANGED
@@ -3,21 +3,23 @@ Kiq [ and easily implemented on any operating system that has Ruby installed with the command `gem install kiq`.
|
14
14
|
|
15
|
-
I tested this gem out on OSX El Capitan, Yosemite, Microsoft 10, and Linux. Just make sure you have [https://www.ruby-lang.org/en/documentation/installation/](Ruby installed on your OS). RubyGems comes with a Ruby installation.
|
15
|
+
I tested this gem out on OSX El Capitan, OSX Yosemite, Microsoft 10, and Linux. Just make sure you have [https://www.ruby-lang.org/en/documentation/installation/](Ruby installed on your OS). RubyGems comes with a Ruby installation.
|
16
16
|
|
17
|
-
This gem uses serialization to store the projects in a `.kiq` yml file. If you don't want this file in whatever folder you are currently in, I would suggest creating a new folder to use the gem:
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
This gem uses serialization to store the projects in a `.kiq` yml file. If you don't want this file in whatever folder you are currently in, I would suggest creating a new folder to use the gem:
|
18
|
+
```
|
19
|
+
cd projects
|
20
|
+
mkdir kiq
|
21
|
+
gem install kiq
|
22
|
+
```
|
21
23
|
And then you're off! If you ever want to remove the `.kiq` yaml file, delete it from the folder with:
|
22
24
|
`rm .kiq`
|
23
25
|
|
@@ -58,16 +60,22 @@ Backed Awesome_Sauce for $50 dollars.
|
|
58
60
|
```
|
59
61
|
|
60
62
|
## Technology/Dependencies
|
61
|
-
### Let's talk about assumptions
|
62
|
-
* I want to recognize that I made a couple of assumptions in this process. The first assumption was that a user downloading the gem was using a Mac.
|
63
63
|
|
64
64
|
### Why ruby, why a gem (and the downsides to those choices)
|
65
|
-
|
65
|
+
* I chose Ruby because I'm the most familiar with it. If I were doing a longer form of this project I may try to build it in Go for better performance. However, for the scope of this project Ruby worked well.
|
66
|
+
* I was also interested in Ruby because I thought a gem would work well. I had never build a gem before so it was a fun challenge to tackle.
|
67
|
+
* I spent most of the planning for this project thinking about whether I should use a gem like [GLI](https://github.com/davetron5000/gli), or build out the whole app myself. I ended up choosing to go without a dependency on another package. I thought deeply about this. Probably too deeply. I weighed ["Not Built Here" Syndrome](http://www.richard-banks.org/2007/07/built-here-syndrome.html) with having to rely on how another person packaged up the CLI app. I ended up siding with less dependencies. I took some tips from the UI in a couple apps, and built out the rest of it myself, which worked well. I watched [Dave Copeland's talk on CLI apps](https://www.youtube.com/watch?v=eYk2Otz4X4I) and while I like Methadone and GLI, I don't particularly like Cucumber, which the built in dependency on Aruba was heavily trying to get me to use. If I were building a bigger project, however, and needed a more stream lined UI, it looks like GLI, Methadone, Highline, and Main are all great gems to use for it.
|
68
|
+
|
69
|
+
## Architecture Choices
|
66
70
|
### Serialization For Storage
|
71
|
+
I used serialization with a yaml file for storage and made it human-readbale. This helped me not only organize the data but visualize it as it updated. If this project were bigger and had more objects I would want to use a relational database. However, with just two models, Projects and Backers, a hash to handle the Backers worked out well. It also really helped to be able to read the collection of projects from the file.
|
72
|
+
|
67
73
|
### Hash Useage
|
74
|
+
I employed several hashes for O(1) access. Projects are stored as a hash with the name as the accessor. Backers are stored as a hash with the credit card as the accessor. I know projects weren't required to have unique names, but I built that into the app and it made it easier to assess if a project existed or not.
|
68
75
|
|
69
76
|
## To Do (if only there was more time)
|
70
|
-
|
77
|
+
I have a lot of remaining thoughts. A few things that I'd like to work on in the future:
|
71
78
|
* Make it look prettier, research UI gems like `highline` and `colorize` and look for ways to implement them.
|
72
79
|
* Refactor the specs. There's a lot of repetition there.
|
73
|
-
* Add specs for handling user input.
|
80
|
+
* Add more specs for handling user input.
|
81
|
+
* Anything! Incorporate an API! Make this an awesome app that you can text to add money to kickstarter campaigns. I was really excited working on this project.
|
data/lib/kiq/helpers/version.rb
CHANGED
data/lib/kiq/project.rb
CHANGED