小编Flo*_*aus的帖子

Ruby:仅当函数不返回nil时才分配函数的输出

在Ruby中编程时,我经常会有如下所示的分配

test = some_function if some_function
Run Code Online (Sandbox Code Playgroud)

使用该分配我想分配一个函数的输出,但如果它返回nil我想保留变量的内容.我知道有条件分配,但这里既||=不能&&=也不能使用.我发现描述上述陈述的最短路径是

test = (some_function or test)
Run Code Online (Sandbox Code Playgroud)

是否有更好/更短的方法来做到这一点?

ruby variable-assignment

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

如何将“使用 Google 登录”与 TokenClient 结合使用?

我阅读了使用 Google 登录指南Google Identity Services JavaScript SDK 指南中的信息和示例,并成功使用 Google Cloud API 的令牌设置了授权。不幸的是,即使在首次登录时获得用户同意后,每次加载页面时我仍然会收到登录提示,要求选择我的 Google 帐户。

我看到requestAccessToken允许指定用户电子邮件作为登录hint方式OverridableTokenClientConfig,但即使我指定,每次运行hint时我仍然会收到登录提示。requestAccessToken

最终,我想使用“使用Google 登录”来允许用户自动登录并向应用程序提供电子邮件等用户信息。然后requestAccessToken应该使用该电子邮件请求令牌,而无需再次提示用户(除非用户第一次需要同意范围devstorage.full_control)。

这是我当前使用的代码(要运行它,您需要插入有效的 clientId、bucket 和对象):

<html>
  <head>
    <!-- Google Identity Service see https://developers.google.com/identity/oauth2/web/guides/migration-to-gis#gis-and-gapi -->
    <script src="https://accounts.google.com/gsi/client" onload="initTokenClient()" async defer></script>
    <script>
        var tokenClient;
        var access_token;
        var clientId = '123456789012-abcdefghijklmnopqrstuvxyz123456.apps.googleusercontent.com';
        var email = 'florian.feldhaus@gmail.com'
        var bucket = 'private-bucket'
        var object = 'private-object.json'

        function initTokenClient() {
            tokenClient …
Run Code Online (Sandbox Code Playgroud)

javascript google-oauth google-cloud-platform google-identity

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

Bash正则表达式中的可选参数

我想使用Bash中的正则表达式将类似于以下内容的字符串解析为单独的变量:

Category: entity;scheme="http://schemas.ogf.org/occi/core#";class="kind";title="Entity";attributes="occi.core.id occi.core.title";
Run Code Online (Sandbox Code Playgroud)

要么

Category: resource;scheme="http://schemas.ogf.org/occi/core#";class="kind";title="Resource";rel="http://schemas.ogf.org/occi/core#entity";attributes="occi.core.summary";
Run Code Online (Sandbox Code Playgroud)

"title"之前的第一部分对所有字符串都是通用的,部分标题和属性是可选的.

我设法提取了所有字符串共有的强制参数,但是我对所有字符串不一定存在的可选参数有困难.据我所知,Bash不支持我将用于此目的的非捕获括号.

这是我迄今取得的成就:

CATEGORY_REGEX='Category:\s*([^;]*);scheme="([^"]*)";class="([^"]*)";'
category_string='Category: entity;scheme="http://schemas.ogf.org/occi/core#";class="kind";title="Entity";attributes="occi.core.id occi.core.title";'
[[ $category_string =~ $CATEGORY_REGEX ]]
echo ${BASH_REMATCH[0]}
echo ${BASH_REMATCH[1]}
echo ${BASH_REMATCH[2]}
echo ${BASH_REMATCH[3]}
Run Code Online (Sandbox Code Playgroud)

我想使用的正则表达式(以及适用于Ruby的正则表达式)将是:

CATEGORY_REGEX='Category:\s*([^;]*);\s*scheme="([^"]*)";\s*class="([^"]*)";\s*(?:title="([^"]*)";)?\s*(?:rel="([^"]*)";)?\s*(?:location="([^"]*)";)?\s*(?:attributes="([^"]*)";)?\s*(?:actions="([^"]*)";)?'
Run Code Online (Sandbox Code Playgroud)

有没有其他解决方案来解析字符串与命令行工具,而不必回退perl,python或ruby?

regex string bash text-parsing

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

使用rbenv和ruby-build构建ruby时会出现未定义的符号:SSLv2_method

我正在尝试在带有ARMv7处理器的Synology DS215j上安装ruby 2.2.4或2.3.0.我使用optware-ng来安装gcc,make,openssl,openssl-dev和zlib.我根据自述文件中的说明安装了rbenv(版本1.0.0-19-g29b4da7)和ruby-build插件.

这些是使用optware-ng安装的软件包及其版本

binutils - 2.25.1-1
gcc - 5.3.0-6
gconv-modules - 2.21-3
glibc-opt - 2.21-4
libc-dev - 2.21-1
libgmp - 6.0.0a-1
libmpc - 1.0.2-1
libmpfr - 3.1.3-1
libnsl - 2.21-3
libstdc++ - 6.0.21-6
make - 4.1-1
ncurses - 5.7-4
openssl - 1.0.2f-1
openssl-dev - 1.0.2f-1
readline - 6.1-2
ruby - 2.2.0-1
screen - 4.2.1-2
termcap - 1.3.1-3
zlib - 1.2.8-2
Run Code Online (Sandbox Code Playgroud)

当我运行rbenv install 2.2.4rbenv install 2.3.0在两种情况下,构建失败并显示错误消息"未定义的符号:SSLv2_method".这是2.2.4版本的错误:

installing bundle gems:       /var/services/homes/florian/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0 (build_info, cache, …
Run Code Online (Sandbox Code Playgroud)

ruby openssl rbenv

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

如何从Node js Side获取基本路径?

注意:我尝试了与此主题相关的所有问题和答案,但无法解决问题.

我想从Node Js Side建立路径.以下示例.我使用[angular js + NodeJS/ExpressJS]

 <base href="/Tutorial/Routing/StateProvider/" />
Run Code Online (Sandbox Code Playgroud)

HTML

<!DOCTYPE html>
<html ng-app="myapp2">
<title>Index | Angular Js</title>
<base href="/Tutorial/Routing/StateProvider/" />
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet">

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<!--<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-route.js"></script>-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.2/angular-ui-router.js"></script>
<script src="StateProviderController.js"></script>

<body >
<nav class="navbar navbar-default row">
    <div class="container-fluid">
        <div class="navbar-header">
            <a class="navbar-brand" ui-sref="TutorialHome"> State Routing</a>
        </div>
            <ul class="nav navbar-nav">
                <li><a ui-sref="Profile">Profile</a></li><!--State Transition on click-->
                <li><a ui-sref="Account">Account</a></li><!--State Transition on click-->
                <li><a ui-sref="Setting">Setting</a></li><!--State Transition on click-->
                <li style="float: right;"><a ui-sref="Home">Home</a></li><!--State Transition on click-->
            </ul>

    </div>
</nav>
Run Code Online (Sandbox Code Playgroud)

控制器Js

var …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express angularjs

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

如何在 terraform 中为 GCS 创建 eventarc 触发器?

我想为 GCS 对象创建创建一个 eventarc 触发器。根据 Eventarc 文档,这应该使用直接 GCS 触发器。我可以像这样创建它,但我不知道在哪里放置存储桶名称:

resource "google_eventarc_trigger" "upload" {
  name     = "upload"
  location = "europe-west1"
  matching_criteria {
    attribute = "type"
    value     = "google.cloud.storage.object.v1.finalized"
  }
  destination {
    workflow = google_workflows_workflow.process_file.id
  }
  service_account = google_service_account.workflow.email
}
Run Code Online (Sandbox Code Playgroud)

当我运行此示例时,出现以下错误:

Error: Error creating Trigger: googleapi: Error 400: The request was invalid: The request was invalid: missing required attribute "bucket" in trigger.event_filters
Run Code Online (Sandbox Code Playgroud)

google-cloud-storage google-cloud-platform terraform event-arc

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