Vladimir, Nice work- looks good! I've also learned a couple of things from the deprecation analysis.
Cheers, Vassil On Sun, May 8, 2011 at 3:54 AM, Vladimir Ivanov <[email protected]> wrote: > Guys, > > I've just comleted ESME-321: Get rid of deprecated methods. Among other > deprecation warnings, there were two I'd like to mention about: > > 1) Case class FetchFeed had two subclasses: FetchAtom and FetchRss in > Action.scala. Since 2.8 version Scala compiler consider it as unduly > complicating both usage and implementation and suggests use extractors for > pattern matching on non-leaf nodes instead. See > http://scala-programming-language.1934581.n4.nabble.com/Adding-an-extractor-to-an-object-to-behave-like-a-case-object-td1950373.html > for > more details. Therefore FetchFeed class was rewritten as follows: > > Before modification: > > case class FetchFeed(url: UrlStore, tags: List[String]) extends Performances > > After modification: > > object FetchFeed extends ((UrlStore, List[String]) => FetchFeed) { > def unapply(f: FetchFeed): Option[(UrlStore, List[String])] = { > Some(f.url, f.tags) > } > def apply(url: UrlStore, tags: List[String]) = new FetchFeed(url, tags) > } > > class FetchFeed(val url: UrlStore, val tags: List[String]) extends > Performances { > override def hashCode = 41 * (41 + url.hashCode) + tags.hashCode > override def equals(other: Any) = other match { > case that: FetchFeed => (that canEqual this) && super.equals(that) && > this.url == that.url && this.tags == that.tags > case _ => false > } > def canEqual(other: Any) = other.isInstanceOf[FetchFeed] > def copy(url1: UrlStore = url, tags1: List[String] = tags) = new > FetchFeed(url1, tags1) > } > > FetchAtom and FetchFeed case classes were left unchanged: > > case class FetchAtom(override val url: UrlStore, override val tags: > List[String]) extends FetchFeed(url, tags) > case class FetchRss(override val url: UrlStore, override val tags: > List[String]) extends FetchFeed(url, tags) > > 2) Method Either.merge used to extract value from Either in TwitterAPI.scala > has been deprecated in Scala 2.8. I replaced it with Either.MergeableEither > class: > > Before modification: > > Either.merge(...) > > After modification: > > new Either.MergeableEither(...).merge > > > As always it would be great if someone review these changes. > > Vladimir > > > > 2011/5/2 Richard Hirsch <[email protected]> > >> I was looking at the looking at 1.3 status this morning and I have a >> few questions: >> >> @Ethan - can we close ESME-328 "Rewrite the comet timeline"? >> >> @Vladimir is "ESME-332 "There are still some problems with SBT tests" >> still valid after the SBT upgrade? >> >> @Vladimir can we close "ESME-321 Get rid of deprecated methods"? I >> wasn't sure how many deprecated methods will still present. >> >> D. >> > > > > -- > Best Regards, > Vladimir Ivanov >
