advent_of_code_cli 0.1.2 → 0.1.3

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
  SHA256:
3
- metadata.gz: 35f78ceadc5e206cc38c1384188d68b60fd1e7c747836493f65ff140f771946f
4
- data.tar.gz: 811234a1a95f4e87fb93f5b842ab057c1c5a9f5e0b3a8eb19a05aeaa350e72e6
3
+ metadata.gz: 874bcb2472449a2b367b4276efabaf1c7b15a19857c0e331d16bf3cd6da7e700
4
+ data.tar.gz: 36f956b45bb8849b1b17880132842f16194209d3cfaff592be643b98da4d7ca2
5
5
  SHA512:
6
- metadata.gz: d95a59af2fcc9fda9ecc953e8156edb826329637ba6c5093af53ddd118e4becff8b65c92a41868a9612e79512cb54e15411a6c6a664c65b75b84e59e1ddd7411
7
- data.tar.gz: c469d86e56cbf45d67b3f28966a724f7c6036ed642d30ca218f3d1908429e62929491fed86da69ae1eb6eecb80168720ec8d3c992c94aa7e7e013f48a4d1c3b3
6
+ metadata.gz: 3387033c1bf3c5f5edd4cd335647c64d3722ba0ffd5a6f716e7ec895d6e789a537d67b181cc44d29d1c99eec79590b3fe69a3627fe4d19e3eeedf180d1b091b1
7
+ data.tar.gz: e952fb854364b9bfbcfdd6a84e194476c038ed176fde60903818dce824899c570b84cb256819e46f6afe5438402551adef59bc0825520d85adfce1819c9e8d2a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- advent_of_code_cli (0.1.2)
4
+ advent_of_code_cli (0.1.3)
5
5
  thor (>= 1.2.0)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -1,33 +1,116 @@
1
- # AdventOfCodeCli
1
+ # 🎄 Advent of Code CLI
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/advent_of_code_cli`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ > ⚠️ **Note:** This tool is under active development. I built in in a couple hours with no automated tests. Things may change between versions!
4
4
 
5
- TODO: Delete this and the text above, and describe your gem
5
+ A little CLI tool that scaffolds and runs [Advent of Code](https://advent-of-code.com) solutions in Ruby.
6
6
 
7
- ## Installation
7
+ This project is heavily based on [advent-of-code-rust](https://github.com/arturopala/advent-of-code-rust). Go check it out!
8
8
 
9
- Install the gem and add to the application's Gemfile by executing:
9
+ ## Installation
10
10
 
11
- $ bundle add advent_of_code_cli
11
+ Add this line to your application's `Gemfile`:
12
12
 
13
- If bundler is not being used to manage dependencies, install the gem by executing:
13
+ ```ruby
14
+ gem "advent_of_code_cli"
15
+ ```
14
16
 
15
- $ gem install advent_of_code_cli
17
+ Run `bundle install`.
16
18
 
17
19
  ## Usage
18
20
 
19
- TODO: Write usage instructions here
21
+ ### Scaffold
20
22
 
21
- ## Development
23
+ This command will set up the files for any day of Advent of Code. It takes a nubmer between 1 and 25 as an argument.
22
24
 
23
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
25
+ ```bash
26
+ bundle exec aoc_cli scaffold 1
27
+ ```
24
28
 
25
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
29
+ This will result in the following output:
26
30
 
27
- ## Contributing
31
+ ```
32
+ Creating file: 01.rb...
33
+ Creating inputs directory...
34
+ Creating file: inputs/01.txt...
35
+ Creating examples directory...
36
+ Creating examples/01 directory...
37
+ ```
38
+
39
+ The file `01.rb` will have the following structure:
40
+
41
+ ```rb
42
+ module Day01
43
+ class << self
44
+ def part_one(input)
45
+ raise NotImplementedError
46
+ end
47
+
48
+ def part_two(input)
49
+ raise NotImplementedError
50
+ end
51
+ end
52
+ end
53
+ ```
54
+
55
+ I would love to make this structure configurable in the future.
56
+
57
+ ### Download
58
+
59
+ This command will download the input for a given day.
60
+
61
+ In order for this to work, you must provide your Advent of Code session cookie to the program in an environment variable:
62
+
63
+ ```bash
64
+ export AOC_COOKIE=your-cookie
65
+ ```
66
+
67
+ Once the environment variable is set, you can request your personal input for any day.
68
+
69
+ ```bash
70
+ bundle exec aoc_cli download 1
71
+ ```
28
72
 
29
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/advent_of_code_cli.
73
+ This will create the following output:
30
74
 
31
- ## License
75
+ ```
76
+ Fetching input...
77
+ Writing input to inputs/01.txt...
78
+ Done!
79
+ ```
80
+
81
+ By default, the CLI will request the input for this year, but you can request previous years' input by passing a `--year` flag.
82
+
83
+ ```bash
84
+ bundle exec aoc_cli download 1 --year 2021
85
+ ```
86
+
87
+ ### Solve
88
+
89
+ This command will run your solution to a certain day's puzzle.
90
+
91
+ ```
92
+ bundle exec aoc_cli solve 1
93
+ ```
94
+
95
+ This will create the following output:
96
+
97
+ ```
98
+ Reading input...
99
+ Loading solution...
100
+
101
+ Running part one...
102
+ Part one result: 10000
103
+ Took 0.000259 seconds to solve
104
+
105
+ Running part two...
106
+ Part two result: 10000
107
+ Took 0.00026 seconds to solve
108
+
109
+ Done!
110
+ ```
111
+
112
+ This command expects files to be in the format provided by the `scaffold` command. Once again, I would love to make this configurable but haven't gotten around to it yet.
113
+
114
+ ## Contributing
32
115
 
33
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
116
+ Issues and code contributions are welcome! Happy Advent of Code to all who celebrate! 🎁
@@ -10,7 +10,7 @@ module AdventOfCode
10
10
  raise MissingSolutionError unless File.exist?(solution_file_name)
11
11
 
12
12
  say "Reading input..."
13
- input = File.read(input_file_name).strip
13
+ input = File.readlines(input_file_name, chomp: true)
14
14
 
15
15
  say "Loading solution..."
16
16
  load(solution_file_name)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AdventOfCode
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.3"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: advent_of_code_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emily Samp