arigato 0.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/.document +3 -0
- data/.gitignore +10 -0
- data/.rspec +1 -0
- data/.travis.yml +4 -0
- data/.yardopts +1 -0
- data/ChangeLog.rdoc +4 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +42 -0
- data/Rakefile +34 -0
- data/arigato.gemspec +30 -0
- data/bin/thanks +5 -0
- data/lib/arigato/cli.rb +58 -0
- data/lib/arigato/themes/bootstrap/content.html.erb +18 -0
- data/lib/arigato/themes/bootstrap/layout.html.erb +18 -0
- data/lib/arigato/themes/default/content.html.erb +16 -0
- data/lib/arigato/themes/default/layout.html.erb +12 -0
- data/lib/arigato/version.rb +4 -0
- data/lib/arigato/view.rb +73 -0
- data/lib/arigato.rb +53 -0
- data/spec/arigato_spec.rb +8 -0
- data/spec/cli_spec.rb +101 -0
- data/spec/spec_helper.rb +14 -0
- data/spec/view_spec.rb +63 -0
- metadata +224 -0
data/.document
ADDED
data/.gitignore
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour --format documentation
|
data/.travis.yml
ADDED
data/.yardopts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--markup rdoc --title "arigato Documentation" --protected
|
data/ChangeLog.rdoc
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2013 tnantoka
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
= Arigato
|
2
|
+
|
3
|
+
{<img src="https://travis-ci.org/tnantoka/arigato.png?branch=master" alt="Build Status" />}[https://travis-ci.org/tnantoka/arigato]
|
4
|
+
{<img src="https://coveralls.io/repos/tnantoka/arigato/badge.png?branch=master" alt="Coverage Status" />}[https://coveralls.io/r/tnantoka/arigato]
|
5
|
+
{<img src="https://gemnasium.com/tnantoka/konnyaku.png" alt="Dependency Status" />}[https://gemnasium.com/tnantoka/konnyaku]
|
6
|
+
{<img src="https://codeclimate.com/github/tnantoka/arigato.png" alt="Code Climate" />}[https://codeclimate.com/github/tnantoka/arigato]
|
7
|
+
{<img src="http://api.coderwall.com/tnantoka/endorsecount.png" alt="endorse" />}[http://coderwall.com/tnantoka]
|
8
|
+
|
9
|
+
* {Homepage}[https://github.com/tnantoka/arigato#readme]
|
10
|
+
* {Issues}[https://github.com/tnantoka/arigato/issues]
|
11
|
+
* {Documentation}[http://rubydoc.info/gems/arigato/frames]
|
12
|
+
* {Email}[mailto:bornneet at livedoor.com]
|
13
|
+
|
14
|
+
== Description
|
15
|
+
|
16
|
+
Special Thanks Page Generator
|
17
|
+
|
18
|
+
== Features
|
19
|
+
|
20
|
+
Generate HTML or JSON, YAML, CSV form your Gemfile
|
21
|
+
|
22
|
+
== Examples
|
23
|
+
|
24
|
+
$ cd path/to/your_project
|
25
|
+
$ bundle
|
26
|
+
$ thanks g bootstrap
|
27
|
+
create thanks
|
28
|
+
create thanks/index.html
|
29
|
+
|
30
|
+
== Requirements
|
31
|
+
|
32
|
+
Ruby 1.9+
|
33
|
+
|
34
|
+
== Install
|
35
|
+
|
36
|
+
$ gem install arigato
|
37
|
+
|
38
|
+
== Copyright
|
39
|
+
|
40
|
+
Copyright (c) 2013 tnantoka
|
41
|
+
|
42
|
+
See LICENSE.txt for details.
|
data/Rakefile
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
begin
|
6
|
+
require 'bundler'
|
7
|
+
rescue LoadError => e
|
8
|
+
warn e.message
|
9
|
+
warn "Run `gem install bundler` to install Bundler."
|
10
|
+
exit -1
|
11
|
+
end
|
12
|
+
|
13
|
+
begin
|
14
|
+
Bundler.setup(:development)
|
15
|
+
rescue Bundler::BundlerError => e
|
16
|
+
warn e.message
|
17
|
+
warn "Run `bundle install` to install missing gems."
|
18
|
+
exit e.status_code
|
19
|
+
end
|
20
|
+
|
21
|
+
require 'rake'
|
22
|
+
|
23
|
+
require 'rubygems/tasks'
|
24
|
+
Gem::Tasks.new
|
25
|
+
|
26
|
+
require 'rspec/core/rake_task'
|
27
|
+
RSpec::Core::RakeTask.new
|
28
|
+
|
29
|
+
task :test => :spec
|
30
|
+
task :default => :spec
|
31
|
+
|
32
|
+
require 'yard'
|
33
|
+
YARD::Rake::YardocTask.new
|
34
|
+
task :doc => :yard
|
data/arigato.gemspec
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
require File.expand_path('../lib/arigato/version', __FILE__)
|
4
|
+
|
5
|
+
Gem::Specification.new do |gem|
|
6
|
+
gem.name = "arigato"
|
7
|
+
gem.version = Arigato::VERSION
|
8
|
+
gem.summary = 'Special thanks page generator'
|
9
|
+
gem.description = 'Generate HTML or JSON, YAML, CSV form your Gemfile'
|
10
|
+
gem.license = "MIT"
|
11
|
+
gem.authors = ["tnantoka"]
|
12
|
+
gem.email = "bornneet@livedoor.com"
|
13
|
+
gem.homepage = "https://github.com/tnantoka/arigato#readme"
|
14
|
+
|
15
|
+
gem.files = `git ls-files`.split($/)
|
16
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
17
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
|
+
gem.require_paths = ['lib']
|
19
|
+
|
20
|
+
gem.add_development_dependency 'bundler', '~> 1.3.2'
|
21
|
+
gem.add_development_dependency 'rake', '~> 0.8'
|
22
|
+
gem.add_development_dependency 'rspec', '~> 2.4'
|
23
|
+
gem.add_development_dependency 'rubygems-tasks', '~> 0.2'
|
24
|
+
gem.add_development_dependency 'yard', '~> 0.8'
|
25
|
+
gem.add_development_dependency 'simplecov'
|
26
|
+
gem.add_development_dependency 'coveralls'
|
27
|
+
|
28
|
+
gem.add_dependency 'thor', '~> 0.17.0'
|
29
|
+
gem.add_dependency 'bundler', '~> 1.3.2'
|
30
|
+
end
|
data/bin/thanks
ADDED
data/lib/arigato/cli.rb
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'arigato/version'
|
2
|
+
|
3
|
+
require 'thor'
|
4
|
+
require 'bundler'
|
5
|
+
require 'json'
|
6
|
+
require 'yaml'
|
7
|
+
require 'csv'
|
8
|
+
|
9
|
+
module Arigato
|
10
|
+
class CLI < Thor
|
11
|
+
include Thor::Actions
|
12
|
+
|
13
|
+
HTML_DIR = 'thanks'
|
14
|
+
HTML_FILE = File.join(HTML_DIR, 'index.html')
|
15
|
+
|
16
|
+
map 'g' => :generate
|
17
|
+
|
18
|
+
map '--version' => :version
|
19
|
+
map '-v' => :version
|
20
|
+
|
21
|
+
desc 'generate [THEME] [options]', 'Generate HTML from Gemfile'
|
22
|
+
option :file, aliases: '-f', desc: 'Path to Gemfile', default: './Gemfile'
|
23
|
+
def generate(theme = 'default')
|
24
|
+
empty_directory(HTML_DIR)
|
25
|
+
gemfile = options[:file]
|
26
|
+
view = View.new(theme, gemfile)
|
27
|
+
create_file(HTML_FILE, view.render)
|
28
|
+
end
|
29
|
+
|
30
|
+
desc '-v, [--version]', 'Prints the version'
|
31
|
+
def version
|
32
|
+
say "Arigato #{Arigato::VERSION}"
|
33
|
+
end
|
34
|
+
|
35
|
+
desc 'themes', 'Shows all themes'
|
36
|
+
def themes
|
37
|
+
puts Dir::entries(Arigato.themes_dir).reject { |e| e =~ /^\./ }
|
38
|
+
end
|
39
|
+
|
40
|
+
desc 'json [FILE]', 'Displays thanks as JSON'
|
41
|
+
def json(file = './Gemfile')
|
42
|
+
say JSON.pretty_generate(Arigato.specs_array(file))
|
43
|
+
end
|
44
|
+
|
45
|
+
desc 'yaml [FILE]', 'Displays thanks as YAML'
|
46
|
+
def yaml(file = './Gemfile')
|
47
|
+
say Arigato.specs_hash(file).to_yaml
|
48
|
+
end
|
49
|
+
|
50
|
+
desc 'csv [FILE]', 'Displays thanks as CSV'
|
51
|
+
def csv(file = './Gemfile')
|
52
|
+
Arigato.specs_array(file, false).each do |spec|
|
53
|
+
say spec.values.to_csv
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<div class="page-header">
|
2
|
+
<h1><%= @title %></h1>
|
3
|
+
</div>
|
4
|
+
|
5
|
+
<table class="table table-condensed table-striped table-hover">
|
6
|
+
<%- @specs.each do |spec| -%>
|
7
|
+
<tr>
|
8
|
+
<td><%= link_to spec.name, spec.homepage %></td>
|
9
|
+
<td><%= author(spec) %></td>
|
10
|
+
</tr>
|
11
|
+
<%- end -%>
|
12
|
+
</table>
|
13
|
+
|
14
|
+
<hr />
|
15
|
+
|
16
|
+
</p>
|
17
|
+
<a href="/" class="btn">Back to Home</a>
|
18
|
+
</p>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="UTF-8" />
|
5
|
+
<title><%= @title %></title>
|
6
|
+
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet">
|
7
|
+
<link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-responsive.min.css" rel="stylesheet">
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<div class="container">
|
12
|
+
<%= content -%>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
<script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script>
|
16
|
+
|
17
|
+
</body>
|
18
|
+
</html>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<h1><%= @title %></h1>
|
2
|
+
|
3
|
+
<table>
|
4
|
+
<%- @specs.each do |spec| -%>
|
5
|
+
<tr>
|
6
|
+
<td><%= link_to spec.name, spec.homepage %></td>
|
7
|
+
<td><%= author(spec) %></td>
|
8
|
+
</tr>
|
9
|
+
<%- end -%>
|
10
|
+
</table>
|
11
|
+
|
12
|
+
<hr />
|
13
|
+
|
14
|
+
</p>
|
15
|
+
<a href="/">Back to Home</a>
|
16
|
+
</p>
|
data/lib/arigato/view.rb
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'arigato/version'
|
2
|
+
|
3
|
+
module Arigato
|
4
|
+
class View
|
5
|
+
|
6
|
+
attr_accessor :theme, :layout, :gemfile, :title
|
7
|
+
|
8
|
+
def initialize(theme, gemfile = './Gemfile', layout = true)
|
9
|
+
@theme = theme
|
10
|
+
@specs = Arigato.specs(gemfile)
|
11
|
+
@layout = layout
|
12
|
+
@title = 'Special Thanks'
|
13
|
+
end
|
14
|
+
|
15
|
+
def render
|
16
|
+
@layout ? render_with_layout : render_without_layout
|
17
|
+
end
|
18
|
+
|
19
|
+
def render_without_layout
|
20
|
+
content
|
21
|
+
end
|
22
|
+
|
23
|
+
def render_with_layout
|
24
|
+
layout
|
25
|
+
end
|
26
|
+
|
27
|
+
def content
|
28
|
+
erb(content_file).result(binding)
|
29
|
+
end
|
30
|
+
|
31
|
+
def layout
|
32
|
+
erb(layout_file).result(binding)
|
33
|
+
end
|
34
|
+
|
35
|
+
def erb(path)
|
36
|
+
erb = ERB.new(File.read(path), nil, '-')
|
37
|
+
erb.filename = path
|
38
|
+
erb
|
39
|
+
end
|
40
|
+
|
41
|
+
def theme_dir
|
42
|
+
Pathname.new(File.join(Arigato.themes_dir, theme))
|
43
|
+
end
|
44
|
+
|
45
|
+
def content_file
|
46
|
+
file('content')
|
47
|
+
end
|
48
|
+
|
49
|
+
def layout_file
|
50
|
+
file('layout')
|
51
|
+
end
|
52
|
+
|
53
|
+
def link_to(label, href, target = '_blank')
|
54
|
+
if href
|
55
|
+
%!<a href="#{href}" target="#{target}">#{label}</a>!
|
56
|
+
else
|
57
|
+
label
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def author(spec)
|
62
|
+
spec.author ? "by #{spec.author}" : ''
|
63
|
+
end
|
64
|
+
|
65
|
+
private
|
66
|
+
|
67
|
+
def file(name)
|
68
|
+
File.join(theme_dir, "#{name}.html.erb")
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
data/lib/arigato.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'arigato/version'
|
2
|
+
require 'arigato/cli'
|
3
|
+
require 'arigato/view'
|
4
|
+
|
5
|
+
module Arigato
|
6
|
+
class << self
|
7
|
+
def themes_dir
|
8
|
+
Pathname.new(File.join(File.dirname(__FILE__), 'arigato', 'themes'))
|
9
|
+
end
|
10
|
+
|
11
|
+
def specs(file)
|
12
|
+
path = Pathname.new(file)
|
13
|
+
dsl = Bundler::Dsl.new
|
14
|
+
dsl.eval_gemfile(file)
|
15
|
+
specs = dsl.to_definition(nil, {}).specs.to_a
|
16
|
+
|
17
|
+
specs.unshift(self.spec('Ruby', 'http://www.ruby-lang.org/', 'Yukihiro Matsumoto'))
|
18
|
+
|
19
|
+
specs.reject { |spec| spec.name == 'arigato' }
|
20
|
+
end
|
21
|
+
|
22
|
+
def specs_array(file, labeld = true)
|
23
|
+
specs(file).map do |spec|
|
24
|
+
{
|
25
|
+
name: spec.name,
|
26
|
+
homepage: spec.homepage,
|
27
|
+
author: spec.author
|
28
|
+
}
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def specs_hash(file)
|
33
|
+
hash = {}
|
34
|
+
specs(file).each do |spec|
|
35
|
+
hash[spec.name] = {
|
36
|
+
homepage: spec.homepage,
|
37
|
+
author: spec.author
|
38
|
+
}
|
39
|
+
end
|
40
|
+
hash
|
41
|
+
end
|
42
|
+
|
43
|
+
def spec(name, homepage, author)
|
44
|
+
Gem::Specification.new do |gem|
|
45
|
+
gem.name = name
|
46
|
+
gem.authors = [author]
|
47
|
+
gem.homepage = homepage
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
data/spec/cli_spec.rb
ADDED
@@ -0,0 +1,101 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'arigato'
|
3
|
+
|
4
|
+
module Arigato
|
5
|
+
|
6
|
+
describe CLI do
|
7
|
+
subject do
|
8
|
+
CLI.new
|
9
|
+
end
|
10
|
+
|
11
|
+
describe '#version' do
|
12
|
+
it 'displays version' do
|
13
|
+
expect(capture(:stdout) { subject.invoke(:version) }.strip).to match(VERSION)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe '#themes' do
|
18
|
+
it 'displays all themes' do
|
19
|
+
themes = capture(:stdout) { subject.invoke(:themes) }.strip
|
20
|
+
%w(default bootstrap).each do |theme|
|
21
|
+
expect(themes).to match(theme)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe '#json' do
|
27
|
+
it 'displays specs as JSON' do
|
28
|
+
json = capture(:stdout) { subject.invoke(:json) }.strip
|
29
|
+
['"name": "bundler",', '"name": "thor",'].each do |name|
|
30
|
+
expect(json).to match(name)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe '#yaml' do
|
36
|
+
it 'displays specs as YAML' do
|
37
|
+
yaml = capture(:stdout) { subject.invoke(:yaml) }.strip
|
38
|
+
['bundler:', 'thor:'].each do |name|
|
39
|
+
expect(yaml).to match(name)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe '#csv' do
|
45
|
+
it 'displays specs as CSV' do
|
46
|
+
yaml = capture(:stdout) { subject.invoke(:csv) }.strip
|
47
|
+
['bundler,', 'thor,'].each do |name|
|
48
|
+
expect(yaml).to match(name)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
describe '#generate' do
|
54
|
+
before(:each) do
|
55
|
+
FileUtils.rm_rf(CLI::HTML_DIR) if File.exists?(CLI::HTML_DIR)
|
56
|
+
end
|
57
|
+
|
58
|
+
context 'when theme is default' do
|
59
|
+
before(:each) do
|
60
|
+
subject.invoke(:generate, nil, file: 'Gemfile')
|
61
|
+
end
|
62
|
+
it 'makes thanks directory' do
|
63
|
+
expect(File.exists?(CLI::HTML_DIR)).to be
|
64
|
+
end
|
65
|
+
it 'creates HTML file' do
|
66
|
+
expect(File.exists?(CLI::HTML_FILE)).to be
|
67
|
+
end
|
68
|
+
it 'generate HTML with specs' do
|
69
|
+
%w(thor bundler).each do |name|
|
70
|
+
expect(File.read(CLI::HTML_FILE)).to match(name)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
context 'when theme is bootstrap' do
|
76
|
+
before(:each) do
|
77
|
+
subject.invoke(:generate, ['bootstrap'], file: 'Gemfile')
|
78
|
+
end
|
79
|
+
it 'generate HTML with bootstrap' do
|
80
|
+
expect(File.read(CLI::HTML_FILE)).to match('bootstrap')
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
86
|
+
|
87
|
+
# https://github.com/wycats/thor/blob/master/spec/helper.rb
|
88
|
+
def capture(stream)
|
89
|
+
begin
|
90
|
+
stream = stream.to_s
|
91
|
+
eval "$#{stream} = StringIO.new"
|
92
|
+
yield
|
93
|
+
result = eval("$#{stream}").string
|
94
|
+
ensure
|
95
|
+
eval("$#{stream} = #{stream.upcase}")
|
96
|
+
end
|
97
|
+
|
98
|
+
result
|
99
|
+
end
|
100
|
+
|
101
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'arigato/version'
|
3
|
+
|
4
|
+
require 'simplecov'
|
5
|
+
require 'coveralls'
|
6
|
+
Coveralls.wear!
|
7
|
+
|
8
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
|
9
|
+
SimpleCov::Formatter::HTMLFormatter,
|
10
|
+
Coveralls::SimpleCov::Formatter
|
11
|
+
]
|
12
|
+
SimpleCov.start
|
13
|
+
|
14
|
+
include Arigato
|
data/spec/view_spec.rb
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'arigato'
|
3
|
+
|
4
|
+
module Arigato
|
5
|
+
|
6
|
+
describe View do
|
7
|
+
|
8
|
+
context 'when @layout is true' do
|
9
|
+
subject do
|
10
|
+
View.new('default')
|
11
|
+
end
|
12
|
+
describe '#render' do
|
13
|
+
it 'returns themed HTML with layout' do
|
14
|
+
expect(subject.render).to match('<!doctype html>')
|
15
|
+
end
|
16
|
+
it 'contains specs name' do
|
17
|
+
%w(thor bundler).each do |name|
|
18
|
+
expect(subject.render).to match(name)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
it 'contains specs homepage' do
|
22
|
+
%w(http://gembundler.com http://whatisthor.com/).each do |homepage|
|
23
|
+
expect(subject.render).to match(homepage)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
it 'contains specs author' do
|
27
|
+
%w(Arko Yehuda Katz).each do |author|
|
28
|
+
expect(subject.render).to match(author)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context 'when @layout is false' do
|
35
|
+
subject do
|
36
|
+
View.new('bootstrap', 'Gemfile', false)
|
37
|
+
end
|
38
|
+
describe '#render' do
|
39
|
+
it 'returns themed HTML without layout' do
|
40
|
+
expect(subject.render).to_not match('<!doctype html>')
|
41
|
+
end
|
42
|
+
it 'contains specs name' do
|
43
|
+
%w(thor bundler).each do |name|
|
44
|
+
expect(subject.render).to match(name)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
it 'contains specs homepage' do
|
48
|
+
%w(http://gembundler.com http://whatisthor.com/).each do |homepage|
|
49
|
+
expect(subject.render).to match(homepage)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
it 'contains specs author' do
|
53
|
+
%w(Arko Yehuda Katz).each do |author|
|
54
|
+
expect(subject.render).to match(author)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
metadata
ADDED
@@ -0,0 +1,224 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: arigato
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- tnantoka
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-03-27 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.3.2
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.3.2
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rake
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0.8'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0.8'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rspec
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '2.4'
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.4'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rubygems-tasks
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0.2'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0.2'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: yard
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ~>
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0.8'
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0.8'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: simplecov
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: coveralls
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: thor
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ~>
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 0.17.0
|
134
|
+
type: :runtime
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ~>
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: 0.17.0
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: bundler
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ~>
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: 1.3.2
|
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: 1.3.2
|
158
|
+
description: Generate HTML or JSON, YAML, CSV form your Gemfile
|
159
|
+
email: bornneet@livedoor.com
|
160
|
+
executables:
|
161
|
+
- thanks
|
162
|
+
extensions: []
|
163
|
+
extra_rdoc_files: []
|
164
|
+
files:
|
165
|
+
- .document
|
166
|
+
- .gitignore
|
167
|
+
- .rspec
|
168
|
+
- .travis.yml
|
169
|
+
- .yardopts
|
170
|
+
- ChangeLog.rdoc
|
171
|
+
- Gemfile
|
172
|
+
- LICENSE.txt
|
173
|
+
- README.rdoc
|
174
|
+
- Rakefile
|
175
|
+
- arigato.gemspec
|
176
|
+
- bin/thanks
|
177
|
+
- lib/arigato.rb
|
178
|
+
- lib/arigato/cli.rb
|
179
|
+
- lib/arigato/themes/bootstrap/content.html.erb
|
180
|
+
- lib/arigato/themes/bootstrap/layout.html.erb
|
181
|
+
- lib/arigato/themes/default/content.html.erb
|
182
|
+
- lib/arigato/themes/default/layout.html.erb
|
183
|
+
- lib/arigato/version.rb
|
184
|
+
- lib/arigato/view.rb
|
185
|
+
- spec/arigato_spec.rb
|
186
|
+
- spec/cli_spec.rb
|
187
|
+
- spec/spec_helper.rb
|
188
|
+
- spec/view_spec.rb
|
189
|
+
homepage: https://github.com/tnantoka/arigato#readme
|
190
|
+
licenses:
|
191
|
+
- MIT
|
192
|
+
post_install_message:
|
193
|
+
rdoc_options: []
|
194
|
+
require_paths:
|
195
|
+
- lib
|
196
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
197
|
+
none: false
|
198
|
+
requirements:
|
199
|
+
- - ! '>='
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
segments:
|
203
|
+
- 0
|
204
|
+
hash: -3883293297200897022
|
205
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
206
|
+
none: false
|
207
|
+
requirements:
|
208
|
+
- - ! '>='
|
209
|
+
- !ruby/object:Gem::Version
|
210
|
+
version: '0'
|
211
|
+
segments:
|
212
|
+
- 0
|
213
|
+
hash: -3883293297200897022
|
214
|
+
requirements: []
|
215
|
+
rubyforge_project:
|
216
|
+
rubygems_version: 1.8.25
|
217
|
+
signing_key:
|
218
|
+
specification_version: 3
|
219
|
+
summary: Special thanks page generator
|
220
|
+
test_files:
|
221
|
+
- spec/arigato_spec.rb
|
222
|
+
- spec/cli_spec.rb
|
223
|
+
- spec/spec_helper.rb
|
224
|
+
- spec/view_spec.rb
|