happy_new_year 0.0.1
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/.gitignore +18 -0
- data/.rspec +2 -0
- data/Gemfile +9 -0
- data/LICENSE.txt +22 -0
- data/README.md +115 -0
- data/Rakefile +1 -0
- data/bin/happynewyear +31 -0
- data/happy_new_year.gemspec +27 -0
- data/lib/happy_new_year/version.rb +3 -0
- data/lib/happy_new_year_core.rb +97 -0
- data/lib/happy_new_year_dsl.rb +31 -0
- data/lib/happy_new_year_dsl_model.rb +29 -0
- data/spec/happy_new_year_core_spec.rb +130 -0
- data/spec/spec_helper.rb +9 -0
- metadata +119 -0
data/.gitignore
ADDED
data/.rspec
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 tbpgr
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,115 @@
|
|
1
|
+
# HappyNewYear
|
2
|
+
|
3
|
+
HappyNewYear generates 'happy new year html-letters'.
|
4
|
+
|
5
|
+
## Purpose
|
6
|
+
* Send new year messages by html-marquee.
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
Add this line to your application's Gemfile:
|
11
|
+
|
12
|
+
gem 'happy_new_year'
|
13
|
+
|
14
|
+
And then execute:
|
15
|
+
|
16
|
+
$ bundle
|
17
|
+
|
18
|
+
Or install it yourself as:
|
19
|
+
|
20
|
+
$ gem install happy_new_year
|
21
|
+
|
22
|
+
## Usage
|
23
|
+
### init setting file(Happynewyearfile)
|
24
|
+
~~~bash
|
25
|
+
happynewyear init
|
26
|
+
~~~
|
27
|
+
|
28
|
+
Happynewyearfile
|
29
|
+
~~~ruby
|
30
|
+
# encoding: utf-8
|
31
|
+
|
32
|
+
# filename
|
33
|
+
# filename is required
|
34
|
+
# filename allow only String
|
35
|
+
# filename's default value => "NewYear"
|
36
|
+
filename "NewYear"
|
37
|
+
|
38
|
+
# newyear letter from(your name)
|
39
|
+
# from is required
|
40
|
+
# from allow only String
|
41
|
+
# from's default value => "your name"
|
42
|
+
from "your name"
|
43
|
+
|
44
|
+
# newyear letter common_message
|
45
|
+
# common_message is required
|
46
|
+
# common_message allow only String
|
47
|
+
# common_message's default value => "common_message"
|
48
|
+
common_message "common_message"
|
49
|
+
|
50
|
+
# newyear letter tos(target names)
|
51
|
+
# tos is required
|
52
|
+
# tos allow only Array
|
53
|
+
# tos's default value => ["target name1", "target name2"]
|
54
|
+
tos ["target name1", "target name2"]
|
55
|
+
|
56
|
+
# newyear letter specific_messages(for each target)
|
57
|
+
# specific_messages is required
|
58
|
+
# specific_messages allow only Array
|
59
|
+
# specific_messages's default value => ["specific message1", "specific message2"]
|
60
|
+
specific_messages ["specific message1", "specific message2"]
|
61
|
+
~~~
|
62
|
+
|
63
|
+
### edit setting file(Happynewyearfile) manually
|
64
|
+
Happynewyearfile
|
65
|
+
~~~ruby
|
66
|
+
# encoding: utf-8
|
67
|
+
filename "NewYear"
|
68
|
+
from "tbpgr"
|
69
|
+
common_message "Happy New Year!!"
|
70
|
+
tos ["Mr tanaka kazuo", "Mr suzuki ichiro"]
|
71
|
+
specific_messages ["The best regards next year.", "In fact I love you."]
|
72
|
+
~~~
|
73
|
+
|
74
|
+
### output happy new year html-letter
|
75
|
+
~~~bash
|
76
|
+
happynewyear execute
|
77
|
+
~~~
|
78
|
+
|
79
|
+
### comfirm output html files
|
80
|
+
* NewYear1.html
|
81
|
+
~~~html
|
82
|
+
<html>
|
83
|
+
<head>
|
84
|
+
<meta charset="UTF-8">
|
85
|
+
<title>Happy New Year</title>
|
86
|
+
</head>
|
87
|
+
<body>
|
88
|
+
<marquee style='font-size:40px;'>To Mr tanaka kazuo Happy New Year!! The best regards next year. From tbpgr</marquee>
|
89
|
+
</body>
|
90
|
+
</html>
|
91
|
+
~~~
|
92
|
+
|
93
|
+
* NewYear2.html
|
94
|
+
~~~html
|
95
|
+
<html>
|
96
|
+
<head>
|
97
|
+
<meta charset="UTF-8">
|
98
|
+
<title>Happy New Year</title>
|
99
|
+
</head>
|
100
|
+
<body>
|
101
|
+
<marquee style='font-size:40px;'>To Mr suzuki ichiro Happy New Year!! In fact I love you. From tbpgr</marquee>
|
102
|
+
</body>
|
103
|
+
</html>
|
104
|
+
~~~
|
105
|
+
|
106
|
+
## History
|
107
|
+
* version 0.0.1 : first release.
|
108
|
+
|
109
|
+
## Contributing
|
110
|
+
|
111
|
+
1. Fork it
|
112
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
113
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
114
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
115
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/bin/happynewyear
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require 'happy_new_year_core'
|
5
|
+
require 'happy_new_year/version'
|
6
|
+
require 'thor'
|
7
|
+
|
8
|
+
module HappyNewYear
|
9
|
+
# = HappyNewYear CLI
|
10
|
+
class CLI < Thor
|
11
|
+
class_option :help, type: :boolean, aliases: '-h', desc: 'help message.'
|
12
|
+
class_option :version, type: :boolean, desc: 'version'
|
13
|
+
|
14
|
+
desc 'execute', 'generate Happy New Year html letters'
|
15
|
+
def execute
|
16
|
+
HappyNewYear::Core.new.execute
|
17
|
+
end
|
18
|
+
|
19
|
+
desc 'init', 'generate Happynewyearfile'
|
20
|
+
def init
|
21
|
+
HappyNewYear::Core.new.init
|
22
|
+
end
|
23
|
+
|
24
|
+
desc 'version', 'version'
|
25
|
+
def version
|
26
|
+
p HappyNewYear::VERSION
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
HappyNewYear::CLI.start(ARGV)
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'happy_new_year/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "happy_new_year"
|
8
|
+
spec.version = HappyNewYear::VERSION
|
9
|
+
spec.authors = ["tbpgr"]
|
10
|
+
spec.email = ["tbpgr@tbpgr.jp"]
|
11
|
+
spec.description = %q{HappyNewYear generates 'happy new year html-letters'}
|
12
|
+
spec.summary = %q{HappyNewYear generates 'happy new year html-letters'}
|
13
|
+
spec.homepage = "https://github.com/tbpgr/happy_new_year"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_runtime_dependency "thor", "~> 0.18.1"
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
24
|
+
spec.add_development_dependency "rake"
|
25
|
+
spec.add_development_dependency "simplecov", "~> 0.8.2"
|
26
|
+
spec.add_development_dependency "rspec", "~> 2.14.1"
|
27
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'happy_new_year_dsl'
|
3
|
+
require 'erb'
|
4
|
+
|
5
|
+
# =HappyNewYear
|
6
|
+
module HappyNewYear
|
7
|
+
# =HappyNewYear Core
|
8
|
+
class Core
|
9
|
+
# Internal DSL Setting file name
|
10
|
+
HAPPY_NEW_YEAR_FILE = 'Happynewyearfile'
|
11
|
+
# Internal DSL Setting file Template
|
12
|
+
HAPPY_NEW_YEAR_TEMPLATE = <<-EOS
|
13
|
+
# encoding: utf-8
|
14
|
+
|
15
|
+
# filename
|
16
|
+
# filename is required
|
17
|
+
# filename allow only String
|
18
|
+
# filename's default value => "NewYear"
|
19
|
+
filename "NewYear"
|
20
|
+
|
21
|
+
# newyear letter from(your name)
|
22
|
+
# from is required
|
23
|
+
# from allow only String
|
24
|
+
# from's default value => "your name"
|
25
|
+
from "your name"
|
26
|
+
|
27
|
+
# newyear letter common_message
|
28
|
+
# common_message is required
|
29
|
+
# common_message allow only String
|
30
|
+
# common_message's default value => "common_message"
|
31
|
+
common_message "common_message"
|
32
|
+
|
33
|
+
# newyear letter tos(target names)
|
34
|
+
# tos is required
|
35
|
+
# tos allow only Array
|
36
|
+
# tos's default value => ["target name1", "target name2"]
|
37
|
+
tos ["target name1", "target name2"]
|
38
|
+
|
39
|
+
# newyear letter specific_messages(for each target)
|
40
|
+
# specific_messages is required
|
41
|
+
# specific_messages allow only Array
|
42
|
+
# specific_messages's default value => ["specific message1", "specific message2"]
|
43
|
+
specific_messages ["specific message1", "specific message2"]
|
44
|
+
|
45
|
+
EOS
|
46
|
+
|
47
|
+
# output html template
|
48
|
+
HAPPY_NEW_YEAR_CONTENTS_TEMPLATE = <<-EOS
|
49
|
+
<html>
|
50
|
+
<head>
|
51
|
+
<meta charset="UTF-8">
|
52
|
+
<title>Happy New Year</title>
|
53
|
+
</head>
|
54
|
+
<body>
|
55
|
+
<marquee style='font-size:40px;'><%=message%></marquee>
|
56
|
+
</body>
|
57
|
+
</html>
|
58
|
+
EOS
|
59
|
+
|
60
|
+
# basic spacing
|
61
|
+
BASIC_SPACE = ' '
|
62
|
+
|
63
|
+
# == generate Happynewyearfile to current directory.
|
64
|
+
def init
|
65
|
+
File.open(HAPPY_NEW_YEAR_FILE, 'w') { |f|f.puts HAPPY_NEW_YEAR_TEMPLATE }
|
66
|
+
end
|
67
|
+
|
68
|
+
# == generate Happy New Year html letters
|
69
|
+
def execute
|
70
|
+
src = read_dsl
|
71
|
+
dsl = HappyNewYear::Dsl.new
|
72
|
+
dsl.instance_eval src
|
73
|
+
from = dsl.happy_new_year.from
|
74
|
+
common_message = dsl.happy_new_year.common_message
|
75
|
+
output_base = dsl.happy_new_year.filename
|
76
|
+
dsl.happy_new_year.specific_messages.each_with_index do |specific_message, index|
|
77
|
+
contents = get_result_html(from, common_message, specific_message, dsl.happy_new_year.tos[index])
|
78
|
+
output_newyear_html("#{output_base}#{index + 1}.html", contents)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
private
|
83
|
+
def read_dsl
|
84
|
+
File.open(HAPPY_NEW_YEAR_FILE) { |f|f.read }
|
85
|
+
end
|
86
|
+
|
87
|
+
def get_result_html(from, common_message, specific_message, to)
|
88
|
+
message = "To #{to}#{BASIC_SPACE}#{common_message}#{BASIC_SPACE}#{specific_message}#{BASIC_SPACE}From #{from}"
|
89
|
+
erb = ERB.new(HAPPY_NEW_YEAR_CONTENTS_TEMPLATE)
|
90
|
+
erb.result(binding)
|
91
|
+
end
|
92
|
+
|
93
|
+
def output_newyear_html(filename, contents)
|
94
|
+
File.open(filename, 'w:utf-8') { |f|f.print contents }
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'happy_new_year_dsl_model'
|
3
|
+
|
4
|
+
module HappyNewYear
|
5
|
+
class Dsl
|
6
|
+
attr_accessor :happy_new_year
|
7
|
+
|
8
|
+
# String Define
|
9
|
+
[:filename, :from, :common_message].each do |f|
|
10
|
+
define_method f do |value|
|
11
|
+
eval "@happy_new_year.#{f.to_s} = '#{value}'", binding
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# Array/Hash/Boolean Define
|
16
|
+
[:tos, :specific_messages].each do |f|
|
17
|
+
define_method f do |value|
|
18
|
+
eval "@happy_new_year.#{f.to_s} = #{value}", binding
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def initialize
|
23
|
+
@happy_new_year = HappyNewYear::DslModel.new
|
24
|
+
@happy_new_year.filename = 'NewYear'
|
25
|
+
@happy_new_year.from = 'your name'
|
26
|
+
@happy_new_year.common_message = 'common_message'
|
27
|
+
@happy_new_year.tos = ['target name1', 'target name2']
|
28
|
+
@happy_new_year.specific_messages = ['specific message1', 'specific message2']
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'active_model'
|
3
|
+
|
4
|
+
module HappyNewYear
|
5
|
+
class DslModel
|
6
|
+
include ActiveModel::Model
|
7
|
+
|
8
|
+
# filename
|
9
|
+
attr_accessor :filename
|
10
|
+
validates :filename, presence: true
|
11
|
+
|
12
|
+
# newyear letter from(your name)
|
13
|
+
attr_accessor :from
|
14
|
+
validates :from, presence: true
|
15
|
+
|
16
|
+
# newyear letter common_message
|
17
|
+
attr_accessor :common_message
|
18
|
+
validates :common_message, presence: true
|
19
|
+
|
20
|
+
# newyear letter tos(target names)
|
21
|
+
attr_accessor :tos
|
22
|
+
validates :tos, presence: true
|
23
|
+
|
24
|
+
# newyear letter specific_messages(for each target)
|
25
|
+
attr_accessor :specific_messages
|
26
|
+
validates :specific_messages, presence: true
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,130 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'happy_new_year_core'
|
4
|
+
|
5
|
+
describe HappyNewYear::Core do
|
6
|
+
|
7
|
+
context :init do
|
8
|
+
OUTPUT_DSL_TMP_DIR = 'generate_dsl'
|
9
|
+
cases = [
|
10
|
+
{
|
11
|
+
case_no: 1,
|
12
|
+
case_title: 'valid new year mail',
|
13
|
+
expected: HappyNewYear::Core::HAPPY_NEW_YEAR_TEMPLATE,
|
14
|
+
},
|
15
|
+
]
|
16
|
+
|
17
|
+
cases.each do |c|
|
18
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
19
|
+
begin
|
20
|
+
case_before c
|
21
|
+
|
22
|
+
# -- given --
|
23
|
+
happy_new_year_core = HappyNewYear::Core.new
|
24
|
+
|
25
|
+
# -- when --
|
26
|
+
happy_new_year_core.init
|
27
|
+
|
28
|
+
# -- then --
|
29
|
+
actual = File.read("./#{HappyNewYear::Core::HAPPY_NEW_YEAR_FILE}")
|
30
|
+
expect(actual).to eq(c[:expected])
|
31
|
+
ensure
|
32
|
+
case_after c
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def case_before(c)
|
38
|
+
Dir.mkdir(OUTPUT_DSL_TMP_DIR) unless Dir.exists? OUTPUT_DSL_TMP_DIR
|
39
|
+
Dir.chdir(OUTPUT_DSL_TMP_DIR)
|
40
|
+
end
|
41
|
+
|
42
|
+
def case_after(c)
|
43
|
+
Dir.chdir('../')
|
44
|
+
FileUtils.rm_rf(OUTPUT_DSL_TMP_DIR) if Dir.exists? OUTPUT_DSL_TMP_DIR
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context :execute do
|
50
|
+
OUTPUT_TMP_DIR = 'tmp_newyear'
|
51
|
+
NEWYEAR_CASE1_INPUT = <<-EOS
|
52
|
+
# encoding: utf-8
|
53
|
+
filename "HappyNewYear"
|
54
|
+
from "tbpgr"
|
55
|
+
common_message "A Happy New Year!!"
|
56
|
+
tos ["Mr tanaka hiroshi", "Mr suzuki kazuo"]
|
57
|
+
specific_messages ["The best regards next year.", "In fact I love you."]
|
58
|
+
EOS
|
59
|
+
|
60
|
+
NEWYEAR_OUTPUTS1_1 = <<-EOS
|
61
|
+
<html>
|
62
|
+
<head>
|
63
|
+
<meta charset="UTF-8">
|
64
|
+
<title>Happy New Year</title>
|
65
|
+
</head>
|
66
|
+
<body>
|
67
|
+
<marquee style='font-size:40px;'>To Mr tanaka hiroshi A Happy New Year!! The best regards next year. From tbpgr</marquee>
|
68
|
+
</body>
|
69
|
+
</html>
|
70
|
+
EOS
|
71
|
+
|
72
|
+
NEWYEAR_OUTPUTS1_2 = <<-EOS
|
73
|
+
<html>
|
74
|
+
<head>
|
75
|
+
<meta charset="UTF-8">
|
76
|
+
<title>Happy New Year</title>
|
77
|
+
</head>
|
78
|
+
<body>
|
79
|
+
<marquee style='font-size:40px;'>To Mr suzuki kazuo A Happy New Year!! In fact I love you. From tbpgr</marquee>
|
80
|
+
</body>
|
81
|
+
</html>
|
82
|
+
EOS
|
83
|
+
|
84
|
+
cases = [
|
85
|
+
{
|
86
|
+
case_no: 1,
|
87
|
+
case_title: 'valid new year output',
|
88
|
+
input: NEWYEAR_CASE1_INPUT,
|
89
|
+
expected_file_names: ['HappyNewYear1.html', 'HappyNewYear2.html'],
|
90
|
+
expected_file_contents: [NEWYEAR_OUTPUTS1_1, NEWYEAR_OUTPUTS1_2],
|
91
|
+
},
|
92
|
+
]
|
93
|
+
|
94
|
+
cases.each do |c|
|
95
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
96
|
+
begin
|
97
|
+
case_before c
|
98
|
+
|
99
|
+
# -- given --
|
100
|
+
happy_new_year_core = HappyNewYear::Core.new
|
101
|
+
|
102
|
+
# -- when --
|
103
|
+
happy_new_year_core.execute
|
104
|
+
|
105
|
+
# -- then --
|
106
|
+
c[:expected_file_names].each_with_index do |filename, index|
|
107
|
+
file_exists = File.exists?(filename)
|
108
|
+
expect(file_exists).to be_true
|
109
|
+
file_contents = File.read(filename)
|
110
|
+
expect(file_contents).to eq(c[:expected_file_contents][index])
|
111
|
+
end
|
112
|
+
ensure
|
113
|
+
case_after c
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
def case_before(c)
|
118
|
+
Dir.mkdir(OUTPUT_DSL_TMP_DIR) unless Dir.exists? OUTPUT_DSL_TMP_DIR
|
119
|
+
Dir.chdir(OUTPUT_DSL_TMP_DIR)
|
120
|
+
File.open(HappyNewYear::Core::HAPPY_NEW_YEAR_FILE, 'w:utf-8') { |f|f.print c[:input] }
|
121
|
+
end
|
122
|
+
|
123
|
+
def case_after(c)
|
124
|
+
Dir.chdir('../')
|
125
|
+
FileUtils.rm_rf(OUTPUT_DSL_TMP_DIR) if Dir.exists? OUTPUT_DSL_TMP_DIR
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,119 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: happy_new_year
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- tbpgr
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-12-31 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: thor
|
16
|
+
requirement: &21759384 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.18.1
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *21759384
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: bundler
|
27
|
+
requirement: &21758928 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '1.3'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *21758928
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rake
|
38
|
+
requirement: &21758592 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *21758592
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: simplecov
|
49
|
+
requirement: &21758268 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.8.2
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *21758268
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: rspec
|
60
|
+
requirement: &21757968 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ~>
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 2.14.1
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *21757968
|
69
|
+
description: HappyNewYear generates 'happy new year html-letters'
|
70
|
+
email:
|
71
|
+
- tbpgr@tbpgr.jp
|
72
|
+
executables:
|
73
|
+
- happynewyear
|
74
|
+
extensions: []
|
75
|
+
extra_rdoc_files: []
|
76
|
+
files:
|
77
|
+
- .gitignore
|
78
|
+
- .rspec
|
79
|
+
- Gemfile
|
80
|
+
- LICENSE.txt
|
81
|
+
- README.md
|
82
|
+
- Rakefile
|
83
|
+
- bin/happynewyear
|
84
|
+
- happy_new_year.gemspec
|
85
|
+
- lib/happy_new_year/version.rb
|
86
|
+
- lib/happy_new_year_core.rb
|
87
|
+
- lib/happy_new_year_dsl.rb
|
88
|
+
- lib/happy_new_year_dsl_model.rb
|
89
|
+
- spec/happy_new_year_core_spec.rb
|
90
|
+
- spec/spec_helper.rb
|
91
|
+
homepage: https://github.com/tbpgr/happy_new_year
|
92
|
+
licenses:
|
93
|
+
- MIT
|
94
|
+
post_install_message:
|
95
|
+
rdoc_options: []
|
96
|
+
require_paths:
|
97
|
+
- lib
|
98
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
99
|
+
none: false
|
100
|
+
requirements:
|
101
|
+
- - ! '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
requirements: []
|
111
|
+
rubyforge_project:
|
112
|
+
rubygems_version: 1.8.11
|
113
|
+
signing_key:
|
114
|
+
specification_version: 3
|
115
|
+
summary: HappyNewYear generates 'happy new year html-letters'
|
116
|
+
test_files:
|
117
|
+
- spec/happy_new_year_core_spec.rb
|
118
|
+
- spec/spec_helper.rb
|
119
|
+
has_rdoc:
|