小编Jau*_*uco的帖子

YAML中更复杂的继承?

YAML有继承权.我见过的最明显的例子是:http://blog.101ideas.cz/posts/dry-your-yaml-files.html

我需要更复杂的东西:我需要覆盖对象的对象的属性.这是一个例子:

database: &default
  server:
    ip: 192.168.1.5
    port: 2000
  db_name: test
  user: 
    name: root
    password: root

# database foo differs from default by only its port and user password
foo_database:
  <<: *default
  server:
    port: 2001
  db_name: foo
  user:
    password: foo_root
Run Code Online (Sandbox Code Playgroud)

我想得到这个结果:

foo_database.server.ip -> 192.168.1.5
foo_database.server.port -> 2001
foo_database.db_name -> foo
foo_database.user.name -> root
foo_database.user.password -> foo_root
Run Code Online (Sandbox Code Playgroud)

但是,如果您这样声明,您将获得这些属性不正确(根据预期值):

foo_database.server.ip -> will be None
foo_database.user.name -> will be None
Run Code Online (Sandbox Code Playgroud)

因为新的"服务器"对象只有"port"属性,它会覆盖整个旧的"服务器"对象.

我如何获得我想要实现的继承?

inheritance yaml

47
推荐指数
2
解决办法
4万
查看次数

Google应用脚本oauth connect不适用于trello

我一直在尝试在Google应用程序脚本中使用oAuth来访问trello数据,但似乎OAuthService API对oAuth服务做了一些假设,并且trello不能以这种方式工作.

以下代码有效.它可以访问twitter(这是来自google的oauth教程):

function authorizeToTwitter() {
  var oauthConfig = UrlFetchApp.addOAuthService("twitter");
  oauthConfig.setAccessTokenUrl("https://api.twitter.com/oauth/access_token");
  oauthConfig.setRequestTokenUrl("https://api.twitter.com/oauth/request_token");
  oauthConfig.setAuthorizationUrl("https://api.twitter.com/oauth/authorize");
  oauthConfig.setConsumerKey(<CONSUMER KEY>);
  oauthConfig.setConsumerSecret(<CONSUMER SECRET>);
  var requestData = {
    "method": "GET",
    "oAuthServiceName": "twitter",
    "oAuthUseToken": "always"
  };
  var result = UrlFetchApp.fetch("https://api.twitter.com/1/statuses/mentions.json", requestData);
}
Run Code Online (Sandbox Code Playgroud)

以下代码将让我进入trello"按下确定后退"页面,但trello不知道如何重定向回来,所以我到了一个页面,要求我手动复制粘贴一个令牌(但谷歌没有为我提供了插入该令牌的方法

function authorizeToTrello() {
  var oauthConfig = UrlFetchApp.addOAuthService("trello");
  oauthConfig.setAccessTokenUrl("https://trello.com/1/OAuthGetAccessToken");
  oauthConfig.setRequestTokenUrl("https://trello.com/1/OAuthGetRequestToken");
  oauthConfig.setAuthorizationUrl("https://trello.com/1/OAuthAuthorizeToken");
  oauthConfig.setConsumerKey(<CONSUMER KEY>);
  oauthConfig.setConsumerSecret(<CONSUMER SECRET>);
  var requestData = {
    "method": "GET",
    "oAuthServiceName": "trello",
    "oAuthUseToken": "always"
  };
  var result = UrlFetchApp.fetch(
      "https://api.trello.com/1/members/me/boards",
      requestData);
}
Run Code Online (Sandbox Code Playgroud)

我尝试通过手动添加我在授权URL中提供给twitter的重定向回调来解决这个问题

oauthConfig.setAuthorizationUrl("https://trello.com/1/OAuthAuthorizeToken?return_url=https://docs.google.com/macros"); //this is what the tutorial says I should provide …
Run Code Online (Sandbox Code Playgroud)

oauth google-apps-script trello

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

为什么我不能在for循环中更改linq IEnumerable中的元素?

昨天我写了下面的c#代码(为了易读性而缩短了一点):

 var timeObjects = ( from obj in someList
                     where ( obj.StartTime != null )
                     select new MyObject()
                     {
                        StartTime= obj.StartTime.Value,
                        EndTime = obj.EndTime
                     } )
Run Code Online (Sandbox Code Playgroud)

因此每个项目都有一个startTime,有些项目有一个EndTime(其他项目有null作为EndTime).

如果已知start和endtime,我想计算经过的时间:

foreach ( var item in timeObjects)
{
    if ( item.EndTime  == null )
    {
      item.elapsed = 0;
    }
    else
    {
      item.elapsed = ( item.EndTime.Value - item.StartTime).Minutes;
    }
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用!timeObjects集合永远不会改变.

如果我说:

 var timeObjects = ( from obj in someList
                     where ( obj.StartTime != null )
                     select new MyObject()
                     {
                         StartTime= obj.StartTime.Value,
                         EndTime = …
Run Code Online (Sandbox Code Playgroud)

c# linq

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

标签 统计

c# ×1

google-apps-script ×1

inheritance ×1

linq ×1

oauth ×1

trello ×1

yaml ×1