buildgem 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZDRmMWE2MWM4ZTYyZTdlMTNkZGM1ZDU5ODIyNDZjNDcxN2VjOTRmNA==
5
+ data.tar.gz: !binary |-
6
+ M2Q2ZGZhYmI2OTIzZjdkYjRlYTJkYTk1MDNkMGQ5YzYxNWFlYzkyMw==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ Nzk3MjZhODc2ZDBjYjY1MWQyZDI4MDRkZWRlYzJhODI0NzE5NWU2NWU3NDNl
10
+ MTkwNjM4ZGE4Y2IxMGY4NGNmMTE2YmI3ZTJmYTZiOGVjNDc3MzBjNGNiMWQy
11
+ ODlkZGU3NjRjYzY2ZDg3NDkwMTgxM2ZmYjIzMDI2ZmVlNmU2OTE=
12
+ data.tar.gz: !binary |-
13
+ NzZjZmM1ZmFiNjAxY2Y0OTA4OWU4YmYxZjAzMjU1MjcwMTg1NjE1Y2Q1MGVk
14
+ NThkODg2N2IxMTMxMTUzZThkYmI1ZWY1MTBkZGM3MDZlNGM2ZjJjNDM5ZGUx
15
+ ZWRlYzVmODRjYWVlNTc0M2RhNTg4NmE0YWQxOGJmNjQ0YjI3ZjU=
@@ -0,0 +1,7 @@
1
+ *~
2
+ *.gem
3
+ Gemfile.lock
4
+ .rbx
5
+ doc/
6
+ pkg/
7
+ .yardoc/
@@ -0,0 +1,6 @@
1
+ Buildgem changelog
2
+ ==================
3
+
4
+ ### v0.0.1 (April 18, 2013)
5
+
6
+ * Initial release
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'http://rubygems.org'
2
+ gemspec
data/LICENCE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (C) 2013 Kyrylo Silin
2
+
3
+ This software is provided 'as-is', without any express or implied
4
+ warranty. In no event will the authors be held liable for any damages
5
+ arising from the use of this software.
6
+
7
+ Permission is granted to anyone to use this software for any purpose,
8
+ including commercial applications, and to alter it and redistribute it
9
+ freely, subject to the following restrictions:
10
+
11
+ 1. The origin of this software must not be misrepresented; you must not
12
+ claim that you wrote the original software. If you use this software
13
+ in a product, an acknowledgment in the product documentation would be
14
+ appreciated but is not required.
15
+
16
+ 2. Altered source versions must be plainly marked as such, and must not be
17
+ misrepresented as being the original software.
18
+
19
+ 3. This notice may not be removed or altered from any source distribution.
@@ -0,0 +1,18 @@
1
+ Buildgem
2
+ ========
3
+
4
+ * Repository: [https://github.com/kyrylo/buildgem][repo]
5
+
6
+ Description
7
+ -----------
8
+
9
+ My personal template for a typical gem.
10
+
11
+ Installation
12
+ ------------
13
+
14
+ gem install buildgem
15
+
16
+ The project uses Zlib licence. See LICENCE file for more information.
17
+
18
+ [repo]: https://github.com/kyrylo/buildgem/ "Home page"
@@ -0,0 +1,15 @@
1
+ def quiet
2
+ ENV['VERBOSE'] ? '' : '-q'
3
+ end
4
+
5
+ def test_files
6
+ paths = FileList['spec/**/*_spec.rb']
7
+ paths.shuffle!.join(' ')
8
+ end
9
+
10
+ desc "Run tests"
11
+ task :test do
12
+ exec "bacon -Ispec #{ quiet } #{ test_files }"
13
+ end
14
+
15
+ task :default => :test
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.1
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../lib/buildgem'
4
+
5
+ Buildgem.build_gem(ARGV[0])
@@ -0,0 +1,16 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'buildgem'
3
+ s.version = File.read('VERSION')
4
+ s.date = Time.now.strftime('%Y-%m-%d')
5
+ s.summary = "Kyrylo's personal template for a gem"
6
+ s.description = 'It is not a general purpose library'
7
+ s.author = 'Kyrylo Silin'
8
+ s.email = 'kyrylosilin@gmail.com'
9
+ s.homepage = 'https://github.com/kyrylo/buildgem'
10
+ s.licenses = 'zlib'
11
+
12
+ s.files = `git ls-files`.split("\n")
13
+ s.bindir = 'bin'
14
+ s.require_path = 'lib'
15
+ s.executable = 'buildgem'
16
+ end
@@ -0,0 +1,255 @@
1
+ require 'fileutils'
2
+ require 'date'
3
+
4
+ module Buildgem
5
+
6
+ # The VERSION file must be in the root directory of the library.
7
+ VERSION_FILE = File.expand_path('../../VERSION', __FILE__)
8
+
9
+ VERSION = File.exist?(VERSION_FILE) ?
10
+ File.read(VERSION_FILE).chomp : '(could not find VERSION file)'
11
+
12
+ def self.build_gem(name)
13
+ if name
14
+ Gem.new(name)
15
+ else
16
+ puts 'Provide an argument, the gem name. Example: buildgem my_gem'
17
+ end
18
+ end
19
+
20
+ class Gem
21
+
22
+ def initialize(name)
23
+ @name = name
24
+
25
+ FileUtils.mkdir(name)
26
+ Dir.chdir(name)
27
+ FileUtils.mkdir('lib')
28
+ FileUtils.mkdir('spec')
29
+
30
+ File.open("lib/#{ name }.rb", 'w') do |f|
31
+ f.write(gem_body)
32
+ end
33
+
34
+ File.open('CHANGELOG.md', 'w') do |f|
35
+ f.write(changelog)
36
+ end
37
+
38
+ File.open('VERSION', 'w') do |f|
39
+ f.write(version)
40
+ end
41
+
42
+ File.open('.gitignore', 'w') do |f|
43
+ f.write(gitignore)
44
+ end
45
+
46
+ File.open('Gemfile', 'w') do |f|
47
+ f.write(gemfile)
48
+ end
49
+
50
+ File.open('LICENCE', 'w') do |f|
51
+ f.write(licence)
52
+ end
53
+
54
+ File.open('Rakefile', 'w') do |f|
55
+ f.write(rakefile)
56
+ end
57
+
58
+ File.open('spec/helper.rb', 'w') do |f|
59
+ f.write(spec_helper)
60
+ end
61
+
62
+ File.open("spec/#{ name }_spec.rb", 'w') do |f|
63
+ f.write(first_spec)
64
+ end
65
+
66
+ File.open("#{ name }.gemspec", 'w') do |f|
67
+ f.write(gemspec)
68
+ end
69
+
70
+ File.open("README.md", 'w') do |f|
71
+ f.write(readme)
72
+ end
73
+ end
74
+
75
+ private
76
+
77
+ def gem_body
78
+ <<-BODY
79
+ module #{ capitalize(@name) }
80
+
81
+ # The VERSION file must be in the root directory of the library.
82
+ VERSION_FILE = File.expand_path('../../VERSION', __FILE__)
83
+
84
+ VERSION = File.exist?(VERSION_FILE) ?
85
+ File.read(VERSION_FILE).chomp : '(could not find VERSION file)'
86
+
87
+ end
88
+ BODY
89
+ end
90
+
91
+ def changelog
92
+ <<-BODY
93
+ #{ n = capitalize(@name) } changelog
94
+ #{ '=' * n.size }
95
+
96
+ ### v0.0.0 (#{ Date::MONTHNAMES[Date.today.month] } 01, #{ Date.today.year })
97
+
98
+ * Initial release
99
+ BODY
100
+ end
101
+
102
+ def version
103
+ '0.0.0'
104
+ end
105
+
106
+ def gitignore
107
+ <<-BODY
108
+ *~
109
+ *.gem
110
+ Gemfile.lock
111
+ .rbx
112
+ doc/
113
+ pkg/
114
+ .yardoc/
115
+ BODY
116
+ end
117
+
118
+ def gemfile
119
+ <<-BODY
120
+ source 'http://rubygems.org'
121
+ gemspec
122
+ BODY
123
+ end
124
+
125
+ def licence
126
+ <<-BODY
127
+ Copyright (C) #{ Date.today.year } Kyrylo Silin
128
+
129
+ This software is provided 'as-is', without any express or implied
130
+ warranty. In no event will the authors be held liable for any damages
131
+ arising from the use of this software.
132
+
133
+ Permission is granted to anyone to use this software for any purpose,
134
+ including commercial applications, and to alter it and redistribute it
135
+ freely, subject to the following restrictions:
136
+
137
+ 1. The origin of this software must not be misrepresented; you must not
138
+ claim that you wrote the original software. If you use this software
139
+ in a product, an acknowledgment in the product documentation would be
140
+ appreciated but is not required.
141
+
142
+ 2. Altered source versions must be plainly marked as such, and must not be
143
+ misrepresented as being the original software.
144
+
145
+ 3. This notice may not be removed or altered from any source distribution.
146
+ BODY
147
+ end
148
+
149
+ def rakefile
150
+ <<-'BODY'
151
+ def quiet
152
+ ENV['VERBOSE'] ? '' : '-q'
153
+ end
154
+
155
+ def test_files
156
+ paths = FileList['spec/**/*_spec.rb']
157
+ paths.shuffle!.join(' ')
158
+ end
159
+
160
+ desc "Run tests"
161
+ task :test do
162
+ exec "bacon -Ispec #{ quiet } #{ test_files }"
163
+ end
164
+
165
+ task :default => :test
166
+ BODY
167
+ end
168
+
169
+ def spec_helper
170
+ <<-BODY
171
+ require 'bacon'
172
+ require 'pry'
173
+
174
+ require_relative '../lib/#{ @name }'
175
+
176
+ puts "Ruby: #{ RUBY_VERSION }; #{ capitalize(@name) } version: #{ version }"
177
+ BODY
178
+ end
179
+
180
+ def first_spec
181
+ <<-BODY
182
+ require_relative 'helper'
183
+
184
+ describe #{ capitalize(@name) } do
185
+ it "works" do
186
+ true.should == true
187
+ end
188
+ end
189
+ BODY
190
+ end
191
+
192
+ def gemspec
193
+ <<-BODY
194
+ Gem::Specification.new do |s|
195
+ s.name = '#{ @name }'
196
+ s.version = File.read('VERSION')
197
+ s.date = Time.now.strftime('%Y-%m-%d')
198
+ s.summary = ''
199
+ s.description = ''
200
+ s.author = 'Kyrylo Silin'
201
+ s.email = 'kyrylosilin@gmail.com'
202
+ s.homepage = 'https://github.com/kyrylo/#{ @name }'
203
+ s.licenses = 'zlib'
204
+
205
+ s.require_path = 'lib'
206
+ s.files = `git ls-files`.split("\\n")
207
+
208
+ s.add_development_dependency 'bacon'
209
+ s.add_development_dependency 'rake'
210
+ s.add_development_dependency 'pry'
211
+ end
212
+ BODY
213
+ end
214
+
215
+ def readme
216
+ <<-BODY
217
+ #{ n = capitalize(@name) }
218
+ #{ '=' * n.size }
219
+
220
+ * Repository: [https://github.com/kyrylo/#{ @name }][repo]
221
+
222
+ Description
223
+ -----------
224
+
225
+ Installation
226
+ ------------
227
+
228
+ gem install #{ @name }
229
+
230
+ Synopsis
231
+ --------
232
+
233
+ Limitations
234
+ -----------
235
+
236
+ Credits
237
+ -------
238
+
239
+ Licence
240
+ -------
241
+
242
+ The project uses Zlib licence. See LICENCE file for more information.
243
+
244
+ [repo]: https://github.com/kyrylo/#{ @name }/ "Home page"
245
+ BODY
246
+ end
247
+
248
+ def capitalize(name)
249
+ name[0].capitalize +
250
+ name.gsub(/[_-]./) { |s| s[1].capitalize }.slice(1..-1)
251
+ end
252
+
253
+ end
254
+
255
+ end
@@ -0,0 +1,7 @@
1
+ require_relative 'helper'
2
+
3
+ describe Buildgem do
4
+ it "works" do
5
+ true.should == true
6
+ end
7
+ end
@@ -0,0 +1,6 @@
1
+ require 'bacon'
2
+ require 'pry'
3
+
4
+ require_relative '../lib/buildgem'
5
+
6
+ puts "Ruby: 1.9.3; Buildgem version: 0.0.0"
metadata ADDED
@@ -0,0 +1,57 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: buildgem
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Kyrylo Silin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-04-18 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: It is not a general purpose library
14
+ email: kyrylosilin@gmail.com
15
+ executables:
16
+ - buildgem
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - .gitignore
21
+ - CHANGELOG.md
22
+ - Gemfile
23
+ - LICENCE
24
+ - README.md
25
+ - Rakefile
26
+ - VERSION
27
+ - bin/buildgem
28
+ - buildgem.gemspec
29
+ - lib/buildgem.rb
30
+ - spec/buildgem_spec.rb
31
+ - spec/helper.rb
32
+ homepage: https://github.com/kyrylo/buildgem
33
+ licenses:
34
+ - zlib
35
+ metadata: {}
36
+ post_install_message:
37
+ rdoc_options: []
38
+ require_paths:
39
+ - lib
40
+ required_ruby_version: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ required_rubygems_version: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ requirements: []
51
+ rubyforge_project:
52
+ rubygems_version: 2.0.3
53
+ signing_key:
54
+ specification_version: 4
55
+ summary: Kyrylo's personal template for a gem
56
+ test_files: []
57
+ has_rdoc: