yarrow 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YmMzMjJjMDhjYWU1NGZkYzc0Mzg2ODBiYTViOGZiMzllZTUxYWQ3Ng==
4
+ MDc1MGQ3ZDI2ZWZjYjdmNDllZjJjODQ0ZTAwODE3OTgxOWNlYWZlYg==
5
5
  data.tar.gz: !binary |-
6
- MzBjMmJhMGI4MDFhZTU4NmYzYWFhYzAwZjM4ZDY3MjcxZTM1NGNmYg==
6
+ ZGY5MzUyYzJmYmQxYWE2NTNkZTM0ODIyMjU4MDY0Mzg2MDkwYzZjNw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NTRiNzQ0OTg5ZmM5NzA1N2VmN2UzMTI2N2YwMTVjYmJmYjkzODQ1M2Y4OWRl
10
- YzAyYTMyNzQ1NWRiZWE3YzgwM2NiNGQ2ZjI0MjUwMjFkYmFjNTA4NWRmYmYw
11
- YWM2N2I1YTVjNWFkMTllNTJiOGE3NjY3MTE0MjU4Njg2MDFiNDY=
9
+ ZWFiOWVjNDI4ZGYwNTJlMTMxYzRmYTk3YWI1MjI3MWU5Yjk5ZjUwMzBmY2Jl
10
+ OGJlNmIxMzJhOGUwMTQ1MmEzZGJjZDBlNjUyODI3ZGQwMzEyMDQ5NTgxZTcz
11
+ MjE4OTcwMGU3M2Y0YTQ4NzBkMjY0OWI3MDViNjE4NDliMTY3ZjI=
12
12
  data.tar.gz: !binary |-
13
- ZjMxODQ2ZDBjZjY3M2QzMDRmOTdkMDNhYjE2N2U5NjNjMzAxNjcyNWQxNWI4
14
- OTU4N2MzMWY2YTEzMDNkOWMzODFhMTIwODE2ZmEwNjIyYjRmNWJhN2Y5ZGE0
15
- MDRmODY2OWI4OTcyOTZlMzk5MjJlYzgxMzNmNzJmZmZkMzZiMWI=
13
+ ZGU4NGQwNGZiNjY1NGM0MzIyNzkwOTkwNWQ5OWVmNjQyNWU1MWU0Yzg5MWVk
14
+ NzI3YmZhZWEwNmUxMzNlOWVjM2E1Y2IyZWM2NDM3NDA3ZjVkNzI1ZDdiNjc1
15
+ MWQxNmQxYTQ0YWU1NmYwNzNhNDhhMTdiM2UxNzk5NmRkZjY5NzU=
data/bin/yarrow ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ begin
4
+ require "yarrow"
5
+ rescue LoadError
6
+ require "rubygems"
7
+ require "yarrow"
8
+ end
@@ -0,0 +1,10 @@
1
+ module Yarrow
2
+ class Configuration < Hashie::Mash
3
+
4
+ def self.load(file)
5
+ configuration = self.new(YAML.load_file(file))
6
+ configuration
7
+ end
8
+
9
+ end
10
+ end
@@ -0,0 +1,200 @@
1
+ module Yarrow
2
+
3
+ class ConsoleRunner
4
+
5
+ SUCCESS = 0
6
+ FAILURE = 1
7
+
8
+ ENABLED_OPTIONS = {
9
+ :h => :help,
10
+ :v => :version,
11
+ :c => :config,
12
+ :t => :theme,
13
+ }
14
+
15
+ ALLOWED_CONFIG_FILES = [
16
+ '.yarrowdoc',
17
+ 'Yarrowdoc'
18
+ ]
19
+
20
+ def initialize(arguments, io=STDOUT)
21
+ @out = io
22
+ @arguments = arguments
23
+ @options = {}
24
+ @targets = []
25
+ @config = Configuration.load(File.dirname(__FILE__) + "/defaults.yml")
26
+ end
27
+
28
+ def config
29
+ @config
30
+ end
31
+
32
+ def run_application
33
+ print_header
34
+
35
+ begin
36
+ process_arguments
37
+
38
+ if has_option?(:version)
39
+ return SUCCESS
40
+ end
41
+
42
+ if has_option?(:help)
43
+ print_help
44
+ return SUCCESS
45
+ end
46
+
47
+ process_configuration
48
+
49
+ run_input_process
50
+
51
+ run_output_process
52
+
53
+ print_footer
54
+
55
+ SUCCESS
56
+ rescue Exception => e
57
+ print_error e
58
+ FAILURE
59
+ end
60
+ end
61
+
62
+ def process_arguments
63
+ @arguments.each do |arg|
64
+ if is_option?(arg)
65
+ register_option(arg)
66
+ else
67
+ @targets << arg
68
+ end
69
+ end
70
+ end
71
+
72
+ # def load_configuration(path)
73
+ # ALLOWED_CONFIG_FILES.each do |filename|
74
+ # config_path = path + '/' + filename
75
+ # if File.exists? config_path
76
+ # @config.deep_merge! Configuration.load(config_path)
77
+ # return
78
+ # end
79
+ # end
80
+ # end
81
+
82
+ def process_configuration
83
+ #load_configuration(Dir.pwd)
84
+
85
+ # @targets.each do |input_path|
86
+ # @config.deep_merge! load_configuration(input_path)
87
+ # end
88
+
89
+ if has_option?(:config)
90
+ path = @options[:config]
91
+ @config.deep_merge! Configuration.load(path)
92
+ end
93
+
94
+ @config.options = @options.to_hash
95
+
96
+ #normalize_theme_path
97
+
98
+ #theme = @config.options.theme
99
+ #@config.append load_configuration(theme)
100
+ end
101
+
102
+ def normalize_theme_path
103
+
104
+ end
105
+
106
+ def register_option(raw_option)
107
+ option = raw_option.gsub(":", "=")
108
+ if option.include? "="
109
+ parts = option.split("=")
110
+ option = parts[0]
111
+ value = parts[1]
112
+ else
113
+ value = true
114
+ end
115
+
116
+ name = option.gsub("-", "")
117
+
118
+ if option[0..1] == "--"
119
+ if ENABLED_OPTIONS.has_value?(name.to_sym)
120
+ @options[name.to_sym] = value
121
+ return
122
+ end
123
+ else
124
+ if ENABLED_OPTIONS.has_key?(name.to_sym)
125
+ @options[ENABLED_OPTIONS[name.to_sym]] = value
126
+ return
127
+ end
128
+ end
129
+
130
+ raise "Unrecognized option: #{raw_option}"
131
+ end
132
+
133
+ def is_option?(argument)
134
+ argument[0] == "-"
135
+ end
136
+
137
+ def has_option?(option)
138
+ @options.has_key? option
139
+ end
140
+
141
+ def run_input_process
142
+
143
+ end
144
+
145
+ def run_output_process
146
+
147
+ end
148
+
149
+ def print_header
150
+ @out.puts Yarrow::APP_NAME + " " + Yarrow::VERSION
151
+ end
152
+
153
+ def print_footer
154
+ @out.puts "Content generated at {path}!"
155
+ end
156
+
157
+ def print_error(e)
158
+ @out.puts "Error! " + e.to_s
159
+ end
160
+
161
+ def print_help
162
+ help = <<HELP
163
+ See http://yarrowdoc.org for more information.
164
+
165
+ Usage:
166
+
167
+ $ yarrow [options]
168
+ $ yarrow [options] <input>
169
+ $ yarrow [options] <input input> <output>
170
+
171
+ Arguments
172
+
173
+ <input> - Path to source directory or an individual source file. If not supplied
174
+ defaults to the current working directory. Multiple directories
175
+ can be specified by repeating arguments, separated by whitespace.
176
+
177
+ <output> - Path to the generated documentation. If not supplied, defaults to
178
+ ./docs in the current working directory. If it does not exist, it
179
+ is created. If it does exist it remains in place, but existing
180
+ files are overwritten by new files with the same name.
181
+
182
+ Options
183
+
184
+ Use -o or --option for boolean switches and --option=value or --option:value
185
+ for options that require an explicit value to be set.
186
+
187
+ -h --help [switch] Display this help message and exit
188
+ -v --version [switch] Display version header and exit
189
+ -c --config [string] Path to a config properties file
190
+ -p --packages [string] Defines package convention for the model
191
+ -t --theme [string] Template theme for generated docs
192
+
193
+
194
+ HELP
195
+ @out.puts help
196
+ end
197
+
198
+ end
199
+
200
+ end
@@ -0,0 +1,5 @@
1
+ # Default configuration settings for Yarrow.
2
+ # This is loaded when the configuration is initialized.
3
+ meta:
4
+ title: Default Project
5
+ author: Project Author
@@ -0,0 +1,12 @@
1
+ module Yarrow
2
+
3
+ # Generates documentation from a model.
4
+ #
5
+ # Subclasses of Generator need to override the template methods,
6
+ # to specify a particular file structure to output.
7
+ class Generator
8
+
9
+
10
+ end
11
+
12
+ end
@@ -0,0 +1,4 @@
1
+ module Yarrow
2
+ APP_NAME = "Yarrow"
3
+ VERSION = "0.1.2"
4
+ end
data/lib/yarrow.rb ADDED
@@ -0,0 +1,7 @@
1
+ require "hashie"
2
+ require "yaml"
3
+
4
+ require "yarrow/version"
5
+ require "yarrow/configuration"
6
+ require "yarrow/console_runner"
7
+ require "yarrow/generator"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yarrow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Rickerby
@@ -26,10 +26,18 @@ dependencies:
26
26
  version: '0'
27
27
  description: Documentation generator
28
28
  email: me@maetl.net
29
- executables: []
29
+ executables:
30
+ - yarrow
30
31
  extensions: []
31
32
  extra_rdoc_files: []
32
- files: []
33
+ files:
34
+ - bin/yarrow
35
+ - lib/yarrow/configuration.rb
36
+ - lib/yarrow/console_runner.rb
37
+ - lib/yarrow/defaults.yml
38
+ - lib/yarrow/generator.rb
39
+ - lib/yarrow/version.rb
40
+ - lib/yarrow.rb
33
41
  homepage: http://rubygems.org/gems/yarrow
34
42
  licenses: []
35
43
  metadata: {}