<commit_before>package foodtruck.schedule;

import java.util.logging.Level;
import java.util.logging.Logger;

import javax.script.ScriptEngineManager;

import com.google.appengine.api.memcache.ErrorHandlers;
import com.google.appengine.api.memcache.MemcacheService;
import com.google.appengine.api.memcache.MemcacheServiceFactory;
import com.google.common.collect.ImmutableList;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import com.google.inject.Singleton;
import com.google.inject.multibindings.Multibinder;
import com.google.inject.name.Named;

import org.joda.time.LocalTime;
import org.joda.time.format.DateTimeFormatter;

import foodtruck.model.Location;
import foodtruck.model.StaticConfig;
import foodtruck.schedule.custom.AmanecerTacosMatcher;
import foodtruck.schedule.custom.BeaverMatcher;
import foodtruck.schedule.custom.BobChaMatcher;
import foodtruck.schedule.custom.LaJefaMatcher;
import foodtruck.schedule.custom.PierogiWagonMatcher;
import foodtruck.schedule.custom.RoostMatcher;
import foodtruck.util.MilitaryTimeOnlyFormatter;

/**
 * @author <EMAIL>
 * @since Jul 19, 2011
 */
public class ScheduleModule extends AbstractModule {
  private static final Logger log = Logger.getLogger(ScheduleModule.class.getName());

  @Override
  protected void configure() {
    bind(AddressExtractor.class).to(JavascriptAddressExtractor.class);
    bind(ScheduleStrategy.class).to(GoogleCalendarV3Consumer.class);
    bind(ScheduleCacher.class).to(MemcacheScheduleCacher.class);
    Multibinder<SpecialMatcher> binder = Multibinder.newSetBinder(binder(), SpecialMatcher.class);
    binder.addBinding().to(BeaverMatcher.class);
    binder.addBinding().to(LaJefaMatcher.class);
    binder.addBinding().to(RoostMatcher.class);
    binder.addBinding().to(BobChaMatcher.class);
    binder.addBinding().to(PierogiWagonMatcher.class);
    binder.addBinding().to(AmanecerTacosMatcher.class);
  }

  @Provides @Singleton
  public ImmutableList<Spot> provideCommonSpots() {
    return ImmutableList.of(
        new Spot("600w", "600 West Chicago Avenue, Chicago, IL"),
        new Spot("wabash/vanburen", "Wabash and Van Buren, Chicago, IL"),
        new Spot("wabash/jackson", "Wabash and Jackson, Chicago, IL"),<commit_msg>Fix issue where Wabash and Jackson shows up twice<commit_after>package foodtruck.schedule;

import java.util.logging.Level;
import java.util.logging.Logger;

import javax.script.ScriptEngineManager;

import com.google.appengine.api.memcache.ErrorHandlers;
import com.google.appengine.api.memcache.MemcacheService;
import com.google.appengine.api.memcache.MemcacheServiceFactory;
import com.google.common.collect.ImmutableList;
import com.google.inject.AbstractModule;
import com.google.inject.Provides;
import com.google.inject.Singleton;
import com.google.inject.multibindings.Multibinder;
import com.google.inject.name.Named;

import org.joda.time.LocalTime;
import org.joda.time.format.DateTimeFormatter;

import foodtruck.model.Location;
import foodtruck.model.StaticConfig;
import foodtruck.schedule.custom.AmanecerTacosMatcher;
import foodtruck.schedule.custom.BeaverMatcher;
import foodtruck.schedule.custom.BobChaMatcher;
import foodtruck.schedule.custom.LaJefaMatcher;
import foodtruck.schedule.custom.PierogiWagonMatcher;
import foodtruck.schedule.custom.RoostMatcher;
import foodtruck.util.MilitaryTimeOnlyFormatter;

/**
 * @author <EMAIL>
 * @since Jul 19, 2011
 */
public class ScheduleModule extends AbstractModule {
  private static final Logger log = Logger.getLogger(ScheduleModule.class.getName());

  @Override
  protected void configure() {
    bind(AddressExtractor.class).to(JavascriptAddressExtractor.class);
    bind(ScheduleStrategy.class).to(GoogleCalendarV3Consumer.class);
    bind(ScheduleCacher.class).to(MemcacheScheduleCacher.class);
    Multibinder<SpecialMatcher> binder = Multibinder.newSetBinder(binder(), SpecialMatcher.class);
    binder.addBinding().to(BeaverMatcher.class);
    binder.addBinding().to(LaJefaMatcher.class);
    binder.addBinding().to(RoostMatcher.class);
    binder.addBinding().to(BobChaMatcher.class);
    binder.addBinding().to(PierogiWagonMatcher.class);
    binder.addBinding().to(AmanecerTacosMatcher.class);
  }

  @Provides @Singleton
  public ImmutableList<Spot> provideCommonSpots() {
    return ImmutableList.of(
        new Spot("600w", "600 West Chicago Avenue, Chicago, IL"),
        new Spot("wabash/vanburen", "Wabash and <NAME>, Chicago, IL"),
{'fraction_non_alphanumeric': 0.11158318425760286, 'fraction_numerical': 0.005813953488372093, 'mean_word_length': 5.9672897196261685, 'pattern_counts': {'":': 0, '<': 10, '<?xml version=': 0, '>': 10, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4622181', 'n_tokens_mistral': 1413, 'n_tokens_neox': 1363, 'n_words': 223}