antetype 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Binary file
@@ -0,0 +1,88 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ antetype (0.0.3)
5
+ bundler (~> 1.1.3)
6
+ thor (~> 0.14.6)
7
+
8
+ GEM
9
+ remote: http://rubygems.org/
10
+ specs:
11
+ builder (3.0.0)
12
+ cane (1.3.0)
13
+ code_statistics (0.2.13)
14
+ columnize (0.3.6)
15
+ cucumber (1.1.9)
16
+ builder (>= 2.1.2)
17
+ diff-lcs (>= 1.1.2)
18
+ gherkin (~> 2.9.0)
19
+ json (>= 1.4.6)
20
+ term-ansicolor (>= 1.0.6)
21
+ debugger (1.0.1)
22
+ columnize (>= 0.3.1)
23
+ debugger-linecache
24
+ debugger-ruby_core_source
25
+ debugger-linecache (1.1.1)
26
+ debugger-ruby_core_source (>= 1.1.1)
27
+ debugger-ruby_core_source (1.1.2)
28
+ diff-lcs (1.1.3)
29
+ flay (1.4.3)
30
+ ruby_parser (~> 2.0)
31
+ sexp_processor (~> 3.0)
32
+ flog (2.5.3)
33
+ ruby_parser (~> 2.0)
34
+ sexp_processor (~> 3.0)
35
+ gherkin (2.9.3)
36
+ json (>= 1.4.6)
37
+ haml (3.0.25)
38
+ hanna_gudao (0.3.2)
39
+ haml (= 3.0.25)
40
+ rdoc (~> 3.12)
41
+ json (1.7.3)
42
+ multi_json (1.3.5)
43
+ rake (0.9.2.2)
44
+ rdoc (3.12)
45
+ json (~> 1.4)
46
+ reek (1.2.8)
47
+ ruby2ruby (~> 1.2)
48
+ ruby_parser (~> 2.0)
49
+ sexp_processor (~> 3.0)
50
+ rspec (2.6.0)
51
+ rspec-core (~> 2.6.0)
52
+ rspec-expectations (~> 2.6.0)
53
+ rspec-mocks (~> 2.6.0)
54
+ rspec-core (2.6.4)
55
+ rspec-expectations (2.6.0)
56
+ diff-lcs (~> 1.1.2)
57
+ rspec-mocks (2.6.0)
58
+ ruby2ruby (1.3.0)
59
+ ruby_parser (~> 2.0)
60
+ sexp_processor (~> 3.0)
61
+ ruby_parser (2.3.1)
62
+ sexp_processor (~> 3.0)
63
+ sexp_processor (3.2.0)
64
+ simplecov (0.6.4)
65
+ multi_json (~> 1.0)
66
+ simplecov-html (~> 0.5.3)
67
+ simplecov-html (0.5.3)
68
+ term-ansicolor (1.0.7)
69
+ thor (0.14.6)
70
+
71
+ PLATFORMS
72
+ ruby
73
+
74
+ DEPENDENCIES
75
+ antetype!
76
+ cane (~> 1.3.0)
77
+ code_statistics (= 0.2.13)
78
+ cucumber (~> 1.1.0)
79
+ debugger (~> 1.0.0)
80
+ flay (= 1.4.3)
81
+ flog (= 2.5.3)
82
+ hanna_gudao (= 0.3.2)
83
+ rake (~> 0.9.2.2)
84
+ rdoc (~> 3.12)
85
+ reek (~> 1.2.8)
86
+ rspec (~> 2.6.0)
87
+ ruby2ruby (= 1.3.0)
88
+ simplecov (= 0.6.4)
data/Rakefile CHANGED
@@ -1 +1,7 @@
1
1
  require 'bundler/gem_tasks'
2
+ require 'code_statistics'
3
+ require 'antetype'
4
+
5
+ require './tasks/helper'
6
+ Dir["tasks/**/*.rake"].each { |t| load t }
7
+
@@ -1,15 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
- require "antetype/version"
4
3
 
5
4
  Gem::Specification.new do |s|
6
5
  s.name = "antetype"
7
- s.version = Antetype::VERSION
6
+ s.version = "0.0.3"
8
7
  s.authors = ["Gudao Luo"]
9
8
  s.email = ["gudao.luo@gmail.com"]
10
9
  s.homepage = "http://www.lycom.de"
11
- s.summary = %q{Write a gem summary}
12
- s.description = %q{Write a gem description}
10
+ s.summary = %q{Learn how to develop the Gem package}
11
+ s.description = %q{学习如何开发Gem软件包}
13
12
 
14
13
  s.rubyforge_project = "antetype"
15
14
 
@@ -18,7 +17,22 @@ Gem::Specification.new do |s|
18
17
  # s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
18
  s.executables = 'antetype'
20
19
  s.require_paths = ["lib"]
21
-
22
- s.add_development_dependency 'rspec', '~> 2.6.0'
20
+
21
+ s.add_dependency 'bundler', '~> 1.1.3'
23
22
  s.add_dependency 'thor', '~> 0.14.6'
23
+
24
+ s.add_development_dependency 'rspec', '~> 2.6.0'
25
+ s.add_development_dependency 'cucumber', '~> 1.1.0'
26
+ s.add_development_dependency 'debugger', '~> 1.0.0'
27
+ s.add_development_dependency 'rake', '~> 0.9.2.2'
28
+
29
+ s.add_development_dependency 'code_statistics', '= 0.2.13'
30
+ s.add_development_dependency 'cane', '~> 1.3.0'
31
+ s.add_development_dependency 'rdoc', '~> 3.12'
32
+ s.add_development_dependency 'ruby2ruby', '= 1.3.0'
33
+ s.add_development_dependency 'reek', '~> 1.2.8'
34
+ s.add_development_dependency 'flog', '= 2.5.3'
35
+ s.add_development_dependency 'flay', '= 1.4.3'
36
+ s.add_development_dependency 'simplecov', '= 0.6.4'
37
+ s.add_development_dependency 'hanna_gudao', '= 0.3.2'
24
38
  end
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'antetype'
3
3
 
4
- Antetype::Base.start
5
-
4
+ Antetype::Base.start
@@ -0,0 +1,21 @@
1
+ # language: zh-CN, 简体中文版本
2
+ 功能: 检查功能函数执行情况
3
+ 为了验证功能函数
4
+ 作为功能函数的使用者
5
+ 我希望看到功能函数是否返回正确信息
6
+
7
+ 场景: 检验变量是否为常量
8
+ 当:我验证一个常量
9
+ 那么:我应该看到该常量类型是<constant>
10
+
11
+ 场景: 检验类是否存在
12
+ 当:我验证一个类Antetype::Base
13
+ 那么:我应该看到该类的类型是<Class>
14
+
15
+ 场景: 检验函数version是否返回正确信息
16
+ 当:我调用函数version
17
+ 那么:我应该看到函数version返回值是<0.0.3>
18
+
19
+ 场景: 检验函数show_antetype_dir是否返回正确信息
20
+ 当:我调用函数show_antetype_dir
21
+ 那么:我应该看到函数show_antetype_dir返回值是<~/.antetype>
@@ -0,0 +1,30 @@
1
+ # encoding: utf-8
2
+
3
+ 当 /^:我验证一个常量$/ do
4
+ @result = defined? Antetype::DEFAULT_CONFIG_PATH
5
+ end
6
+ 那么 /^:我应该看到该常量类型是<(.*)>$/ do |result|
7
+ @result.should == result.downcase
8
+ end
9
+
10
+ 当 /^:我验证一个类Antetype::Base$/ do
11
+ @result = Antetype::Base.class.to_s
12
+ end
13
+ 那么 /^:我应该看到该类的类型是<(.*)>$/ do |result|
14
+ @result.should == result
15
+ end
16
+
17
+ 当 /^:我调用函数version$/ do
18
+ #breakpoint
19
+ @result = Antetype::Base.new.version
20
+ end
21
+ 那么 /^:我应该看到函数version返回值是<(.*)>$/ do |result|
22
+ @result.should == result
23
+ end
24
+
25
+ 当 /^:我调用函数show_antetype_dir$/ do
26
+ @result = Antetype::Base.new.show_antetype_dir
27
+ end
28
+ 那么 /^:我应该看到函数show_antetype_dir返回值是<(.*)>$/ do |result|
29
+ @result.should == result
30
+ end
@@ -0,0 +1,17 @@
1
+ # encoding: utf-8
2
+ require 'antetype'
3
+ require 'debugger'
4
+ require 'simplecov'
5
+
6
+ SimpleCov.start
7
+
8
+ class SimpleCov::Formatter::QualityFormatter
9
+ def format(result)
10
+ SimpleCov::Formatter::HTMLFormatter.new.format(result)
11
+ File.open("coverage/covered_percent", "w") do |f|
12
+ f.puts result.source_files.covered_percent.to_f
13
+ end
14
+ end
15
+ end
16
+
17
+ SimpleCov.formatter = SimpleCov::Formatter::QualityFormatter
@@ -1,6 +1,9 @@
1
- require 'antetype/version'
2
1
  require 'antetype/base'
3
2
 
3
+ # 模块Antetype定义两个方面内容:
4
+ # - 软件包常量
5
+ # - 继承Thor的对象,而对象Thor属于软件包Thor。
4
6
  module Antetype
7
+ # 定义软件包配置目录及其文件名称
5
8
  DEFAULT_CONFIG_PATH = '~/.antetype'
6
9
  end
@@ -1,10 +1,21 @@
1
1
  require 'thor'
2
2
 
3
3
  module Antetype
4
- class Base < Thor
5
- desc "show_antetype_dir", "show antetype dir"
6
- def show_antetype_dir
7
- say "#{Antetype::DEFAULT_CONFIG_PATH}", :green
4
+ # 对象Base完成一系列可执行如下功能:
5
+ #   实现所有软件包对外功能函数。
6
+ class Base < Thor
7
+ desc "version", "show antetype version"
8
+ # 返回软件包版本号
9
+ def version()
10
+ ver = Bundler.load.specs.
11
+ map{|gem| gem.version if 'antetype'==gem.name}.
12
+ find_all{|name| name!=nil}.
13
+ first.
14
+ to_s
15
+ say ver, :green
16
+ ver
8
17
  end
9
18
  end
10
19
  end
20
+
21
+ require 'antetype/base/actions'
@@ -0,0 +1,13 @@
1
+ module Antetype
2
+ #
3
+ class Base
4
+ desc "show_antetype_dir", "show antetype dir"
5
+ # 返回软件包配置目录及其文件名称
6
+ def show_antetype_dir
7
+ dir = "#{Antetype::DEFAULT_CONFIG_PATH}"
8
+ say dir, :green
9
+ dir
10
+ end
11
+ end
12
+ end
13
+
@@ -1,3 +0,0 @@
1
- module Antetype
2
- VERSION = "0.0.2"
3
- end
Binary file
@@ -0,0 +1,16 @@
1
+ begin
2
+ require 'cane/rake_task'
3
+
4
+ namespace :cane do
5
+ desc "Run cane to check quality metrics"
6
+ Cane::RakeTask.new(:cane) do |cane|
7
+ cane.abc_max = 15
8
+ cane.add_threshold 'coverage/covered_percent', :>=, 99
9
+ cane.no_style = true
10
+ end
11
+
12
+ task :default => :cane
13
+ end
14
+ rescue LoadError
15
+ abort "cane is unavailable. In order to run cane, you must: gem install cane"
16
+ end
@@ -0,0 +1,10 @@
1
+ begin
2
+ require 'cucumber/rake/task'
3
+ namespace :cucumber do
4
+ Cucumber::Rake::Task.new
5
+ end
6
+ rescue LoadError
7
+ task :cucumber do
8
+ abort "Cucumber is not available. In order to run Cucumber, you must: sudo gem install cucumber"
9
+ end
10
+ end
@@ -0,0 +1,17 @@
1
+ begin
2
+ require "rake"
3
+ require "rake/tasklib"
4
+ require "flay"
5
+ namespace :flay do
6
+ require "flay_task"
7
+ FlayTask.new do |t|
8
+ t.verbose = true
9
+ end
10
+ end
11
+ rescue LoadError
12
+ task :flay do
13
+ abort "Flay is not available. In order to run flay, you must: sudo gem install flay"
14
+ end
15
+ end
16
+
17
+
@@ -0,0 +1,19 @@
1
+ begin
2
+ require "rake"
3
+ require "rake/tasklib"
4
+ require "flog"
5
+ require "flog_task"
6
+ namespace :flog do
7
+ FlogTask.new do |t|
8
+ t.verbose = true
9
+ t.dirs = %w(app bin lib spec test)
10
+ # t.dirs = %w(app bin lib spec test features)
11
+ t.threshold = 200
12
+ end
13
+ end
14
+ rescue LoadError
15
+ task :flog do
16
+ abort "Flog is not available. In order to run flog, you must: sudo gem install flog"
17
+ end
18
+ end
19
+
@@ -0,0 +1,15 @@
1
+ begin
2
+ gem 'rdoc'
3
+ require 'rdoc/task'
4
+ namespace :hanna do
5
+ RDoc::Task.new do |rdoc|
6
+ rdoc.generator = 'hanna'
7
+ rdoc.rdoc_dir = 'hdoc'
8
+ rdoc.title = "Antetype #{Antetype::Base.new.version} Documentation"
9
+ rdoc.rdoc_files.include('lib/**/*.rb')
10
+ # rdoc.main = 'README.rdoc'
11
+ # rdoc.rdoc_files.include('README*')
12
+ end end
13
+ rescue LoadError
14
+ abort "hanna_gudao is unavailable. In order to run hanna_gudao, you must: gem install hanna_gudao"
15
+ end
@@ -0,0 +1,22 @@
1
+ # add rename_task method to Rake::Application
2
+ # it has an internal hash with name -> Rake::Task mapping
3
+ module Rake
4
+ class Application
5
+ def rename_task(task, old_name, new_name)
6
+ @tasks ||= {}
7
+ @tasks[new_name] = task
8
+ @tasks.delete old_name if @tasks.has_key? old_name
9
+ end
10
+ end
11
+ end
12
+
13
+ # add new rename method to Rake::Task class
14
+ # to rename a task
15
+ class Rake::Task
16
+ def rename(new_name)
17
+ return if new_name.nil? || @name == new_name
18
+ old_name = @name
19
+ @name = new_name.to_s
20
+ application.rename_task(self, old_name, @name)
21
+ end
22
+ end
@@ -0,0 +1,9 @@
1
+ # rename 'Rake' tasks
2
+ Rake::Task[:build].rename(:"self:build")
3
+ Rake::Task[:install].rename(:"self:install")
4
+ Rake::Task[:release].rename(:"self:release")
5
+
6
+ # desc "Runs all code quality metrics"
7
+ # task :"antetype:quality" => [:"stats:stats", :"flog:flog", :"cane:cane", :"reek:reek"]#, :"flay:flay"]
8
+
9
+
@@ -0,0 +1,11 @@
1
+ require 'rdoc/task'
2
+ namespace :rdoc do
3
+ RDoc::Task.new do |t|
4
+ t.rdoc_dir = "rdoc"
5
+ t.title = "Antetype -- Software Development Method"
6
+ t.rdoc_files.include("lib/**/*.rb")
7
+ # t.rdoc_files.include('README.rdoc')
8
+ # t.rdoc_files.exclude 'lib/**/templates/**/*'
9
+ # t.main = "README.rdoc"
10
+ end
11
+ end
@@ -0,0 +1,16 @@
1
+ begin
2
+ require "reek"
3
+ require "reek/rake/task"
4
+ namespace :reek do
5
+ Reek::Rake::Task.new do |t|
6
+ t.source_files = 'lib/**/*.rb'
7
+ t.verbose = true
8
+ t.fail_on_error = true
9
+ end
10
+ end
11
+ rescue LoadError
12
+ task :reek do
13
+ abort "Reek is unavailable. In order to run reek, you must: gem install reek"
14
+ end
15
+ end
16
+
@@ -0,0 +1,4 @@
1
+ # rename 'code_statistics' tasks
2
+ Rake::Task[:stats].rename(:"stats:stats")
3
+ Rake::Task[:code_stats].rename(:"stats:code_stats")
4
+
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: antetype
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.2
5
+ version: 0.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Gudao Luo
@@ -10,18 +10,18 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2012-04-14 00:00:00 Z
13
+ date: 2012-05-26 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: rspec
16
+ name: bundler
17
17
  prerelease: false
18
18
  requirement: &id001 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ~>
22
22
  - !ruby/object:Gem::Version
23
- version: 2.6.0
24
- type: :development
23
+ version: 1.1.3
24
+ type: :runtime
25
25
  version_requirements: *id001
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: thor
@@ -34,7 +34,150 @@ dependencies:
34
34
  version: 0.14.6
35
35
  type: :runtime
36
36
  version_requirements: *id002
37
- description: Write a gem description
37
+ - !ruby/object:Gem::Dependency
38
+ name: rspec
39
+ prerelease: false
40
+ requirement: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 2.6.0
46
+ type: :development
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
49
+ name: cucumber
50
+ prerelease: false
51
+ requirement: &id004 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ~>
55
+ - !ruby/object:Gem::Version
56
+ version: 1.1.0
57
+ type: :development
58
+ version_requirements: *id004
59
+ - !ruby/object:Gem::Dependency
60
+ name: debugger
61
+ prerelease: false
62
+ requirement: &id005 !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ~>
66
+ - !ruby/object:Gem::Version
67
+ version: 1.0.0
68
+ type: :development
69
+ version_requirements: *id005
70
+ - !ruby/object:Gem::Dependency
71
+ name: rake
72
+ prerelease: false
73
+ requirement: &id006 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: 0.9.2.2
79
+ type: :development
80
+ version_requirements: *id006
81
+ - !ruby/object:Gem::Dependency
82
+ name: code_statistics
83
+ prerelease: false
84
+ requirement: &id007 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - "="
88
+ - !ruby/object:Gem::Version
89
+ version: 0.2.13
90
+ type: :development
91
+ version_requirements: *id007
92
+ - !ruby/object:Gem::Dependency
93
+ name: cane
94
+ prerelease: false
95
+ requirement: &id008 !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ~>
99
+ - !ruby/object:Gem::Version
100
+ version: 1.3.0
101
+ type: :development
102
+ version_requirements: *id008
103
+ - !ruby/object:Gem::Dependency
104
+ name: rdoc
105
+ prerelease: false
106
+ requirement: &id009 !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ~>
110
+ - !ruby/object:Gem::Version
111
+ version: "3.12"
112
+ type: :development
113
+ version_requirements: *id009
114
+ - !ruby/object:Gem::Dependency
115
+ name: ruby2ruby
116
+ prerelease: false
117
+ requirement: &id010 !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
120
+ - - "="
121
+ - !ruby/object:Gem::Version
122
+ version: 1.3.0
123
+ type: :development
124
+ version_requirements: *id010
125
+ - !ruby/object:Gem::Dependency
126
+ name: reek
127
+ prerelease: false
128
+ requirement: &id011 !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: 1.2.8
134
+ type: :development
135
+ version_requirements: *id011
136
+ - !ruby/object:Gem::Dependency
137
+ name: flog
138
+ prerelease: false
139
+ requirement: &id012 !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - "="
143
+ - !ruby/object:Gem::Version
144
+ version: 2.5.3
145
+ type: :development
146
+ version_requirements: *id012
147
+ - !ruby/object:Gem::Dependency
148
+ name: flay
149
+ prerelease: false
150
+ requirement: &id013 !ruby/object:Gem::Requirement
151
+ none: false
152
+ requirements:
153
+ - - "="
154
+ - !ruby/object:Gem::Version
155
+ version: 1.4.3
156
+ type: :development
157
+ version_requirements: *id013
158
+ - !ruby/object:Gem::Dependency
159
+ name: simplecov
160
+ prerelease: false
161
+ requirement: &id014 !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - "="
165
+ - !ruby/object:Gem::Version
166
+ version: 0.6.4
167
+ type: :development
168
+ version_requirements: *id014
169
+ - !ruby/object:Gem::Dependency
170
+ name: hanna_gudao
171
+ prerelease: false
172
+ requirement: &id015 !ruby/object:Gem::Requirement
173
+ none: false
174
+ requirements:
175
+ - - "="
176
+ - !ruby/object:Gem::Version
177
+ version: 0.3.2
178
+ type: :development
179
+ version_requirements: *id015
180
+ description: "\xE5\xAD\xA6\xE4\xB9\xA0\xE5\xA6\x82\xE4\xBD\x95\xE5\xBC\x80\xE5\x8F\x91Gem\xE8\xBD\xAF\xE4\xBB\xB6\xE5\x8C\x85"
38
181
  email:
39
182
  - gudao.luo@gmail.com
40
183
  executables:
@@ -44,13 +187,31 @@ extensions: []
44
187
  extra_rdoc_files: []
45
188
 
46
189
  files:
190
+ - .DS_Store
47
191
  - Gemfile
192
+ - Gemfile.lock
48
193
  - Rakefile
49
194
  - antetype.gemspec
50
195
  - bin/antetype
196
+ - features/how_base_works_cn.feature
197
+ - features/step_definitions/.DS_Store
198
+ - features/step_definitions/how_base_works_cn.rb
199
+ - features/support/env.rb
51
200
  - lib/antetype.rb
52
201
  - lib/antetype/base.rb
202
+ - lib/antetype/base/actions.rb
53
203
  - lib/antetype/version.rb
204
+ - pkg/antetype-0.0.3.gem
205
+ - tasks/cane.rake
206
+ - tasks/cucumber.rake
207
+ - tasks/flay.rake
208
+ - tasks/flog.rake
209
+ - tasks/hanna.rake
210
+ - tasks/helper.rb
211
+ - tasks/rake.rake
212
+ - tasks/rdoc.rake
213
+ - tasks/reek.rake
214
+ - tasks/stats.rake
54
215
  homepage: http://www.lycom.de
55
216
  licenses: []
56
217
 
@@ -77,6 +238,10 @@ rubyforge_project: antetype
77
238
  rubygems_version: 1.8.22
78
239
  signing_key:
79
240
  specification_version: 3
80
- summary: Write a gem summary
81
- test_files: []
82
-
241
+ summary: Learn how to develop the Gem package
242
+ test_files:
243
+ - features/how_base_works_cn.feature
244
+ - features/step_definitions/.DS_Store
245
+ - features/step_definitions/how_base_works_cn.rb
246
+ - features/support/env.rb
247
+ has_rdoc: