diff options
author | Akshay <[email protected]> | 2020-07-19 07:27:32 +0100 |
---|---|---|
committer | Akshay <[email protected]> | 2020-07-19 07:27:32 +0100 |
commit | 516116fbe429043303a354f4a71eba4badbd34fc (patch) | |
tree | 83a22908119b1b4c880957c63ed363da14d00c5f /src/app/impl_self.rs | |
parent | 6bdf3fa422dc5d53def54ba2ad3e055737773440 (diff) |
stop habits from consuming global events
Diffstat (limited to 'src/app/impl_self.rs')
-rw-r--r-- | src/app/impl_self.rs | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/src/app/impl_self.rs b/src/app/impl_self.rs index f4c16f3..2b115a0 100644 --- a/src/app/impl_self.rs +++ b/src/app/impl_self.rs | |||
@@ -211,6 +211,15 @@ impl App { | |||
211 | } | 211 | } |
212 | 212 | ||
213 | pub fn parse_command(&mut self, result: Result<Command, CommandLineError>) { | 213 | pub fn parse_command(&mut self, result: Result<Command, CommandLineError>) { |
214 | let mut _track = |name: &str, event: TrackEvent| { | ||
215 | let target_habit = self | ||
216 | .habits | ||
217 | .iter_mut() | ||
218 | .find(|x| x.name() == name && x.is_auto()); | ||
219 | if let Some(h) = target_habit { | ||
220 | h.modify(Local::now().naive_utc().date(), event); | ||
221 | } | ||
222 | }; | ||
214 | match result { | 223 | match result { |
215 | Ok(c) => match c { | 224 | Ok(c) => match c { |
216 | Command::Add(name, goal, auto) => { | 225 | Command::Add(name, goal, auto) => { |
@@ -226,22 +235,10 @@ impl App { | |||
226 | self.focus = 0; | 235 | self.focus = 0; |
227 | } | 236 | } |
228 | Command::TrackUp(name) => { | 237 | Command::TrackUp(name) => { |
229 | let target_habit = self | 238 | _track(&name, TrackEvent::Increment); |
230 | .habits | ||
231 | .iter_mut() | ||
232 | .find(|x| x.name() == name && x.is_auto()); | ||
233 | if let Some(h) = target_habit { | ||
234 | h.modify(Local::now().naive_utc().date(), TrackEvent::Increment); | ||
235 | } | ||
236 | } | 239 | } |
237 | Command::TrackDown(name) => { | 240 | Command::TrackDown(name) => { |
238 | let target_habit = self | 241 | _track(&name, TrackEvent::Decrement); |
239 | .habits | ||
240 | .iter_mut() | ||
241 | .find(|x| x.name() == name && x.is_auto()); | ||
242 | if let Some(h) = target_habit { | ||
243 | h.modify(Local::now().naive_utc().date(), TrackEvent::Decrement); | ||
244 | } | ||
245 | } | 242 | } |
246 | Command::Quit => self.save_state(), | 243 | Command::Quit => self.save_state(), |
247 | Command::MonthNext => self.sift_forward(), | 244 | Command::MonthNext => self.sift_forward(), |