|
1 | | -# RubyStackNews Events Image Generator |
| 1 | +# RubyStackNews Events Bot |
2 | 2 |
|
3 | | -This demo shows how ruby-libgd can be used to generate dynamic images. |
| 3 | +RubyStackNews Events Bot generates a visual list of upcoming Ruby conferences and meetups. |
| 4 | +It reads events from a YAML file and produces a clean image that can be shared on social networks or newsletters. |
4 | 5 |
|
5 | | -The script renders a social-media image listing upcoming Ruby community events with a countdown. |
| 6 | +The goal is to make Ruby community events easy to discover and promote. |
6 | 7 |
|
7 | | -Typical use case: |
| 8 | +## Features |
8 | 9 |
|
9 | | -- automated GitHub Actions |
10 | | -- scheduled image generation |
11 | | -- social media bots |
| 10 | +* Reads events from a simple YAML file |
| 11 | +* Filters only upcoming events for the current year |
| 12 | +* Displays a countdown until each event |
| 13 | +* Uses visual indicators to highlight upcoming events |
| 14 | +* Generates shareable images automatically |
| 15 | +* Lightweight and script-friendly |
12 | 16 |
|
13 | | -Run: |
| 17 | +## Countdown Indicators |
14 | 18 |
|
15 | | -ruby bot.rb |
| 19 | +Events are visually categorized depending on how soon they will occur. |
| 20 | + |
| 21 | +| Icon | Meaning | |
| 22 | +| ---- | ------------------------------------- | |
| 23 | +| 🔥 | Event happening soon | |
| 24 | +| ⏳ | Event approaching | |
| 25 | +| 📅 | Event scheduled further in the future | |
| 26 | + |
| 27 | +This makes the event list easy to scan quickly. |
| 28 | + |
| 29 | +## Example Output |
| 30 | + |
| 31 | +The bot produces an image similar to: |
| 32 | + |
| 33 | +``` |
| 34 | +RubyStackNews — Upcoming Ruby Events |
| 35 | +
|
| 36 | +🔥 Ruby Community Conference Winter Edition → Kraków, Poland • 4 days |
| 37 | +⏳ Rubysur → Buenos Aires, Argentina • 9 days |
| 38 | +📅 RubyKaigi → Hakodate, Japan • 44 days |
| 39 | +``` |
| 40 | + |
| 41 | +## Event Data Format |
| 42 | + |
| 43 | +Events are defined in a YAML file. |
| 44 | + |
| 45 | +Example: |
| 46 | + |
| 47 | +```yaml |
| 48 | +events: |
| 49 | + - name: Ruby Community Conference Winter Edition |
| 50 | + location: Kraków, Poland |
| 51 | + date: 2026-03-13 |
| 52 | + |
| 53 | + - name: Rubysur |
| 54 | + location: Buenos Aires, Argentina |
| 55 | + date: 2026-03-18 |
| 56 | + |
| 57 | + - name: RubyKaigi |
| 58 | + location: Hakodate, Japan |
| 59 | + date: 2026-05-20 |
| 60 | +``` |
| 61 | +
|
| 62 | +## How It Works |
| 63 | +
|
| 64 | +1. Load events from the YAML file. |
| 65 | +2. Parse event dates. |
| 66 | +3. Filter events occurring in the current year. |
| 67 | +4. Calculate remaining days. |
| 68 | +5. Assign an icon depending on how soon the event occurs. |
| 69 | +6. Render the list into an image. |
| 70 | +
|
| 71 | +## Running the Script |
| 72 | +
|
| 73 | +``` |
| 74 | +ruby generate_events_image.rb |
| 75 | +``` |
| 76 | + |
| 77 | +The script will create an image with the current upcoming events. |
| 78 | + |
| 79 | +## Contributing |
| 80 | + |
| 81 | +If you know about a Ruby event that should appear here, feel free to contribute. |
| 82 | + |
| 83 | +You can: |
| 84 | + |
| 85 | +* open a pull request adding it to the YAML file |
| 86 | +* or send the event information to: |
| 87 | + |
| 88 | +**[ggerman@gmail.com](mailto:ggerman@gmail.com)** |
| 89 | + |
| 90 | +## License |
| 91 | + |
| 92 | +MIT |
0 commit comments