@scala_ru

Страница 636 из 1499
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 {}

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

Google
Iaroslav
02.05.2017
10:31:03
${ctor.name}
this - вместо трейта

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
а поточнее? потому что у меня есть такого направления блоки кода и оно все работает)
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 {} }

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
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))
работает. Предыдущий вариант тоже работал. IDEA дико тупит на сборке и подстановке макросов. Подставляет какую-то предыдующую скомпиленную версию. Жесть. Спасибо большое

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

Google
Mikhail
02.05.2017
11:05:21
работает. Предыдущий вариант тоже работал. IDEA дико тупит на сборке и подстановке макросов. Подставляет какую-то предыдующую скомпиленную версию. Жесть. Спасибо большое
если конфигил сбт по их примеру - с отдельным модулем под мета-аннотации, то когда ты запускаешь депендент модуль идея не пересобирает модуль с макросами, несмотря на то, что прекрасно видит изменения. нужно или полный ребилд или ребилд модуля конкретного или сбт в консоли - там нормально все подтягивается)

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
Привет! Какими "данными" и как "устанавливать"?
Прежде всего xml до несколько млн записей и может быть csv

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

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
replace("\r","").split("\n").split(",") чому не работа с цсв ?
Так то да, но бывают еще экранированные значение.

Grigory
03.05.2017
11:17:21
Так то да, но бывают еще экранированные значение.
есть нужный регексп чтоб правильно разбить строчку;

KrivdaTheTriewe
03.05.2017
11:17:23
да короче в идеале надо чтоб инпут срим был; и сразу умел сдвиг получать по имени заголовка и все на удивление не все цсв либы умеют даже такое :D
просто опыт подсказывает, в этих либах плохо то, что ты тратишь больше времени на поиск того, как твой кейс этой либой решается, чем просто реализация на сплитах

Grigory
03.05.2017
11:17:38
да во -> https://www.csvreader.com/java_csv_samples.php

*тру программеры обсуждают как парсить csv*

А кто нибудь практиковать ставить idea intellij на vm сервера?
почему нет? стандартно через x11 можно бросать интерфейс, или вопрос в чем-то другом?

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
Так то да, но бывают еще экранированные значение.
и не только экранированные) col1,col2,"col3,the,same,col3",col4

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

Aleksei
03.05.2017
12:40:40
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
но! Хотелось бы через -D
зачем именно через -Д ? есть класспаф у java

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
зачем именно через -Д ? есть класспаф у java
намого проще через -D задать путь

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 доставать

Страница 636 из 1499