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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1f9006b5aeb50009deb737e773e54eb8c100bbf3
4
- data.tar.gz: 194dd8fe822f7f2fe4d19b4cc9b4afa4811c33cb
3
+ metadata.gz: 75fe72b618549a0e9e65a7608a6a9c128e37e016
4
+ data.tar.gz: 57677153f53bbf46d1832c64e5b6467c816a8c1e
5
5
  SHA512:
6
- metadata.gz: 85a683b4993a9e44c6b6a6220f9b248b3de42a6cb41afac3b1e3653afe8b032b7cef2303b34e76dd775c768b32a024f773fa70d3278707c1af02a085a1f3f038
7
- data.tar.gz: a02fa262e796d4ce7469be89a40e8a0f086426f34214593fcd71f6f472b6210df453d6537b1c1be46111e82cef4e525aed301c0c11b18ded227e40a12e2c01cc
6
+ metadata.gz: 743b43c87d6d1767182a4c2d1e087dc17f95c83bc8dd751f57e93d31d86ff251130463c9ada7a83fd2abc213d447c2201394eec6bdcaadc12f75061626e20e47
7
+ data.tar.gz: 9d0eb94792df0c44a449ce728d7102c28c0cb9fb6fb97ca517f59b7006cd0511f14ab1fd4da09ae890d22e0c19fc9baed9672cf623ca27e9c60f89a3667a6760
data/README.md CHANGED
@@ -3,21 +3,23 @@ Kiq [![Build Status](https://travis-ci.org/loganmeetsworld/kiq.svg?branch=master
3
3
  =========
4
4
 
5
5
  ## Summary
6
- kiq is a crowd funding application that can be run from your command line. This project was a learning experience. Key learning points for me were:
6
+ Kiq is a crowd funding application that can be run from your command line. This project was a learning experience. Key learning points for me were:
7
7
  * Building a Ruby gem.
8
8
  * Struggling with deciding if I should use other gems and build in dependencies.
9
9
  * Testing Ruby and making code more modular.
10
- * Getting over my Rails addiction to lovely built in libraries and methods.
10
+ * Getting over my Rails addiction.
11
11
 
12
12
  ## Installation
13
- This is a Ruby Gem (Yeah, it's crazy to me that I got this namespacing as well)! It can be found on the rubygems site [here](https://rubygems.org/gems/kiq) and easily implemented on any operating system that has Ruby installed with the command `gem install kiq`.
13
+ This is a Ruby Gem! It can be found on the rubygems site [here](https://rubygems.org/gems/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
- `cd projects`
19
- `mkdir kiq`
20
- `gem install kiq`
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
- ### To depend, or not to depend? That is the question.
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
- A lot of things.
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.
@@ -1,4 +1,4 @@
1
1
  # Current version of Kiq gem
2
2
  module Kiq
3
- VERSION = "0.1.7"
3
+ VERSION = "0.1.8"
4
4
  end
@@ -42,9 +42,6 @@ module Kiq
42
42
  def self.project_does_not_exist?(project, projects)
43
43
  if projects[project[1]].nil?
44
44
  return true
45
- else
46
- puts "ERROR: Project already exists."
47
- return false
48
45
  end
49
46
  end
50
47
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Logan McDonald