ns_service_pack 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +3 -1
- data/README.rdoc +31 -20
- data/VERSION +1 -1
- data/app/controllers/ns/info_controller.rb +1 -1
- data/app/views/ns/info/interfaces.html.erb +8 -6
- data/config/routes.rb +1 -0
- data/lib/generators/ns/scaffold/templates/active_record/model/model.rb +2 -0
- data/lib/generators/ns/scaffold/templates/rails/scaffold_controller/controller.rb +2 -0
- data/lib/templates/config/ns_services.yml +1 -1
- data/ns_service_pack.gemspec +1 -1
- metadata +14 -14
data/CHANGELOG
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
#==============History:
|
2
2
|
|
3
|
+
#==0.1.2
|
4
|
+
* 测试和添加部分文档
|
5
|
+
|
3
6
|
#==0.1.1
|
4
7
|
* 将该gem升级为rails项目中的engine
|
5
8
|
* 增加了一个默认的info_controller,反射出当前应用发布的api接口(仅可在非产品模式访问)
|
6
9
|
|
7
|
-
|
8
10
|
#==0.1.0[Note: 重大变更!]
|
9
11
|
* 增加service scaffold generator: rake generator ns:scaffold
|
10
12
|
* 初始化配置文件copy由thor任务完成: ns_service_pack install (在rails根目录下)
|
data/README.rdoc
CHANGED
@@ -1,44 +1,55 @@
|
|
1
1
|
= ns_service_pack
|
2
2
|
|
3
|
-
实现REST架构(ROA)中Service
|
3
|
+
实现REST架构(ROA)中Service层基础代码抽取
|
4
4
|
|
5
|
-
==
|
5
|
+
== 功能列表
|
6
6
|
|
7
7
|
* 支持自定义json格式的资源crud操作
|
8
8
|
* 提供全局字典常量/转换管理
|
9
9
|
* 提供数据库层-业务层字段自动转换
|
10
|
+
* 宿主应用的发布接口管理和测试
|
10
11
|
|
11
|
-
== TODO
|
12
|
+
== TODO LIST
|
13
|
+
|
14
|
+
* REST接口测试平台开发
|
15
|
+
如何用get请求模拟post请求?
|
12
16
|
* 规划文档和内容调整
|
13
17
|
* 写完整测试
|
14
18
|
* index默认查询条件加入,传入条件的merge(目前已提供传入条件的精确搜索)
|
15
|
-
* 如何用get请求模拟post请求
|
16
19
|
|
17
|
-
|
20
|
+
== 使用指南
|
18
21
|
|
19
22
|
*1 在rails3项目中使用,命令行执行:
|
20
23
|
gem install ns_service_pack
|
21
|
-
|
24
|
+
nsp install
|
22
25
|
bundle install
|
23
26
|
|
24
27
|
*2 为某资源生成有service支持的scaffold,命令行:
|
25
28
|
rake g ns:scaffold
|
26
29
|
|
27
|
-
|
28
|
-
|
30
|
+
*提示:
|
31
|
+
常量引用和转换:GlobalConst.ns_statuses[key_or_value]
|
32
|
+
内置接口: /interfaces, /mappings, /constants
|
29
33
|
|
30
|
-
==
|
31
|
-
|
32
|
-
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
|
33
|
-
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
|
34
|
-
* Fork the project
|
35
|
-
* Start a feature/bugfix branch
|
36
|
-
* Commit and push until you are happy with your contribution
|
37
|
-
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
38
|
-
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
34
|
+
== 项目引用0.0.x到0.1.x升级帮助(仅需四步,5~10分钟,绝对无痛哦!)
|
39
35
|
|
40
|
-
|
36
|
+
* 获取最新版本: gem install ns_service_pack
|
37
|
+
* rails项目根目录下: nsp install && bundle install(此步检查下Gemfile,确保引用最新,或gem 'ns_service_pack', '~>0.1')
|
38
|
+
* Models中明确引用: include FieldMapping
|
39
|
+
* ApplicationController或!子类!中添加引用: include ControllerServicable
|
40
|
+
= 验证是否成功?
|
41
|
+
* 访问: http://xxx/,非生产环境会重定向到/interfaces, 点击示例中的链接(动态生成)
|
42
|
+
= 相关背景
|
43
|
+
* 已停止支持 nclient gem, 相关功能会融合在nsp中
|
44
|
+
* 扩展为rails的engine,包含自己的生成器等
|
45
|
+
* 以后有时间时,可以开发内部接口测试和性能监控平台,进行有效的集中管理和共有问题处理;对数据库层进行更好的封装
|
46
|
+
|
47
|
+
== 相关问题更新和反馈
|
41
48
|
|
42
|
-
|
43
|
-
|
49
|
+
== 版本历史
|
50
|
+
|
51
|
+
ref: CHANGELOG
|
52
|
+
|
53
|
+
== Copyright
|
44
54
|
|
55
|
+
Copyright (c) 2011 caory and ns. Please let me know in advance if you plan to refer this codebase. Thanks!
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
@@ -5,7 +5,7 @@ class Ns::InfoController < ApplicationController
|
|
5
5
|
def interfaces
|
6
6
|
@routes = Rails.application.routes.routes
|
7
7
|
#删除一些无需关注的路由: /assets, /rails/info/properties, /interfaces
|
8
|
-
@routes.delete_if{|r| r.path =~ /\/assets|\/rails\/info|\/interfaces
|
8
|
+
@routes.delete_if{|r| r.path =~ /\/assets|\/rails\/info|\/interfaces|\/$/}
|
9
9
|
#验证接口是否改变的校验码
|
10
10
|
@version_code = @routes.join(';').hash
|
11
11
|
respond_to do |format|
|
@@ -1,12 +1,13 @@
|
|
1
|
-
<p
|
2
|
-
|
1
|
+
<p><%=Rails.root.basename.to_s.humanize%>发布接口列表
|
2
|
+
(内容版本码:<%=@version_code%> 获取日期:<%= Time.now.to_s(:db)%>):
|
3
|
+
</p>
|
3
4
|
<table border='1'>
|
4
5
|
<tr>
|
5
6
|
<th>No.</th>
|
6
|
-
<th>
|
7
|
+
<th>Request</th>
|
7
8
|
<th>Path</th>
|
8
9
|
<th>Sample</th>
|
9
|
-
<th>
|
10
|
+
<th>Responsor</th>
|
10
11
|
</tr>
|
11
12
|
<%@routes.each_with_index do |r, i|%>
|
12
13
|
<tr>
|
@@ -22,13 +23,14 @@
|
|
22
23
|
<td>
|
23
24
|
<%#= link_to r.name || "示例", "#{r.path.sub('(.:format)', '.json').sub(':id', '1')}}" %>
|
24
25
|
<%if r.verb.to_s.upcase == 'GET' %>
|
25
|
-
<%=link_to r.name || "示例", "#{r.path.sub('(.:format)', '
|
26
|
+
<%=link_to r.name || "示例", "#{r.path.sub('(.:format)', '').sub(':id', '1')}" %>
|
26
27
|
<%else%>
|
27
28
|
<%= "#{r.path.sub('(.:format)', '').sub(':id', '1')}" %>
|
28
29
|
<%end%>
|
29
30
|
</td>
|
30
31
|
<td>
|
31
|
-
|
32
|
+
<%req = r.requirements%>
|
33
|
+
<%= "#{req[:controller]}-->#{req[:action]}"%>
|
32
34
|
</td>
|
33
35
|
</tr>
|
34
36
|
<%end%>
|
data/config/routes.rb
CHANGED
@@ -4,6 +4,8 @@ class <%= class_name %> < <%= parent_class_name.classify %>
|
|
4
4
|
<% attributes.select {|attr| attr.reference? }.each do |attribute| -%>
|
5
5
|
belongs_to :<%= attribute.name %>
|
6
6
|
<% end -%>
|
7
|
+
#Make your model have buz-db mapping (configurable)
|
7
8
|
include Ns::FieldMapping
|
9
|
+
|
8
10
|
end
|
9
11
|
<% end -%>
|
@@ -13,7 +13,7 @@ production:
|
|
13
13
|
:customer_service_base_url: http://customer.api.ilining.cn
|
14
14
|
|
15
15
|
#==依赖于前面值的共有设置
|
16
|
-
#如:开发模式下,
|
16
|
+
#如:开发模式下, NsServices[:customers]==>http://localhost:5000/customers
|
17
17
|
#语法: 键: [依赖键(字符串形式), 附加字串]
|
18
18
|
common:
|
19
19
|
:customers: [customer_service_base_url, customers]
|
data/ns_service_pack.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ns_service_pack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-12-01 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rest-client
|
16
|
-
requirement: &
|
16
|
+
requirement: &88082070 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 1.6.7
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *88082070
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: thor
|
27
|
-
requirement: &
|
27
|
+
requirement: &88081830 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.14.6
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *88081830
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: shoulda
|
38
|
-
requirement: &
|
38
|
+
requirement: &88081570 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *88081570
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: bundler
|
49
|
-
requirement: &
|
49
|
+
requirement: &88081310 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.0.0
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *88081310
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: jeweler
|
60
|
-
requirement: &
|
60
|
+
requirement: &88081070 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 1.6.4
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *88081070
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rcov
|
71
|
-
requirement: &
|
71
|
+
requirement: &88080830 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *88080830
|
80
80
|
description: abstract some common pattern to service pack
|
81
81
|
email: cao7113@hotmail.com
|
82
82
|
executables:
|
@@ -139,7 +139,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
139
139
|
version: '0'
|
140
140
|
segments:
|
141
141
|
- 0
|
142
|
-
hash:
|
142
|
+
hash: -792238463
|
143
143
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
144
|
none: false
|
145
145
|
requirements:
|