anyq 0.0.1

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.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/lib/anyq.rb +66 -0
  3. data/lib/quotes.json +37 -0
  4. metadata +44 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 7414211fa41ce2b9c1ab04016737eac1d465743989411cf5bc0d16202c11f05e
4
+ data.tar.gz: 9ee86905f18349f62b830aa95b63ea84f1da88b3e09534a9107834990b207c38
5
+ SHA512:
6
+ metadata.gz: b6a9778204dcee822db7d9bfabbd8014de043ba3670559724e7ae8a117f45f585a1bef240c3c81f2b209a263cca38b688747e7efe4941efde7cb76b3116843c9
7
+ data.tar.gz: b6f6ca1c063e2130c6f0b910dd3ccc57084a4fe39531fc7e710accf9606bb13dbdffc441a2f8948e7950dda6faebd29230f9ae8ddbc1964dec48b4988ab7e6dc
data/lib/anyq.rb ADDED
@@ -0,0 +1,66 @@
1
+ require 'json'
2
+ require 'securerandom'
3
+ require 'optparse'
4
+
5
+ options = {}
6
+ OptionParser.new do |opts|
7
+ opts.banner = 'Usage: anyq [options]'
8
+ opts.program_name = 'anyq'
9
+ opts.version = '0.0.1'
10
+
11
+ opts.on('-q', '--quote', 'Print only the quote') do |q|
12
+ options[:quote] = q
13
+ end
14
+
15
+ opts.on('-a', '--author', 'Print the author of the quote') do |a|
16
+ options[:author] = a
17
+ end
18
+
19
+ opts.on('-s', '--source', 'Print the source of the quote') do |s|
20
+ options[:source] = s
21
+ end
22
+
23
+ opts.on('-Q', '--new-quote QUOTE', 'Add a quote to the JSON file') do |q|
24
+ options[:new_quote] = q
25
+ end
26
+
27
+ opts.on('-A', '--new-author AUTHOR', 'Specify the author of the quote') do |a|
28
+ options[:new_author] = a
29
+ end
30
+
31
+ opts.on('-S', '--new-source SOURCE', 'Specify the source of the quote') do |s|
32
+ options[:new_source] = s
33
+ end
34
+ end.parse!
35
+
36
+ quotes_file = File.read('./lib/quotes.json')
37
+ quotes = JSON.parse(quotes_file)
38
+
39
+ if options[:new_quote]
40
+ new_quote = {
41
+ 'quote': options[:new_quote],
42
+ 'author': options[:new_author] || 'Unknown',
43
+ 'source': options[:new_source] || 'Unknown'
44
+ }
45
+ quotes << new_quote
46
+
47
+ File.write('./quotes.json', JSON.generate(quotes))
48
+
49
+ puts 'New quote added'
50
+ else
51
+ random_quote = quotes[SecureRandom.random_number(quotes.length)]
52
+
53
+ if options[:quote]
54
+ puts random_quote['quote']
55
+
56
+ if options[:author] && options[:source]
57
+ puts "-- #{random_quote['author']} (#{random_quote['source']})"
58
+ else
59
+ puts "-- #{random_quote['author']}" if options[:author]
60
+ puts "Source: #{random_quote['source']}" if options[:source]
61
+ end
62
+ else
63
+ puts random_quote['quote']
64
+ puts "-- #{random_quote['author']} (#{random_quote['source']})"
65
+ end
66
+ end
data/lib/quotes.json ADDED
@@ -0,0 +1,37 @@
1
+ [
2
+ {
3
+ "quote": "The only way to truly succeed in life is to constantly strive for mediocrity.",
4
+ "author": "Jane Doe",
5
+ "source": "Mediocrity: The Key to Success"
6
+ },
7
+ {
8
+ "quote": "The only limit to our potential is the size of our imagination.",
9
+ "author": "John Smith",
10
+ "source": "Unleashing Your Inner Genius"
11
+ },
12
+ {
13
+ "quote": "The only thing standing between you and greatness is your fear of failure.",
14
+ "author": "Sarah Johnson",
15
+ "source": "Overcoming Your Fears"
16
+ },
17
+ {
18
+ "quote": "The greatest achievements in life are not accomplished alone, but through collaboration and teamwork.",
19
+ "author": "David Williams",
20
+ "source": "The Power of Community"
21
+ },
22
+ {
23
+ "quote": "The key to happiness is not in material possessions, but in the simple things in life.",
24
+ "author": "Emily Brown",
25
+ "source": "Finding Joy in the Mundane"
26
+ },
27
+ {
28
+ "quote": true,
29
+ "author": "Lorem Smith",
30
+ "source": "That Guy"
31
+ },
32
+ {
33
+ "quote": "Another one",
34
+ "author": "Unknown",
35
+ "source": "Unknown"
36
+ }
37
+ ]
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: anyq
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Luis Angel Ortega
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-12-10 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: A gem that prints a random quote form a collection
14
+ email: hey@luisangel.me
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/anyq.rb
20
+ - lib/quotes.json
21
+ homepage: https://github.com/LinkSake/anyq
22
+ licenses:
23
+ - GPL-3.0-or-later
24
+ metadata: {}
25
+ post_install_message:
26
+ rdoc_options: []
27
+ require_paths:
28
+ - lib
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirements: []
40
+ rubygems_version: 3.3.26
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: Give me any quote
44
+ test_files: []