crystalline 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ - 1.9.3
5
+ - jruby-19mode # JRuby in 1.9 mode
6
+ - rbx-19mode
data/CHANGELOG CHANGED
@@ -1,3 +1,13 @@
1
+ 1.1.0:
2
+ Implemented Generators for various files:
3
+ - Rakefile - includes crystalline tasks and bundler/setup
4
+ - spec_helper - includes crystalline spec_helper/helper macros, and
5
+ - travis - creates a standard .travis.yml file that tests all major ruby
6
+ versions >1.9 (including JRuby and Rubinius)
7
+ - README - creates a standard boilerplate README.md that includes badge
8
+ links for common services (travis, coveralls, codeclimate, and
9
+ gem version from fury)
10
+
1
11
  1.0.0:
2
12
  Basic functionality -- include 'crystalline/spec' in your spec_helper, include
3
13
  'crystalline/rake' in your rake file. Receive usefule stuff.
data/bin/crystallize ADDED
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'gli'
4
+ begin # XXX: Remove this begin/rescue before distributing your app
5
+ require 'crystalline'
6
+ rescue LoadError
7
+ STDERR.puts "In development, you need to use `bundle exec bin/crystalline` to run your app"
8
+ STDERR.puts "At install-time, RubyGems will make sure lib, etc. are in the load path"
9
+ exit 64
10
+ end
11
+
12
+ include GLI::App
13
+
14
+ program_desc ''
15
+
16
+ version Crystalline::VERSION
17
+
18
+ generator_command Crystalline::Generators::Readme
19
+ generator_command Crystalline::Generators::SpecHelper
20
+ generator_command Crystalline::Generators::Rakefile
21
+
22
+ exit run(ARGV)
data/crystalline.gemspec CHANGED
@@ -25,6 +25,9 @@ Gem::Specification.new do |gem|
25
25
 
26
26
  gem.add_dependency "rake"
27
27
 
28
+ gem.add_dependency 'gli'
29
+ gem.add_dependency 'tilt'
30
+
28
31
  gem.files = `git ls-files`.split($/)
29
32
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
30
33
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
data/lib/crystalline.rb CHANGED
@@ -1,3 +1,4 @@
1
1
  require "crystalline/version"
2
2
 
3
- require 'pry'
3
+ require 'crystalline/generators'
4
+ require 'crystalline/gli_helpers'
@@ -0,0 +1,8 @@
1
+ require 'tilt'
2
+
3
+ require 'crystalline/generators/generator'
4
+
5
+ require 'crystalline/generators/readme'
6
+ require 'crystalline/generators/rakefile'
7
+ require 'crystalline/generators/travis'
8
+ require 'crystalline/generators/spec_helper'
@@ -0,0 +1,49 @@
1
+ module Crystalline
2
+ module Generators
3
+ class Generator
4
+ def self.generate!(user, name)
5
+ new(user, name).generate!
6
+ end
7
+
8
+ def initialize(user, name)
9
+ @user = user
10
+ @name = name
11
+ end
12
+
13
+ def template
14
+ @template ||= Tilt.new path
15
+ end
16
+
17
+ def self.generate!(user, name)
18
+ new(user, name).generate!
19
+ end
20
+
21
+ def generate!
22
+ template.render self
23
+ end
24
+
25
+ def self.template_name
26
+ "#{file_name}.erb"
27
+ end
28
+
29
+ def self.prefix
30
+ ''
31
+ end
32
+
33
+ def self.hidden?
34
+ false
35
+ end
36
+
37
+ def path
38
+ File.expand_path(
39
+ File.join(
40
+ File.dirname(File.expand_path(__FILE__)),
41
+ '..',
42
+ 'templates',
43
+ self.class.template_name
44
+ )
45
+ )
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,13 @@
1
+ module Crystalline
2
+ module Generators
3
+ class Rakefile < Generator
4
+ def self.file_name
5
+ 'Rakefile.erb'
6
+ end
7
+
8
+ def self.command_name
9
+ :Rakefile
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,30 @@
1
+ module Crystalline
2
+ module Generators
3
+ class Readme < Generator
4
+ def self.file_name
5
+ 'README.md'
6
+ end
7
+
8
+ def self.command_name
9
+ :readme
10
+ end
11
+
12
+ def build_status_badge
13
+ "[![Build Status](https://travis-ci.org/#{@user}/#{@name}.png?branch=master)](http://travis-ci.org/#{@user}/#{@name})"
14
+ end
15
+
16
+ def code_climate_badge
17
+ "[![Code Climate](https://codeclimate.com/github/#{@user}/#{@name}.png)](https://codeclimate.com/github/#{@user}/#{@name})"
18
+ end
19
+
20
+ def coverage_status_badge
21
+ "[![Coverage Status](https://coveralls.io/repos/#{@user}/#{@name}/badge.png?branch=master)](https://coveralls.io/r/#{@user}/#{@name})"
22
+ end
23
+
24
+ def gem_version_badge
25
+ "[![Gem Version](https://badge.fury.io/rb/#{@name}.png)](http://badge.fury.io/rb/#{@name})"
26
+ end
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,17 @@
1
+ module Crystalline
2
+ module Generators
3
+ class SpecHelper < Generator
4
+ def self.file_name
5
+ 'spec_helper.rb'
6
+ end
7
+
8
+ def self.command_name
9
+ :spec_helper
10
+ end
11
+
12
+ def self.prefix
13
+ 'spec'
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Crystalline
2
+ module Generators
3
+ class Travis < Generator
4
+ def self.file_name
5
+ 'travis.yml'
6
+ end
7
+
8
+ def self.command_name
9
+ :travis
10
+ end
11
+
12
+ def self.hidden?
13
+ true
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,20 @@
1
+ def generator_command(klass)
2
+ desc "Generate a #{klass.file_name} for the current app"
3
+ command klass.command_name do |c|
4
+ c.action do |global, options, args|
5
+ gem_name = File.basename(File.expand_path('.'))
6
+ user = ENV['USER']
7
+
8
+ file_name = if klass.hidden? then ".#{klass.file_name}" else klass.file_name end
9
+ file_path = File.join('./', klass.prefix, file_name)
10
+
11
+ if File.exists?(file_path)
12
+ puts klass.generate!(user, gem_name)
13
+ else
14
+ File.open(file_path, 'w') do |f|
15
+ f.puts klass.generate!(user, gem_name)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,23 @@
1
+ # <%= @name %> <%= gem_version_badge %><%= build_status_badge %><%= code_climate_badge %><%= coverage_status_badge %>
2
+
3
+ ## Installation
4
+
5
+ Add this line to your application's Gemfile:
6
+
7
+ gem '<%= @name %>'
8
+
9
+ And then execute:
10
+
11
+ $ bundle
12
+
13
+ Or install it yourself as:
14
+
15
+ $ gem install <%= @name %>
16
+
17
+ ## Contributing
18
+
19
+ 1. Fork it
20
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
21
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
22
+ 4. Push to the branch (`git push origin my-new-feature`)
23
+ 5. Create new Pull Request
@@ -0,0 +1,3 @@
1
+ require "bundler/gem_tasks"
2
+
3
+ require 'crystalline/rake'
@@ -0,0 +1,8 @@
1
+ require 'crystalline/spec'
2
+
3
+ #include helpers
4
+ Dir["./spec/helpers/*.rb"].each { |file| require file }
5
+
6
+ #include shared examples
7
+ Dir["./spec/shared/*_examples.rb"].each { |file| require file }
8
+
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ - 1.9.3
5
+ - jruby-19mode # JRuby in 1.9 mode
6
+ - rbx-19mode
@@ -1,3 +1,3 @@
1
1
  module Crystalline
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crystalline
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-15 00:00:00.000000000 Z
12
+ date: 2013-04-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -139,23 +139,65 @@ dependencies:
139
139
  - - ! '>='
140
140
  - !ruby/object:Gem::Version
141
141
  version: '0'
142
+ - !ruby/object:Gem::Dependency
143
+ name: gli
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ type: :runtime
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ - !ruby/object:Gem::Dependency
159
+ name: tilt
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ type: :runtime
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
142
174
  description: A tool which installs common Rake tasks, Gem dependencies, and RSpec
143
175
  Helpers used in my gems.
144
176
  email:
145
177
  - jfredett@gmail.com
146
- executables: []
178
+ executables:
179
+ - crystallize
147
180
  extensions: []
148
181
  extra_rdoc_files: []
149
182
  files:
150
183
  - .gitignore
184
+ - .travis.yml
151
185
  - CHANGELOG
152
186
  - Gemfile
153
187
  - LICENSE.txt
154
188
  - README.md
155
189
  - Rakefile
190
+ - bin/crystallize
156
191
  - crystalline.gemspec
157
192
  - lib/.rvmrc
158
193
  - lib/crystalline.rb
194
+ - lib/crystalline/generators.rb
195
+ - lib/crystalline/generators/generator.rb
196
+ - lib/crystalline/generators/rakefile.rb
197
+ - lib/crystalline/generators/readme.rb
198
+ - lib/crystalline/generators/spec_helper.rb
199
+ - lib/crystalline/generators/travis.rb
200
+ - lib/crystalline/gli_helpers.rb
159
201
  - lib/crystalline/rake.rb
160
202
  - lib/crystalline/rake/flay.rb
161
203
  - lib/crystalline/rake/flog.rb
@@ -165,6 +207,10 @@ files:
165
207
  - lib/crystalline/spec/macros.rb
166
208
  - lib/crystalline/spec/mock.rb
167
209
  - lib/crystalline/spec/rspec.rb
210
+ - lib/crystalline/templates/README.md.erb
211
+ - lib/crystalline/templates/Rakefile.erb
212
+ - lib/crystalline/templates/spec_helper.rb.erb
213
+ - lib/crystalline/templates/travis.yml.erb
168
214
  - lib/crystalline/version.rb
169
215
  homepage: ''
170
216
  licenses: []
@@ -180,7 +226,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
180
226
  version: '0'
181
227
  segments:
182
228
  - 0
183
- hash: 2333299918432768169
229
+ hash: 692393435356578607
184
230
  required_rubygems_version: !ruby/object:Gem::Requirement
185
231
  none: false
186
232
  requirements:
@@ -189,7 +235,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
189
235
  version: '0'
190
236
  segments:
191
237
  - 0
192
- hash: 2333299918432768169
238
+ hash: 692393435356578607
193
239
  requirements: []
194
240
  rubyforge_project:
195
241
  rubygems_version: 1.8.24