scanamo-scrooge


License

License

GroupId

GroupId

com.gu
ArtifactId

ArtifactId

scanamo-scrooge_2.11
Last Version

Last Version

0.2.1
Release Date

Release Date

Type

Type

jar
Description

Description

scanamo-scrooge
scanamo-scrooge
Project URL

Project URL

https://github.com/guardian/scanamo-scrooge
Project Organization

Project Organization

com.gu
Source Code Management

Source Code Management

https://github.com/guardian/scanamo-scrooge

Download scanamo-scrooge_2.11

How to add to project

<!-- https://jarcasting.com/artifacts/com.gu/scanamo-scrooge_2.11/ -->
<dependency>
    <groupId>com.gu</groupId>
    <artifactId>scanamo-scrooge_2.11</artifactId>
    <version>0.2.1</version>
</dependency>
// https://jarcasting.com/artifacts/com.gu/scanamo-scrooge_2.11/
implementation 'com.gu:scanamo-scrooge_2.11:0.2.1'
// https://jarcasting.com/artifacts/com.gu/scanamo-scrooge_2.11/
implementation ("com.gu:scanamo-scrooge_2.11:0.2.1")
'com.gu:scanamo-scrooge_2.11:jar:0.2.1'
<dependency org="com.gu" name="scanamo-scrooge_2.11" rev="0.2.1">
  <artifact name="scanamo-scrooge_2.11" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.gu', module='scanamo-scrooge_2.11', version='0.2.1')
)
libraryDependencies += "com.gu" % "scanamo-scrooge_2.11" % "0.2.1"
[com.gu/scanamo-scrooge_2.11 "0.2.1"]

Dependencies

compile (6)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.11.12
org.scala-lang : scala-reflect jar 2.11.12
com.twitter : scrooge-core_2.11 jar 19.3.0
org.apache.thrift : libthrift jar 0.10.0
org.scanamo : scanamo_2.11 jar 1.0.0-M9
org.typelevel : macro-compat_2.11 jar 1.1.1

provided (2)

Group / Artifact Type Version
org.scoverage : scalac-scoverage-runtime_2.11 jar 1.1.1
org.scoverage : scalac-scoverage-plugin_2.11 jar 1.1.1

test (3)

Group / Artifact Type Version
org.scalatest : scalatest_2.11 jar 2.2.5
org.scalacheck : scalacheck_2.11 jar 1.12.4
com.gu : content-atom-model_2.11 jar 3.0.2

Project Modules

There are no modules declared in this project.

ScanamoScrooge Maven Central Build Status

Like Scanamo for interacting with DynamoDB and use Scrooge for working with Thrift? Then you'll love ScanamoScrooge!

ScanamoScrooge provides automatic derivation of DynamoFormat type classes for Scrooge generated classes based on Thrift struct and enum types.

Installation

Add scanamo-scrooge as a dependency to your build.sbt:

libraryDependencies ++= Seq(
  "org" %% "scanamo-scrooge" % "0.1.3"
)

Usage

To bring DynamoFormats for Scrooge generated classes into scope, simply

import org.scanamo.scrooge.ScroogeDynamoFormat._

While, there is normally no need to explicitly reference DynamoFormat, the following is an example of how it serialises classes based on the ChangeRecord thrift definition.

scala> import org.scanamo._
scala> import org.scanamo.scrooge.ScroogeDynamoFormat._
scala> import com.gu.contentatom.thrift._
scala> import cats.syntax.either._

scala> val changeRecord = ChangeRecord(1L, Some(User("email", Some("f"), None)))
scala> DynamoFormat[ChangeRecord].write(changeRecord)
res0: com.amazonaws.services.dynamodbv2.model.AttributeValue = {M: {date={N: 1,}, user={M: {email={S: email,}, firstName={S: f,}, lastName={NULL: true,}},}},}

scala> DynamoFormat[ChangeRecord].read(DynamoFormat[ChangeRecord].write(changeRecord))
res1: Either[error.DynamoReadError, ChangeRecord] = Right(ChangeRecord(1,Some(User(email,Some(f),None))))
com.gu

The Guardian

The source code of the world's leading liberal voice

Versions

Version
0.2.1
0.2.0
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0