chagol 0.0.1 → 0.0.2
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.
- data/bin/chagol +54 -0
- data/lib/chagol.rb +2 -0
- data/lib/chagol/cli.rb +15 -0
- data/lib/chagol/contact.rb +22 -0
- data/lib/chagol/version.rb +1 -1
- metadata +7 -3
data/bin/chagol
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'chagol'
|
4
|
+
require 'optparse'
|
5
|
+
|
6
|
+
# Load the user settings
|
7
|
+
# Initialize the same if they don't exist
|
8
|
+
# Create a .chagol directory in the users home directory
|
9
|
+
# Initialize an empty configuration and a users sqlite db
|
10
|
+
# TODO all of the above
|
11
|
+
|
12
|
+
# Parse the command line options with the awesome optionparser
|
13
|
+
options = Hash.new
|
14
|
+
|
15
|
+
OptionParser.new do |opts|
|
16
|
+
opts.banner = "Usage: chagol --to name|phoneno --message 'Your Message'"
|
17
|
+
opts.on("-h", "--help") { puts opts; exit }
|
18
|
+
opts.on("-v", "--version") do
|
19
|
+
puts "Chagol is currently at version #{Chagol::VERSION}"
|
20
|
+
exit
|
21
|
+
end
|
22
|
+
# The list of usernames can be separated by commas
|
23
|
+
opts.on("-t user1,user2,userN", "--to", Array) do |users|
|
24
|
+
options[:users] = users
|
25
|
+
end
|
26
|
+
opts.on("-m msg", "--message", String) do |msg|
|
27
|
+
options[:message] = msg
|
28
|
+
end
|
29
|
+
# Like users, there can be one or more lists specified
|
30
|
+
opts.on("-l l1,l2,lN", "--list", Array) do |lists|
|
31
|
+
options[:lists] = lists
|
32
|
+
end
|
33
|
+
end.parse!
|
34
|
+
|
35
|
+
# Now we respond to the parameters passed to us
|
36
|
+
# A message is necessary for all actions except quering
|
37
|
+
# for the version of the gem
|
38
|
+
if options[:message] && (options[:users] || options[:lists])
|
39
|
+
# Send messages to individual users
|
40
|
+
if options[:users] && options[:users].length > 0
|
41
|
+
#TODO : Replace these stubs with the actual code to send messages
|
42
|
+
puts "Your Message will be sent to the following users"
|
43
|
+
options[:users].each { |user| puts user }
|
44
|
+
end
|
45
|
+
# Send messages to user created lists
|
46
|
+
if options[:lists] && options[:lists].length > 0
|
47
|
+
puts "Your Message will be sent to the following lists"
|
48
|
+
options[:lists].each { |list| puts list }
|
49
|
+
end
|
50
|
+
else
|
51
|
+
puts "The great chagol isn't a mind reader!
|
52
|
+
Please specify a recipient or a list of recipients
|
53
|
+
to whom you want the message delivered."
|
54
|
+
end
|
data/lib/chagol.rb
CHANGED
data/lib/chagol/cli.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# This file handles the tasks that are to be performed when chagol is installed
|
2
|
+
# It involves creating the .chagol directory in the users home and also
|
3
|
+
# initializing the json files that store the contents
|
4
|
+
|
5
|
+
module Chagol
|
6
|
+
def self.install_chagol
|
7
|
+
chagol_path = Dir.home + "/.chagol"
|
8
|
+
Dir.mkdir(chagol_path)
|
9
|
+
# Create the sample json files for the contacts
|
10
|
+
File.open(chagol_path + "/contacts.json", "w") do |f|
|
11
|
+
f.write('{"json_class":"Contact","data":{"id":1,"name":"Nikhil","phone":"9900000018"}}')
|
12
|
+
end
|
13
|
+
# Create the json for the lists
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require "json"
|
2
|
+
|
3
|
+
module Chagol
|
4
|
+
class Contact
|
5
|
+
def initialize(id, name, phone)
|
6
|
+
@id = id
|
7
|
+
@name = name
|
8
|
+
@phone = phone
|
9
|
+
end
|
10
|
+
|
11
|
+
def to_json(*a)
|
12
|
+
{
|
13
|
+
json_class: self.class.name,
|
14
|
+
data: { id: @id, name: @name, phone: @phone }
|
15
|
+
}.to_json(*a)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.json_create(o)
|
19
|
+
new( o[:data][:id], o[:data][:name], o[:data][:phone] )
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/chagol/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chagol
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,13 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-06-
|
12
|
+
date: 2012-06-27 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Chagol can send messages to any Indian mobile no
|
15
15
|
email:
|
16
16
|
- root@NikhilBhardwaj.in
|
17
|
-
executables:
|
17
|
+
executables:
|
18
|
+
- chagol
|
18
19
|
extensions: []
|
19
20
|
extra_rdoc_files: []
|
20
21
|
files:
|
@@ -23,8 +24,11 @@ files:
|
|
23
24
|
- LICENSE
|
24
25
|
- README.md
|
25
26
|
- Rakefile
|
27
|
+
- bin/chagol
|
26
28
|
- chagol.gemspec
|
27
29
|
- lib/chagol.rb
|
30
|
+
- lib/chagol/cli.rb
|
31
|
+
- lib/chagol/contact.rb
|
28
32
|
- lib/chagol/version.rb
|
29
33
|
homepage: https://github.com/nikhilbhardwaj/chagol
|
30
34
|
licenses: []
|