seed_formatter 0.0.2 → 0.0.3
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/.rspec +2 -0
- data/.rvmrc +1 -0
- data/Gemfile +2 -0
- data/README.md +107 -0
- data/Rakefile +0 -7
- data/lib/seed_formatter/version.rb +1 -1
- data/lib/seed_formatter.rb +19 -3
- data/seed_formatter.gemspec +2 -2
- data/spec/spec_helper.rb +4 -0
- metadata +20 -9
data/.rspec
ADDED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm use tfg@seed_formatter --create
|
data/Gemfile
CHANGED
data/README.md
ADDED
@@ -0,0 +1,107 @@
|
|
1
|
+
# SeedFormatter
|
2
|
+
|
3
|
+
SeedFormatter is a small gem I created while I was working on various projects with terrible, terrible Seed files.
|
4
|
+
|
5
|
+
## Purpose
|
6
|
+
|
7
|
+
The goal of SeedFormatter is to provide some commonly required functionality to be used in Seed files.
|
8
|
+
|
9
|
+
## Dependencies
|
10
|
+
|
11
|
+
SeedFormatter uses the [colored](https://github.com/defunkt/colored) gem to present output.
|
12
|
+
|
13
|
+
## Example: Seed file layout
|
14
|
+
|
15
|
+
I like my seed files to follow this format:
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
class Seed
|
19
|
+
class << self
|
20
|
+
def create_categories
|
21
|
+
# create some categories here
|
22
|
+
end
|
23
|
+
|
24
|
+
def create_admin_user
|
25
|
+
# create an admin user here
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
Seed.create_categories
|
31
|
+
Seed.create_admin_user
|
32
|
+
```
|
33
|
+
|
34
|
+
I find this to be the neatest way to write Seed files.
|
35
|
+
|
36
|
+
## Example: Output
|
37
|
+
|
38
|
+
SeedFormatter provides four methods of showing output:
|
39
|
+
|
40
|
+
- `message` A general purpose message, generally used as a header. White by default.
|
41
|
+
- `success` Indicates a seed function was successful. Green by default.
|
42
|
+
- `error` Indicates a seed function has failed. Red by default.
|
43
|
+
- `spacer` Just to add a single space to separate groups of functionality.
|
44
|
+
|
45
|
+
Using these functions is straight forward (if we use the above example Seed file layout):
|
46
|
+
|
47
|
+
```ruby
|
48
|
+
class Seed
|
49
|
+
class << self
|
50
|
+
include SeedFormatter
|
51
|
+
|
52
|
+
def create_categories
|
53
|
+
message "Creating some categories"
|
54
|
+
|
55
|
+
["Sedan", "SUV", "Hatchback"].each do |category_name|
|
56
|
+
category = Category.create :name => category_name
|
57
|
+
if category.valid?
|
58
|
+
success "Created #{category_name}"
|
59
|
+
else
|
60
|
+
error "Failed to create #{category_name}. Errors: #{category.errors.full_messages}"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
spacer
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
```
|
69
|
+
|
70
|
+
## Example: Overriding the display of output
|
71
|
+
|
72
|
+
You can override the display of output with the following options:
|
73
|
+
|
74
|
+
- `:prefix` Pass in a string to prefix the output.
|
75
|
+
- `:suffix` Pass in a string to suffix the output.
|
76
|
+
- `:color` Pass in a symbol representing the color your want the ouput to be. The list of acceptable colors can be found in colored gem's [documentation](https://github.com/defunkt/colored/blob/master/lib/colored.rb).
|
77
|
+
|
78
|
+
So, there are three methods of customizing the output of SeedFormatter.
|
79
|
+
|
80
|
+
1: Pass in the options
|
81
|
+
|
82
|
+
```ruby
|
83
|
+
success "I did it…they're all trees", {:prefix => "!!!", :suffix => "'''", :color => :magenta}
|
84
|
+
```
|
85
|
+
|
86
|
+
Which will yield the string `!!!I did it…they're all trees'''` in magenta.
|
87
|
+
|
88
|
+
2: Override the default function in your file or similarly,
|
89
|
+
|
90
|
+
3: Write your own
|
91
|
+
|
92
|
+
```ruby
|
93
|
+
def success message, options={}
|
94
|
+
options[:prefix] ||= "!!!"
|
95
|
+
options[:suffix] ||= "'''"
|
96
|
+
options[:color] ||= :magenta
|
97
|
+
output message, options
|
98
|
+
end
|
99
|
+
|
100
|
+
def my_custom_output message, options={}
|
101
|
+
options[:prefix] ||= "> "
|
102
|
+
options[:suffix] ||= " <"
|
103
|
+
options[:color] ||= :yellow
|
104
|
+
output message, options
|
105
|
+
end
|
106
|
+
```
|
107
|
+
|
data/Rakefile
CHANGED
data/lib/seed_formatter.rb
CHANGED
@@ -2,6 +2,7 @@ require "seed_formatter/version"
|
|
2
2
|
require "colored"
|
3
3
|
|
4
4
|
module SeedFormatter
|
5
|
+
|
5
6
|
# Outputs a message with a set of given options
|
6
7
|
#
|
7
8
|
# @param [String] message: The message to format
|
@@ -13,8 +14,9 @@ module SeedFormatter
|
|
13
14
|
# @example Print out an error message
|
14
15
|
# SeedFormatter.output "Some error", {:prefix => "!!! ", :color => :red}
|
15
16
|
# # outputs "!!! Some error" in red text
|
16
|
-
def output message, options
|
17
|
-
|
17
|
+
def output message, options = {}
|
18
|
+
options[:color] ||= :white
|
19
|
+
$stdout.puts "#{options[:prefix]}#{message}#{options[:suffix]}".send(options[:color])
|
18
20
|
end
|
19
21
|
|
20
22
|
# A preset formatter with overridable options
|
@@ -39,6 +41,20 @@ module SeedFormatter
|
|
39
41
|
end
|
40
42
|
|
41
43
|
def spacer
|
42
|
-
puts ""
|
44
|
+
$stdout.puts ""
|
45
|
+
end
|
46
|
+
|
47
|
+
# Allows you to run a block on each section of a .yml file.
|
48
|
+
#
|
49
|
+
# @param [String] path: The full path of the .yml file
|
50
|
+
def load_yaml_file path
|
51
|
+
begin
|
52
|
+
items = YAML::load(File.read(path))
|
53
|
+
items.each do |hash|
|
54
|
+
yield(hash)
|
55
|
+
end
|
56
|
+
rescue
|
57
|
+
error "Unable to load YAML file #{path}, exception: #{$!}"
|
58
|
+
end
|
43
59
|
end
|
44
60
|
end
|
data/seed_formatter.gemspec
CHANGED
@@ -7,8 +7,8 @@ Gem::Specification.new do |s|
|
|
7
7
|
s.version = SeedFormatter::VERSION
|
8
8
|
s.authors = ["Jordan Maguire"]
|
9
9
|
s.email = ["jmaguire@thefrontiergroup.com.au"]
|
10
|
-
s.homepage = "https://github.com/jordanmaguire/
|
11
|
-
s.summary = "
|
10
|
+
s.homepage = "https://github.com/jordanmaguire/seed_formatter"
|
11
|
+
s.summary = "Easily format the output of your seeds and parse YAML files"
|
12
12
|
s.description = "Easily format the output of your seeds and parse YAML files"
|
13
13
|
|
14
14
|
s.files = `git ls-files`.split("\n")
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: seed_formatter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 25
|
5
|
+
prerelease:
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Jordan Maguire
|
@@ -14,16 +15,18 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2012-
|
18
|
+
date: 2012-02-03 00:00:00 +08:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: colored
|
22
23
|
prerelease: false
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
24
26
|
requirements:
|
25
27
|
- - ">="
|
26
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
27
30
|
segments:
|
28
31
|
- 0
|
29
32
|
version: "0"
|
@@ -40,13 +43,17 @@ extra_rdoc_files: []
|
|
40
43
|
|
41
44
|
files:
|
42
45
|
- .gitignore
|
46
|
+
- .rspec
|
47
|
+
- .rvmrc
|
43
48
|
- Gemfile
|
49
|
+
- README.md
|
44
50
|
- Rakefile
|
45
51
|
- lib/seed_formatter.rb
|
46
52
|
- lib/seed_formatter/version.rb
|
47
53
|
- seed_formatter.gemspec
|
54
|
+
- spec/spec_helper.rb
|
48
55
|
has_rdoc: true
|
49
|
-
homepage: https://github.com/jordanmaguire/
|
56
|
+
homepage: https://github.com/jordanmaguire/seed_formatter
|
50
57
|
licenses: []
|
51
58
|
|
52
59
|
post_install_message:
|
@@ -55,25 +62,29 @@ rdoc_options: []
|
|
55
62
|
require_paths:
|
56
63
|
- lib
|
57
64
|
required_ruby_version: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
67
|
- - ">="
|
60
68
|
- !ruby/object:Gem::Version
|
69
|
+
hash: 3
|
61
70
|
segments:
|
62
71
|
- 0
|
63
72
|
version: "0"
|
64
73
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
65
75
|
requirements:
|
66
76
|
- - ">="
|
67
77
|
- !ruby/object:Gem::Version
|
78
|
+
hash: 3
|
68
79
|
segments:
|
69
80
|
- 0
|
70
81
|
version: "0"
|
71
82
|
requirements: []
|
72
83
|
|
73
84
|
rubyforge_project:
|
74
|
-
rubygems_version: 1.
|
85
|
+
rubygems_version: 1.5.2
|
75
86
|
signing_key:
|
76
87
|
specification_version: 3
|
77
|
-
summary:
|
78
|
-
test_files:
|
79
|
-
|
88
|
+
summary: Easily format the output of your seeds and parse YAML files
|
89
|
+
test_files:
|
90
|
+
- spec/spec_helper.rb
|