标签: extending

你如何扩展django可插拔应用程序?

假设我正在使用django-tagging应用程序,我决定将表单类添加到现有标记表单中.我不想将表单修补到现有的forms.py中,因为它会在更新时被烧毁.如何扩展forms.py以包含我的表单类?

我尝试在我的应用程序中添加一个"标记"文件夹,其中的forms.py仅包含我的类,但会破坏已安装的应用程序的表单类.(我知道这是一个很长的镜头,只是想我会尝试一下).

有关在何处查找有关向现有应用程序添加表单类的信息的建议?

django extending

6
推荐指数
2
解决办法
2529
查看次数

如何在Scala中扩展现有的枚举对象?

我想知道你是否可以在Scala中扩展现有的枚举.例如:

object BasicAnimal extends Enumeration{
    type BasicAnimal = Value
    val Cat, Dog = Value   
}
Run Code Online (Sandbox Code Playgroud)

可以这样扩展:

object FourLeggedAnimal extends BasicAnimal{
    type FourLeggedAnimal = Value
    val Dragon = Value
}
Run Code Online (Sandbox Code Playgroud)

然后,FourLeggedAnimal中的元素将是Cat,Dog和Dragon.可以这样做吗?

enumeration scala extending

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

扩展Ext.data.Store

我试图在我的应用程序中集中我的EXTJS存储配置,但是,我似乎无法弄清楚如何实现这一点.我正在使用ExtJS 4.1.

我有一个基础商店,我希望保留所有重复配置的东西,然后我更具体的商店来保存实际上不同的东西.

Ext.define('My.store.Abstract', {
    extend: 'Ext.data.Store',
    autoload:false,
    proxy: {
        type: 'ajax', 
        reader: {  
            type: 'json',
            root: 'data',
            totalProperty: 'total',  
            successProperty: 'success', 
            messageProperty: 'message'  
        },
        writer: {  
            type: 'json',
            encode: true, 
            writeAllFields: true, 
            root: 'data',
            allowSingle: false 
        },
        simpleSortMode: true
    }
});
Run Code Online (Sandbox Code Playgroud)

然后我想在商店的基础上提供商店特定的东西 -

Ext.define('My.store.Products', {
    extend: 'My.store.Abstract',
    storeId: 'Products',
    model: 'My.model.Product',
    proxy: {
        api: {
            create: '/myurl/create',  
            read: '/myurl/index',
            update: '/myurl/update',  
            destroy: '/myurl/delete' 
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

我发现的是它根本就没有表现.我相信它与代理有关,但我无法追踪它.

这样做的正确方法是什么?我宁愿不在我的应用程序中的350多个商店中复制相同的配置内容(来自我的抽象商店).截至目前,它就是我所拥有的,而且我认为我试图实现一个非常基本的概念......无济于事.

我知道事情不起作用,像pageSize一样基本,甚至是autoLoad ..因为它们根本没有受到尊重.

我玩过构造函数,并调用父代.

任何帮助将不胜感激.

extjs extending extending-classes

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

Ecto Changeset添加警告功能

我创建了一个ecto存储库分支来扩展Ecto.Changeset模块,并能够向变更集添加警告.我希望有一个 add_warnings/4函数可以将变更集添加警告,作为具有此结构的警告的简单列表warnings: [{atom, {String.t, Keyword.t}}],类似于errors.warnings和的行为之间的区别在于errors,当发生错误时,数据不会被持久化,但是当发生警告时,数据会被持久化.

Ecto.Changeset结构扩展了键warningswarningless?:

defstruct valid?: false, warningless?: false, data: nil, params: nil, changes: %{}, repo: nil,
        errors: [], warnings: [], validations: [], required: [], prepare: [],
        constraints: [], filters: %{}, action: nil, types: nil,
        empty_values: @empty_values
Run Code Online (Sandbox Code Playgroud)

Ecto用于调整铸造,更改,处理参数等功能.功能add_warnings/4添加:

@spec add_warning(t, atom, String.t, Keyword.t) :: t
def add_warning(%{warnings: warnings} = changeset, key, message, keys \\ []) when is_binary(message) do …
Run Code Online (Sandbox Code Playgroud)

functional-programming elixir extending ecto phoenix-framework

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

在处理类和查找测试方法时,扩展xUnit.NET以使用自定义代码

我是xUnit.NET框架的忠实粉丝; 我发现它轻巧,简单,干净,可扩展.

现在让我们说我有一个这样的类:

public class AdditionSpecification
{
  static int result;

  public void Because()
  {
    result = 2 + 2;
  }

  public void Result_is_non_zero()
  {
    Assert.True(result <> 0);
  }

  public void Result_is_correct()
  {
    Assert.Equal(4, result);
  }
}
Run Code Online (Sandbox Code Playgroud)

对于上面的测试类,我希望xUnit.NET能够看到2个测试用例,并在每个测试用例之前运行Since()方法.

撇开您对我的类或方法名称,此测试/规范的结构,xUnit.NET框架或BDD的任何问题,这是我的问题:

我怎样才能告诉xUnit.NET我想要自定义如何在使用每个目标测试方法的自定义[Fact]类似属性的情况识别和执行此类的测试方法?

我知道我可以从BeforeAfterAttribute派生出来,在执行前后使用自定义装饰每个测试方法.我怎样才能在班级做到这一点?我必须写一个自定义跑步者吗?

c# xunit.net extending

5
推荐指数
2
解决办法
3547
查看次数

扩大风格和主题的混乱

在我的清单中,我曾经有类似的东西

<activity android:name=".MyActivity"
     android:label="@string/app_name"
        name="Theme.NoTitleBar"...
Run Code Online (Sandbox Code Playgroud)

它工作得很好,我的意思是标题栏没有显示.

但现在我想自定义主题(我想扩展默认的android主题),我创建了这个主题

<style name="Theme.NoTitleBar.new_skin" parent="android:Theme">
        <item name="text_body_read">@style/text_body_read</item>
        <item name="text_body_unread">@style/text_body_unread</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

然后在我设置的清单中name="Theme.NoTitleBar.new_skin",但标题栏仍然显示.

如何隐藏标题栏并仍然拥有我的新自定义主题?

还有一个问题是添加点'.' 是否在使用样式时进行扩展?

layout android themes coding-style extending

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

扩展单例类错了吗?

我正在为应用程序创建一个记录器.我正在使用第三方记录器库.在哪个记录器中实现为单例.

我扩展了logger类,因为我想添加一些静态函数.在这些静态函数中,我在内部使用Logger的实例(单个)(我继承了).

我既没有创建MyLogger的实例,也没有重新实现超类的getInstance()方法.但我仍然得到像MyLogger的析构函数一样的警告,因为无法访问父类(Loggger)析构函数.

我想知道,我做错了什么?继承单身是错的还是应该避免?

logging singleton design-patterns extending

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

扩展动态链接共享库?

我是C的新手,很抱歉我缺乏知识(我的C-book非常庞大:)

我想扩展一个共享库(libcustomer.so)与闭源,但公共已知api.

这样的事情可能吗?

  1. 将libcustomer.so重命名为liboldcustomer.so
  2. 创建一个扩展的共享库libcustomer.so(所以其他人隐式使用扩展的库)
  3. 通过-loldcustomer将liboldcustomer.so链接到我的扩展libcustomer.so中
  4. 将任何不是额外实现的方法直接转发给旧的"liboldcustomer.so"

我认为它不会那样工作(名称被编译成.so,不是吗?).但是替代方案是什么?

对于#4:是否有一般的方法来做到这一点,或者我是否必须编写一个名为旧的方法并转发呼叫(如何?)?

因为原始的libcustomer.so(= liboldcustomer.so)可能会不时发生变化,所有这些东西都应该动态地工作.

出于安全考虑,我们的系统没有LD_PRELOAD(否则我会认为:().

考虑扩展验证检查和一些更好的NPE处理.

在此先感谢您的帮助!

编辑:

我正在实现我的扩展,如答案中所示,但我现在有一个未处理的案例:

如何从扩展库"代理"结构?

例如我有这个:

customer.h:

struct customer;
Run Code Online (Sandbox Code Playgroud)

customer.c:

struct customer {
    int children:1;
    int age;
    struct house *house_config;
};
Run Code Online (Sandbox Code Playgroud)

现在,在我的customer-extension.c中,我正在编写customer.c的所有公共方法,但是如何"传递"结构?

非常感谢您的时间和帮助!

c shared-libraries extending

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

TypeScript在Namespace下扩展JQuery

我正在尝试通过TypeScript中的函数扩展默认JQuery接口和默认对象jQuery

/// <reference path="jquery.d.ts" />

namespace MyNameSpace {
    var $ = jQuery;
    export interface JQuery {
        test(options: Object): JQuery;
    }
    $.fn.test = function(options: Object): JQuery {
        if (this.length === 0) {
            console.log('Error!');
            return this;
        }
        console.log(options);
        return this;
    }
    export var testBody = function() {
        jQuery('body').test({ 'HELLO': 'TEST' });
    }
}
Run Code Online (Sandbox Code Playgroud)

问题

现在我在我的控制台中运行以下代码: tsc -m amd -t ES5 Test.ts -d

我收到这个错误: Test.ts(17,19): error TS2339: Property 'test' does not exist on type 'JQuery'.

对此有何解决方案?

javascript jquery namespaces extending typescript

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

在Node.js中扩展类的简单方法

我正在将一个简单的Javascript类移动到Node.js. 在普通的Javascript中我使用:

class BlockMosaicStreamer extends MosaicStreamer{
}
Run Code Online (Sandbox Code Playgroud)

我似乎无法在Node.js中找到一种简单的方法来实现它.在我的节点项目中BlockMosaicStreamer.js我有:

'use strict'; 
function BlockMosaicStreamer(){
} 
Run Code Online (Sandbox Code Playgroud)

MosaicStreamer该如何扩展./MosaicStreamer.js

'use strict'; 
function MosaicStreamer(){
} 
Run Code Online (Sandbox Code Playgroud)

javascript oop extending node.js

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