foodie 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.
@@ -0,0 +1,3 @@
1
+ pkg/*
2
+ *.gem
3
+ .bundle
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source :gemcutter
2
+
3
+ # Specify your gem's dependencies in gem_name.gemspec
4
+ gemspec
@@ -0,0 +1,53 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ foodie (0.0.1)
5
+ activesupport
6
+ thor
7
+
8
+ GEM
9
+ remote: http://rubygems.org/
10
+ specs:
11
+ activesupport (3.0.0)
12
+ aruba (0.2.3)
13
+ background_process
14
+ cucumber (~> 0.9.0)
15
+ background_process (1.2)
16
+ builder (2.1.2)
17
+ cucumber (0.9.1)
18
+ builder (~> 2.1.2)
19
+ diff-lcs (~> 1.1.2)
20
+ gherkin (~> 2.2.5)
21
+ json (~> 1.4.6)
22
+ term-ansicolor (~> 1.0.5)
23
+ diff-lcs (1.1.2)
24
+ gherkin (2.2.5)
25
+ json (~> 1.4.6)
26
+ term-ansicolor (~> 1.0.5)
27
+ trollop (~> 1.16.2)
28
+ json (1.4.6)
29
+ rspec (2.0.0.beta.22)
30
+ rspec-core (= 2.0.0.beta.22)
31
+ rspec-expectations (= 2.0.0.beta.22)
32
+ rspec-mocks (= 2.0.0.beta.22)
33
+ rspec-core (2.0.0.beta.22)
34
+ rspec-expectations (2.0.0.beta.22)
35
+ diff-lcs (>= 1.1.2)
36
+ rspec-mocks (2.0.0.beta.22)
37
+ rspec-core (= 2.0.0.beta.22)
38
+ rspec-expectations (= 2.0.0.beta.22)
39
+ term-ansicolor (1.0.5)
40
+ thor (0.14.2)
41
+ trollop (1.16.2)
42
+
43
+ PLATFORMS
44
+ ruby
45
+
46
+ DEPENDENCIES
47
+ activesupport
48
+ aruba
49
+ bundler (>= 1.0.0)
50
+ cucumber
51
+ foodie!
52
+ rspec (~> 2.0.0.beta.22)
53
+ thor
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require 'foodie/cli'
3
+ Foodie::CLI.start
@@ -0,0 +1,12 @@
1
+ Feature: Food
2
+ In order to portray or pluralize food
3
+ As a CLI
4
+ I want to be as objective as possible
5
+
6
+ Scenario: Broccoli is gross
7
+ When I run "foodie portray broccoli"
8
+ Then the output should contain "Gross!"
9
+
10
+ Scenario: Tomato, or Tomato?
11
+ When I run "foodie pluralize --word Tomato"
12
+ Then the output should contain "Tomatoes"
@@ -0,0 +1,18 @@
1
+ Feature: Generating things
2
+ In order to generate many a thing
3
+ As a CLI newbie
4
+ I want gem_name to hold my hand, tightly
5
+
6
+ Scenario: Recipes
7
+ When I run "foodie recipe dinner steak"
8
+ Then the following files should exist:
9
+ | dinner/steak.txt |
10
+ Then the file "dinner/steak.txt" should contain:
11
+ """
12
+ ##### Ingredients #####
13
+ Ingredients for delicious steak go here.
14
+
15
+
16
+ ##### Instructions #####
17
+ Tips on how to make delicious steak go here.
18
+ """
@@ -0,0 +1,3 @@
1
+ Then /^the file "([^"]*)" should contain:$/ do |file, content|
2
+ check_file_content(file, content, true)
3
+ end
@@ -0,0 +1 @@
1
+ require 'aruba'
@@ -0,0 +1,28 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path("../lib/foodie/version", __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "foodie"
6
+ s.version = Foodie::VERSION
7
+ s.platform = Gem::Platform::RUBY
8
+ s.authors = []
9
+ s.email = []
10
+ s.homepage = "http://rubygems.org/gems/foodie"
11
+ s.summary = "For food"
12
+ s.description = "For food"
13
+
14
+ s.required_rubygems_version = ">= 1.3.6"
15
+ s.rubyforge_project = "foodie"
16
+
17
+ s.add_development_dependency "bundler", ">= 1.0.0"
18
+ s.add_development_dependency "rspec", "~> 2.0.0.beta.22"
19
+ s.add_development_dependency "cucumber"
20
+ s.add_development_dependency "aruba"
21
+
22
+ s.add_dependency "activesupport"
23
+ s.add_dependency "thor"
24
+
25
+ s.files = `git ls-files`.split("\n")
26
+ s.executables = `git ls-files`.split("\n").map{|f| f =~ /^bin\/(.*)/ ? $1 : nil}.compact
27
+ s.require_path = 'lib'
28
+ end
@@ -0,0 +1,3 @@
1
+ module Foodie
2
+ # Your code goes here...
3
+ end
@@ -0,0 +1,24 @@
1
+ require 'thor'
2
+ require 'foodie/food'
3
+
4
+ require 'foodie/generators/recipe'
5
+
6
+ module Foodie
7
+ class CLI < Thor
8
+ desc "portray ITEM", "Determines if a piece of food is gross or delicious"
9
+ def portray(name)
10
+ puts Foodie::Food.portray(name)
11
+ end
12
+
13
+ desc "pluralize", "Pluralizes a word"
14
+ method_option :word, :aliases => :word
15
+ def pluralize
16
+ puts Foodie::Food.pluralize(options[:word])
17
+ end
18
+
19
+ desc "recipe", "Generates a recipe scaffold"
20
+ def recipe(group, name)
21
+ Foodie::Generators::Recipe.start([group, name])
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,17 @@
1
+ require 'active_support/inflector'
2
+
3
+ module Foodie
4
+ class Food
5
+ def self.portray(food)
6
+ if food.downcase == "broccoli"
7
+ "Gross!"
8
+ else
9
+ "Delicious!"
10
+ end
11
+ end
12
+
13
+ def self.pluralize(word)
14
+ word.pluralize
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,23 @@
1
+ require 'thor/group'
2
+
3
+ module Foodie
4
+ module Generators
5
+ class Recipe < Thor::Group
6
+ argument :group, :type => :string
7
+ argument :name, :type => :string
8
+ include Thor::Actions
9
+
10
+ def self.source_root
11
+ File.dirname(__FILE__) + "/recipe"
12
+ end
13
+
14
+ def create_group
15
+ empty_directory(group)
16
+ end
17
+
18
+ def copy_recipe
19
+ template("recipe.txt", "#{group}/#{name}.txt")
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,6 @@
1
+ ##### Ingredients #####
2
+ Ingredients for delicious <%= name %> go here.
3
+
4
+
5
+ ##### Instructions #####
6
+ Tips on how to make delicious <%= name %> go here.
@@ -0,0 +1,3 @@
1
+ module Foodie
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,15 @@
1
+ require 'foodie/food'
2
+
3
+ describe Foodie::Food do
4
+ it "broccoli is gross" do
5
+ Foodie::Food.portray("Broccoli").should eql("Gross!")
6
+ end
7
+
8
+ it "anything else is delicious" do
9
+ Foodie::Food.portray("Not Broccoli").should eql("Delicious!")
10
+ end
11
+
12
+ it "pluralizes a word" do
13
+ Foodie::Food.pluralize("Tomato").should eql("Tomatoes")
14
+ end
15
+ end
metadata ADDED
@@ -0,0 +1,175 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: foodie
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors: []
13
+
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-10-16 00:00:00 +11:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: bundler
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 23
30
+ segments:
31
+ - 1
32
+ - 0
33
+ - 0
34
+ version: 1.0.0
35
+ type: :development
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: rspec
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ hash: 62196431
46
+ segments:
47
+ - 2
48
+ - 0
49
+ - 0
50
+ - beta
51
+ - 22
52
+ version: 2.0.0.beta.22
53
+ type: :development
54
+ version_requirements: *id002
55
+ - !ruby/object:Gem::Dependency
56
+ name: cucumber
57
+ prerelease: false
58
+ requirement: &id003 !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ hash: 3
64
+ segments:
65
+ - 0
66
+ version: "0"
67
+ type: :development
68
+ version_requirements: *id003
69
+ - !ruby/object:Gem::Dependency
70
+ name: aruba
71
+ prerelease: false
72
+ requirement: &id004 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ hash: 3
78
+ segments:
79
+ - 0
80
+ version: "0"
81
+ type: :development
82
+ version_requirements: *id004
83
+ - !ruby/object:Gem::Dependency
84
+ name: activesupport
85
+ prerelease: false
86
+ requirement: &id005 !ruby/object:Gem::Requirement
87
+ none: false
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ hash: 3
92
+ segments:
93
+ - 0
94
+ version: "0"
95
+ type: :runtime
96
+ version_requirements: *id005
97
+ - !ruby/object:Gem::Dependency
98
+ name: thor
99
+ prerelease: false
100
+ requirement: &id006 !ruby/object:Gem::Requirement
101
+ none: false
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ hash: 3
106
+ segments:
107
+ - 0
108
+ version: "0"
109
+ type: :runtime
110
+ version_requirements: *id006
111
+ description: For food
112
+ email: []
113
+
114
+ executables:
115
+ - foodie
116
+ extensions: []
117
+
118
+ extra_rdoc_files: []
119
+
120
+ files:
121
+ - .gitignore
122
+ - Gemfile
123
+ - Gemfile.lock
124
+ - Rakefile
125
+ - bin/foodie
126
+ - features/food.feature
127
+ - features/generator.feature
128
+ - features/step_definitions/aruba_ext_steps.rb
129
+ - features/support/setup.rb
130
+ - foodie.gemspec
131
+ - lib/foodie.rb
132
+ - lib/foodie/cli.rb
133
+ - lib/foodie/food.rb
134
+ - lib/foodie/generators/recipe.rb
135
+ - lib/foodie/generators/recipe/recipe.txt
136
+ - lib/foodie/version.rb
137
+ - spec/foodie_spec.rb
138
+ has_rdoc: true
139
+ homepage: http://rubygems.org/gems/foodie
140
+ licenses: []
141
+
142
+ post_install_message:
143
+ rdoc_options: []
144
+
145
+ require_paths:
146
+ - lib
147
+ required_ruby_version: !ruby/object:Gem::Requirement
148
+ none: false
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ hash: 3
153
+ segments:
154
+ - 0
155
+ version: "0"
156
+ required_rubygems_version: !ruby/object:Gem::Requirement
157
+ none: false
158
+ requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ hash: 23
162
+ segments:
163
+ - 1
164
+ - 3
165
+ - 6
166
+ version: 1.3.6
167
+ requirements: []
168
+
169
+ rubyforge_project: foodie
170
+ rubygems_version: 1.3.7
171
+ signing_key:
172
+ specification_version: 3
173
+ summary: For food
174
+ test_files: []
175
+