
Iaroslav
02.05.2017
10:27:08
еще есть какой-то стор в Defn.Trait(_, name, _, ctor, _)
ага, его тоже пробовал.
class Test extends StaticAnnotation {
inline def apply(defn: Any): Any = meta {
defn match {
case cls @ Defn.Trait(_, name, _, _, _) =>
q"abstract class Test extends ${name.tpe} { }"
case _ =>
println(defn.structure)
abort("@Test must annotate a class.")
}
}
}
@Test
trait MyTrait {}

Mikhail
02.05.2017
10:28:31
точно. с tpe тупанул. это же рефка на тип, а не стор. ща

Iaroslav
02.05.2017
10:30:46
пробовал, да. получаю:
abstract class Test extends this {}

Google

Iaroslav
02.05.2017
10:31:03

Mikhail
02.05.2017
10:37:10
this - вместо трейта
эм. а что ты хочешь получить? скаламета аннотации они - же для трансформации. а ты затираешь получается трейт. если ты хочешь реализацию добавить, то не нужно его экстендить
case cls @ Defn.Trait(mods, name, _, ctor, _) =>
q"""class MyTest { def hello():String = "hello" }"""
либо нужно немного переделать, чтобы сохранить сам трейт

Iaroslav
02.05.2017
10:38:02
но я не сам компаньон наследовал. А вложенный в компаньон класс
поведение от этого не меняется
ошибки, то есть

Mikhail
02.05.2017
10:38:54

Iaroslav
02.05.2017
10:40:59


Mikhail
02.05.2017
10:55:23
case cls @ Defn.Trait(_, name, _, ctor, _) =>
val test = q"abstract class Test extends ${ctor.name} { }"
val companion = q"object ${Term.Name(name.value)} { $test }"
Term.Block(Seq(cls, companion))
Результат:
trait MyTrait {
def foo(s: String): String
}
object MyTrait {
abstract class Test extends this {}
}
defn match {
case cls@Defn.Trait(_, name, _, ctor, templ) =>
val test = q"abstract class Test extends ${Ctor.Ref.Name(name.value)} { }"
val body_parts: Seq[Stat] = Seq(test)
val companion = q"object ${Term.Name(name.value)} { ..$body_parts } "
Term.Block(Seq(cls, companion))

Iaroslav
02.05.2017
10:59:18

Vladimir
02.05.2017
11:00:34
для себя вывел такой хинт, что класс с аннотацией, который будет во что-то разворачиваться нужно держать в отдельном файле, тогда красноты поменьше

Google

Diemust
02.05.2017
11:05:16

Mikhail
02.05.2017
11:05:21

Iaroslav
02.05.2017
11:06:02
дада, именно их пример. Подстава конечно. Спасибо еще раз

Alex
02.05.2017
12:03:22
http://typelevel.org/blog/2017/05/02/io-monad-for-cats.html

Kirill
02.05.2017
12:04:15
Скидывали уже сегодня :)

?Ivan
02.05.2017
12:05:03

Alexander
02.05.2017
15:52:42
+1

Wystan
02.05.2017
16:13:25
Мужики, а вот можно сначала спрашивать у сервиса дату последнего измеения, потом отдавать уже сами дангые. Кто-то так делает?

Sergey
02.05.2017
16:14:25
обычно же делается наоборот
ты отправляешь либо etag, либо дату, начиная с которой если объект менялся - то вернуть объект
иначе 304 not modified
в итоге запрос всего один

Wystan
02.05.2017
16:16:05
О збс звучит. А в плее такая хоень из коробки поддерживается? Как это называется?

Daniel
02.05.2017
16:20:02
etag смотри
вроде было в плее

Archi
03.05.2017
11:05:31
Добрый день! Какие дополнительные библиотеки надо установить для Scala для работы с данными?

Grigory
03.05.2017
11:06:08
Привет! Какими "данными" и как "устанавливать"?

Archi
03.05.2017
11:08:22

Aleksei
03.05.2017
11:09:39
csv я бы смотрел в сторону https://nrinaudo.github.io/kantan.csv/
а xml то вроде и scala-xml может разрулить

Google

Grigory
03.05.2017
11:11:08
есть вариант еще джава библиотеки посмотреть

Archi
03.05.2017
11:11:54

Aleksei
03.05.2017
11:12:58
Additionally, while kantan.csv comes with a default parser / serializer (that has pretty good performances), some people might prefer to use older, more reputable implementations. The following engines are currently supported: opencsv, commons-csv, jackson-csv
ну такое
для староверов

Archi
03.05.2017
11:13:34
Ок, спс

Grigory
03.05.2017
11:14:31
javacsv так и называется для csv; единственное что более менее человечное пользовал из джавы для csv
только оно все старое
https://mvnrepository.com/artifact/net.sourceforge.javacsv/javacsv/2.1

KrivdaTheTriewe
03.05.2017
11:15:18

Archi
03.05.2017
11:16:01
А кто нибудь практиковать ставить idea intellij на vm сервера?

Grigory
03.05.2017
11:16:12
да короче в идеале надо чтоб инпут срим был; и сразу умел сдвиг получать по имени заголовка и все
на удивление не все цсв либы умеют даже такое :D

Grigory
03.05.2017
11:16:31
opencsv без бинов может только split(",") шаг заменить

Aleksei
03.05.2017
11:16:51

Grigory
03.05.2017
11:17:21

KrivdaTheTriewe
03.05.2017
11:17:23

Grigory
03.05.2017
11:17:38
да во -> https://www.csvreader.com/java_csv_samples.php
*тру программеры обсуждают как парсить csv*

A
03.05.2017
11:21:30
https://github.com/tototoshi/scala-csv

Google

Alexander
03.05.2017
11:53:30
юзаем kantan, вроде норм

Bulbu
03.05.2017
12:36:48
кто знает, можно ли для typesafe config указать через -D папку, где искать конфиги?

Mikhail
03.05.2017
12:39:37

Vadim
03.05.2017
12:40:10

Bulbu
03.05.2017
12:40:31
это только для CF.load()

Aleksei
03.05.2017
12:40:40
и не только экранированные)
col1,col2,"col3,the,same,col3",col4
или col1,col2,"col3,\n\n\n,,,,",col4

Admin
ERROR: S client not available

Aleksei
03.05.2017
12:40:51
всякого говна такого наелся =)

Bulbu
03.05.2017
12:40:55
а если есть ConfigFactory.load("name") ?

Aleksei
03.05.2017
12:41:11
есть
точно есть если мы про TypesafeCOnfig говорим

Bulbu
03.05.2017
12:41:40
я знаю, что есть)
как быть с этим)

Nick
03.05.2017
12:41:49
@aleksei_t опять мои делом занимаешься? ?

Bulbu
03.05.2017
12:41:55
-Dconfig.file не прокатит

Nikolay
03.05.2017
12:42:37
включить эту папку в classpath может быть?

Bulbu
03.05.2017
12:42:45
да
но! Хотелось бы через -D

Nikolay
03.05.2017
12:43:19
а почему уж -Dconfig.file не прокатит?

Aleksei
03.05.2017
12:43:25
ах е

Google

Bulbu
03.05.2017
12:43:32
вот и вопрос, можн есть такая опция, типа -Dconfig.dir

Aleksei
03.05.2017
12:43:32
я пропустил оригинальный вопрос

folex
03.05.2017
12:43:32
val path = System.getProperty("config.file")
и поехали

Bulbu
03.05.2017
12:43:52
есть несколько конфигов

Mikhail
03.05.2017
12:44:00

folex
03.05.2017
12:44:03
в одном ключи точеные...

Nikolay
03.05.2017
12:44:36
так ConfigFactory.load вроде бы может по имени файла, не?

Bulbu
03.05.2017
12:44:53
может, и делает

folex
03.05.2017
12:45:03

Bulbu
03.05.2017
12:45:35
хочется запускать java -jar ... , а не java -cp ...

folex
03.05.2017
12:45:37
указывай директорию с ними например, а не полный путь. А имена хардкодь, если логика позволяет. Или делай -Dconfig.file.1

Bulbu
03.05.2017
12:45:40
вот и все

Nikolay
03.05.2017
12:45:42
а, понятно. хочется без явного включения в classpath и чтобы можно было легко указать папку откуда конфига брать, так?

Bulbu
03.05.2017
12:45:59
да

Nick
03.05.2017
12:46:08
можно через export сделать и каким нибудь scala.util.Properties доставать