<commit_before>A multi-user photo upload site built in rails.

## Demonstration Objectives
This example is intended to demonstrate:
1. Making very small, purposeful commits
2. Using feature-tests to shape your codebase
3. Regular refactoring to the [4 rules of simple
   design](http://www.jbrains.ca/permalink/the-four-elements-of-simple-design)
   (Taken a bit to an extreme)

## Releases
Each feature is linked to a pull request which adds the feature. Every commit
explains my reasoning in (some level of) detail. I'd recommend reading the pull
requests oldest to newest, commit by commit, both messages and code.

### Release 1.0.0

- [ ] [A guest may register as a
  `User`](https://github.com/codeunion/example-rails-4-image-gallery/pull/1
- [ ] A `User` may upload a `Image`
- [ ] A `User` may see a list of their `Image`s
- [ ] A guest may not find a `User`s `Image`
- [ ] A guest may view a `User`s `Image` if they are given a secret
  read-only link.

### Release 1.1.0

- [ ] A `User` may create a `Gallery`
- [ ] A `User` may add one of their `Image`s to a `Gallery`
- [ ] A guest may not find a `User`s `Gallery`
- [ ] A guest may view a `User`s `Gallery` if they are given a secret read-only
  link.

### Release 1.2.0

- [ ] A `User` may make a `Gallery` public
- [ ] A guest may browse public `Gallery`s<commit_msg>Fix link to first pull request<commit_after>A multi-user photo upload site built in rails.

## Demonstration Objectives
This example is intended to demonstrate:
1. Making very small, purposeful commits
2. Using feature-tests to shape your codebase
3. Regular refactoring to the [4 rules of simple
   design](http://www.jbrains.ca/permalink/the-four-elements-of-simple-design)
   (Taken a bit to an extreme)

## Releases
Each feature is linked to a pull request which adds the feature. Every commit
explains my reasoning in (some level of) detail. I'd recommend reading the pull
requests oldest to newest, commit by commit, both messages and code.

### Release 1.0.0

- [x] A guest may register as a
  `User` [PR](https://github.com/codeunion/example-rails-4-image-gallery/pull/1)
- [ ] A `User` may upload a `Image`
- [ ] A `User` may see a list of their `Image`s
- [ ] A guest may not find a `User`s `Image`
- [ ] A guest may view a `User`s `Image` if they are given a secret
  read-only link.

### Release 1.1.0

- [ ] A `User` may create a `Gallery`
- [ ] A `User` may add one of their `Image`s to a `Gallery`
- [ ] A guest may not find a `User`s `Gallery`
- [ ] A guest may view a `User`s `Gallery` if they are given a secret read-only
  link.

### Release 1.2.0

- [ ] A `User` may make a `Gallery` public
- [ ] A guest may browse public `Gallery`s
{'fraction_non_alphanumeric': 0.11210428305400373, 'fraction_numerical': 0.0111731843575419, 'mean_word_length': 3.4766666666666666, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4451658', 'n_tokens_mistral': 891, 'n_tokens_neox': 866, 'n_words': 382}