meetup-cli 1.1.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 628eac0e29ab19ebc433a72cfe891bea87837e0e
4
- data.tar.gz: 1db7c70320897a80521720c8ec9dd0824de71152
3
+ metadata.gz: 34373c8b071816ba79116114352108a4b47ff63e
4
+ data.tar.gz: 43ee4aea625716bdaf4dd0e62e7d335a9831c881
5
5
  SHA512:
6
- metadata.gz: 69a8241e507f58440969b5f658c0cd17e51074fc082e178d47cad41a6b7ae09091a59f084d19064492bedb3197df930ea0abc1376b91a1156bc3f45b1fc21a29
7
- data.tar.gz: 5dc711434675934204868d5b65c3b563f23e401c79a99c07d3ff0595fc1442373aa64669b0b174368a7bf73a4c6b256001bee81cc98edb225d086ff89071ef7c
6
+ metadata.gz: 9b9c957493fd260593cc6cd15ff27124c4347021524716b8de8b71c30eb799f9cbb0036763b6d8ba32627fc83499607a098733bdbc1c4a28d61f378a1686a0dc
7
+ data.tar.gz: fb891f2c12e302bb79fd67ef783d7917c90a846f0d94869d75aff2bed7c8fd3d33c4db6048e4f0081eadc69bdfab06e96b26d0a69c5a16948a358781bcd0a0d3
@@ -7,15 +7,19 @@ require 'meetup-cli/version'
7
7
  APP_NAME = File.basename $0, File.extname($0)
8
8
  CONFIG_FILE = File.join(ENV['HOME'], ".#{APP_NAME}rc")
9
9
 
10
+ # Use the GLI command line parser to create this CLI app
11
+ # https://github.com/davetron5000/gli
12
+ #
10
13
  include GLI::App
11
14
  program_desc "Meetup command line interface"
12
15
  version MCLI::VERSION
13
- default_command :upcoming
16
+ default_command :going
17
+ sort_help :manually
14
18
 
15
19
  switch :color, :desc => 'Force colorized output', :negatable => false
16
20
 
17
21
  pre do |global_options|
18
- # Exit gracefully when terminating due to a broken pipe
22
+ # Exit without a stack trace when terminating due to a broken pipe
19
23
  Signal.trap "PIPE", "SYSTEM_DEFAULT" if Signal.list.include? "PIPE"
20
24
 
21
25
  String.disable_colorization(true) unless STDOUT.isatty or global_options['color']
@@ -60,23 +64,52 @@ def print_event_details(event)
60
64
  puts " #{"Where:".magenta} #{(event.venue.name.nil? ? "Not specified" : "#{event.venue.address_1}, #{event.venue.city}, #{event.venue.state} (#{event.venue.name.colorize(:green)})")}"
61
65
  end
62
66
 
63
- desc "List your upcoming events (default command)"
67
+ def query_events(attendance)
68
+ MCLI::send('get_' + attendance + '_events').each do |event|
69
+ print_event_details event
70
+ puts
71
+ end
72
+ end
73
+
74
+ desc "List upcoming meetups you are going to (default command)"
75
+ command :going do |c|
76
+ c.action do
77
+ query_events c.name.to_s
78
+ end
79
+ end
80
+
81
+ desc "List upcoming meetups you are not going to"
82
+ command :notgoing do |c|
83
+ c.action do
84
+ query_events c.name.to_s
85
+ end
86
+ end
87
+
88
+ desc "List upcoming meetups you RSVP'ed (yes or no) to"
64
89
  command :upcoming do |c|
65
90
  c.action do
66
- MCLI::get_upcoming_events.each do |event|
67
- print_event_details event
68
- puts
69
- end
91
+ query_events c.name.to_s
92
+ end
93
+ end
94
+
95
+ desc "List past meetups you went to"
96
+ command :went do |c|
97
+ c.action do
98
+ query_events c.name.to_s
99
+ end
100
+ end
101
+
102
+ desc "List past meetups you didn't go to"
103
+ command :didntgo do |c|
104
+ c.action do
105
+ query_events c.name.to_s
70
106
  end
71
107
  end
72
108
 
73
- desc "List your past events"
109
+ desc "List past meetups you RSVP'ed (yes or no) to"
74
110
  command :past do |c|
75
111
  c.action do
76
- MCLI::get_past_events.each do |event|
77
- print_event_details event
78
- puts
79
- end
112
+ query_events c.name.to_s
80
113
  end
81
114
  end
82
115
 
@@ -7,14 +7,30 @@ module MCLI
7
7
  end
8
8
  end
9
9
 
10
- #
11
- # https://www.meetup.com/meetup_api/docs/2/events/
10
+ # Meetup API docs: https://www.meetup.com/meetup_api/docs/2/events/
12
11
 
13
- def self.get_upcoming_events
12
+ def self.get_going_events
14
13
  api = init_api.fetch(:events, {member_id: 'self', rsvp: 'yes'})
15
14
  end
16
15
 
16
+ def self.get_notgoing_events
17
+ api = init_api.fetch(:events, {member_id: 'self', rsvp: 'no'})
18
+ end
19
+
20
+ def self.get_upcoming_events
21
+ api = init_api.fetch(:events, {member_id: 'self'})
22
+ end
23
+
24
+ def self.get_went_events
25
+ api = init_api.fetch(:events, {member_id: 'self', status: 'past', desc: 'true', rsvp: 'yes'})
26
+ end
27
+
28
+ def self.get_didntgo_events
29
+ api = init_api.fetch(:events, {member_id: 'self', status: 'past', desc: 'true', rsvp: 'no'})
30
+ end
31
+
17
32
  def self.get_past_events
18
- api = init_api.fetch(:events, {member_id: 'self', rsvp: 'yes', status: 'past', desc: 'true'})
33
+ # Unlike upcoming events, does not return valid results if 'rsvp' value is not explicitly specified
34
+ api = init_api.fetch(:events, {member_id: 'self', status: 'past', desc: 'true', rsvp: 'yes,no'})
19
35
  end
20
36
  end
@@ -1,3 +1,3 @@
1
1
  module MCLI
2
- VERSION = '1.1.0'
2
+ VERSION = '2.0.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: meetup-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ildar Sagdejev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-23 00:00:00.000000000 Z
11
+ date: 2017-11-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gli