crystalline 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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