kiq 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
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