advent_of_code_cli 0.1.2 → 0.1.3

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: 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