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 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 TASK LIST
12
+ == TODO LIST
13
+
14
+ * REST接口测试平台开发
15
+ 如何用get请求模拟post请求?
12
16
  * 规划文档和内容调整
13
17
  * 写完整测试
14
18
  * index默认查询条件加入,传入条件的merge(目前已提供传入条件的精确搜索)
15
- * 如何用get请求模拟post请求
16
19
 
17
- #==NS Service Pack使用指南
20
+ == 使用指南
18
21
 
19
22
  *1 在rails3项目中使用,命令行执行:
20
23
  gem install ns_service_pack
21
- ns_service_pack install
24
+ nsp install
22
25
  bundle install
23
26
 
24
27
  *2 为某资源生成有service支持的scaffold,命令行:
25
28
  rake g ns:scaffold
26
29
 
27
- *3 提示:
28
- 常量的使用:GlobalConst.ns_statuses[key_or_value]
30
+ *提示:
31
+ 常量引用和转换:GlobalConst.ns_statuses[key_or_value]
32
+ 内置接口: /interfaces, /mappings, /constants
29
33
 
30
- == Contributing to ns_service_pack
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
- == Copyright
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
- Copyright (c) 2011 caory. See LICENSE.txt for
43
- further details.
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
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>模块发布接口列表(版本码:<%=@version_code%> 获取日期:<%= Time.now.to_s(:db)%>):</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>HttpMethod</th>
7
+ <th>Request</th>
7
8
  <th>Path</th>
8
9
  <th>Sample</th>
9
- <th>Requirements </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)', '.json').sub(':id', '1')}" %>
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
- <%= r.requirements%>
32
+ <%req = r.requirements%>
33
+ <%= "#{req[:controller]}-->#{req[:action]}"%>
32
34
  </td>
33
35
  </tr>
34
36
  <%end%>
data/config/routes.rb CHANGED
@@ -3,6 +3,7 @@
3
3
  # 发布的接口仅在非生产模式可访问
4
4
  unless Rails.env.production?
5
5
  Rails.application.routes.draw do
6
+ root :to=>"ns/info#interfaces"
6
7
  get 'interfaces', :to=>"ns/info#interfaces"
7
8
  get 'constants', :to=>"ns/info#constants"
8
9
  get 'mappings', :to=>"ns/info#mappings"
@@ -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 -%>
@@ -1,9 +1,11 @@
1
1
  #encoding: utf-8
2
2
  <% module_namespacing do -%>
3
3
  class <%= controller_class_name %>Controller < ApplicationController
4
+ #Make your controller servicable
4
5
  include Ns::ControllerServicable
5
6
  def model_class
6
7
  <%= class_name %>
7
8
  end
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
- #如:开发模式下, AppConfig.services[:customers]==>http://localhost:5000/customers
16
+ #如:开发模式下, NsServices[:customers]==>http://localhost:5000/customers
17
17
  #语法: 键: [依赖键(字符串形式), 附加字串]
18
18
  common:
19
19
  :customers: [customer_service_base_url, customers]
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "ns_service_pack"
8
- s.version = "0.1.1"
8
+ s.version = "0.1.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Caory, Shang, Geogeous"]
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.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: &80545720 !ruby/object:Gem::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: *80545720
24
+ version_requirements: *88082070
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: thor
27
- requirement: &80545480 !ruby/object:Gem::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: *80545480
35
+ version_requirements: *88081830
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: shoulda
38
- requirement: &80545240 !ruby/object:Gem::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: *80545240
46
+ version_requirements: *88081570
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
- requirement: &80545000 !ruby/object:Gem::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: *80545000
57
+ version_requirements: *88081310
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: jeweler
60
- requirement: &80544760 !ruby/object:Gem::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: *80544760
68
+ version_requirements: *88081070
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rcov
71
- requirement: &80544520 !ruby/object:Gem::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: *80544520
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: 373915261
142
+ hash: -792238463
143
143
  required_rubygems_version: !ruby/object:Gem::Requirement
144
144
  none: false
145
145
  requirements: