小编Sri*_*i K的帖子

在一行中编写这个ruby代码的最佳方法

在一行中编写类似这样的东西的好方法是什么.如果在调试模式下值为nil,则目标是在消息级别记录消息,以及所示的正确消息.看起来很简单,但为这样小的东西编写5行代码一直困扰着我.我可以用方法包装它,但是如果可以的话我想避免.谢谢.

if value.nil?
  Rails.logger.info "value: nil"
else
  Rails.logger.debug "value: #{value.inspect}"
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

3
推荐指数
1
解决办法
189
查看次数

如何使用spray-json库将json应用于case类的实例

Registration.scala

package model

import akka.actor.Actor
import spray.json._
import DefaultJsonProtocol._

case class Registration(
  system: String, 
  identity: String)

object RegistrationProtocol extends DefaultJsonProtocol {
  implicit val adsRegistrationFormat = jsonFormat2(Registration)
}
Run Code Online (Sandbox Code Playgroud)

RegistrationService.scala

import akka.actor.{Props, ActorLogging, Actor}
import model.Registration

object RegistrationsService {
  case class PostRegistrationMessage(registration: Registration)

  def props(property: String) = Props(classOf[RegistrationsService], property)
}

class RegistrationsService(property: String) extends Actor with ActorLogging {
  import RegistrationsService._

  def receive = {
    case PostRegistrationMessage(registration) => {
      import model.RegistrationProtocol._

      val json = registration.toJson

    }
  }
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我理解为什么这会失败,编译错误"值toJson不是model.Registration的成员"以及如何解决它.如果在上面代码的最后一行失败,那就是" val json = registration.toJson …

scala akka spray-json

3
推荐指数
1
解决办法
1471
查看次数

如何配置Spring Repository以使用xml bean中定义的mongoTemplate?

代码执行正常,但在默认的mongo数据库和位置创建集合,即在测试数据库@ localhost:27017中.在通过以下xml连接的mongoTemplate bean中,我使用mydb作为数据库,运行在localhost:27018的mongod实例.但是,数据仍然会持久保存到默认实例和数据库.

在src/main/resources/mongo-context.xml中定义的MongoDB XML Bean:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:mongo="http://www.springframework.org/schema/data/mongo"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/data/mongo
    http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd">

  <mongo:mongo id="mongo" host="localhost" port="27018"/>

  <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg ref="mongo" />
    <constructor-arg value="mydb" />
  </bean>

  <mongo:repositories base-package="core.repository" mongo-template-ref="mongoTemplate"/>
</beans>
Run Code Online (Sandbox Code Playgroud)

播放列表存储库:

package core.repository;

import core.dao.Playlist;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.repository.Repository;

/**
 * This repository provides CRUD operations for {@link core.dao.Playlist} objects.
 */
public interface PlaylistRepository extends Repository<Playlist, String> {

    /**
     * Finds the information of a single Playlist entry.
     * …
Run Code Online (Sandbox Code Playgroud)

spring mongodb spring-data-mongodb spring-boot

3
推荐指数
1
解决办法
2万
查看次数

使用lambda减少列表

我需要写几个这样的函数.是否有更好的方法使用lambda在一行左右编写此函数.

def is_digital(offers):
    for offer in offers:
        digital = True if 'digital' in offer and offer['digital'] else False
        if digital:
            return True
    return False
Run Code Online (Sandbox Code Playgroud)

python reduce lambda python-2.7

2
推荐指数
1
解决办法
64
查看次数

有没有更短/更好的方法来验证请求参数?

我不断重复这样的块来验证请求参数。有没有更短/更好的方法来实现这一目标?

count = request.args.get('count', DEFAULT_COUNT)
if count:
    try:
        count = int(count)
    except ValueError:
        count = DEFAULT_COUNT
Run Code Online (Sandbox Code Playgroud)

python validation werkzeug flask python-2.7

1
推荐指数
1
解决办法
366
查看次数

Ruby,Java等中的多重继承

这可能听起来很愚蠢,但是如果每个类都隐式扩展了Object类并且允许再扩展一个类,那么它怎么不是多重继承呢?从用户的角度来看,可能有人认为它们不支持多重继承,因为不允许用户扩展多个类.但是,这些语言似乎具有对多重继承的内部支持,而这种继承只是为了保持简单而不向用户公开.我有道理吗?

注意:我不支持或反对支持多重继承.只是想澄清一些想法.

ruby java multiple-inheritance

0
推荐指数
1
解决办法
2222
查看次数

如何在scala中使方法同步?

在这个方法中,我想看到实际的响应(result.toJson.toString或StatusCodes.InternalServerError.toString)返回而不是空字符串.我怎样才能做到这一点?

def process(msgIn : WebSocketMessageIn, service : ActorRef) : String = {
  import model.Registration
  import model.RegistrationJsonProtocol._

  implicit val timeout = Timeout(10 seconds)

  msgIn.method.toUpperCase match {
    case "POST" =>
      log.debug(s"Handing POST message with body ${msgIn.body}")
      val registration = msgIn.body.convertTo[Registration]
      val future = (service ? PostRegistrationMessage(registration)).mapTo[Registration]
      var response = ""
      future onComplete {
        case Success(result) =>
          response = result.toJson.toString

        case Failure(e) =>
          log.error(s"Error: ${e.toString}")
          response = StatusCodes.InternalServerError.toString
      }
      response

    case "PUT" =>
      s"Handing PUT message ${msgIn.body}"
  }
}
Run Code Online (Sandbox Code Playgroud)

以下是调用该方法并将响应发送到websocket的代码片段

case Message(ws, msg, …
Run Code Online (Sandbox Code Playgroud)

asynchronous scala websocket

0
推荐指数
1
解决办法
2643
查看次数