apical 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/.document +5 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +24 -0
  4. data/Gemfile.lock +70 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.rdoc +94 -0
  7. data/Rakefile +55 -0
  8. data/VERSION +1 -0
  9. data/apical.gemspec +122 -0
  10. data/bin/apical +7 -0
  11. data/examples/taco_truck/Gemfile +7 -0
  12. data/examples/taco_truck/Gemfile.lock +50 -0
  13. data/examples/taco_truck/app.rb +13 -0
  14. data/examples/taco_truck/taco_truck.apical +18 -0
  15. data/lib/apical.rb +30 -0
  16. data/lib/apical/adapter.rb +21 -0
  17. data/lib/apical/adapters/http_adapter.rb +30 -0
  18. data/lib/apical/adapters/rack_adapter.rb +16 -0
  19. data/lib/apical/cli.rb +36 -0
  20. data/lib/apical/content_types.rb +62 -0
  21. data/lib/apical/resource.rb +138 -0
  22. data/lib/apical/resource_types.rb +36 -0
  23. data/lib/apical/runner.rb +104 -0
  24. data/lib/apical/writers/console_writer.rb +26 -0
  25. data/lib/apical/writers/html_writer.rb +37 -0
  26. data/spec/apical/adapters/http_adapter_spec.rb +24 -0
  27. data/spec/apical/cli_spec.rb +81 -0
  28. data/spec/apical/content_types_spec.rb +9 -0
  29. data/spec/apical/rack_adapter_spec.rb +12 -0
  30. data/spec/apical_spec.rb +360 -0
  31. data/spec/before_and_after_spec.rb +211 -0
  32. data/spec/fixtures/cli_example_1.rb +7 -0
  33. data/spec/fixtures/cli_example_2.rb +8 -0
  34. data/spec/fixtures/example_require.rb +3 -0
  35. data/spec/fixtures/load_paths_example.apical +1 -0
  36. data/spec/html_writer_spec.rb +117 -0
  37. data/spec/http_apical_spec.rb +23 -0
  38. data/spec/load_paths_spec.rb +12 -0
  39. data/spec/spec_helper.rb +19 -0
  40. data/spec/support/test_apps.rb +34 -0
  41. data/templates/apical_helper.rb +11 -0
  42. data/templates/layout.mustache +180 -0
  43. data/templates/resource.mustache +14 -0
  44. metadata +248 -0
@@ -0,0 +1,11 @@
1
+ require 'apical'
2
+
3
+ ENV["RAILS_ENV"] ||= 'test'
4
+ require File.expand_path("../../../config/environment", __FILE__)
5
+ # Requires supporting ruby files with custom matchers and macros, etc,
6
+ # in spec/support/ and its subdirectories.
7
+ Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
8
+ require 'database_cleaner'
9
+
10
+ DatabaseCleaner.strategy = :truncation
11
+
@@ -0,0 +1,180 @@
1
+ <html>
2
+ <head>
3
+ <title>{{name}}</title>
4
+ <style>
5
+
6
+ html, body, div, span, applet, object, iframe,
7
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
8
+ a, abbr, acronym, address, big, cite, code,
9
+ del, dfn, em, img, ins, kbd, q, s, samp,
10
+ small, strike, strong, sub, sup, tt, var,
11
+ b, u, i, center,
12
+ dl, dt, dd, ol, ul, li,
13
+ fieldset, form, label, legend,
14
+ table, caption, tbody, tfoot, thead, tr, th, td,
15
+ article, aside, canvas, details, embed,
16
+ figure, figcaption, footer, header, hgroup,
17
+ menu, nav, output, ruby, section, summary,
18
+ time, mark, audio, video {
19
+ margin: 0;
20
+ padding: 0;
21
+ border: 0;
22
+ font-size: 100%;
23
+ font: inherit;
24
+ vertical-align: baseline;
25
+ }
26
+ /* HTML5 display-role reset for older browsers */
27
+ article, aside, details, figcaption, figure,
28
+ footer, header, hgroup, menu, nav, section {
29
+ display: block;
30
+ }
31
+ body {
32
+ line-height: 1;
33
+ }
34
+ ol, ul {
35
+ list-style: none;
36
+ }
37
+ blockquote, q {
38
+ quotes: none;
39
+ }
40
+ blockquote:before, blockquote:after,
41
+ q:before, q:after {
42
+ content: '';
43
+ content: none;
44
+ }
45
+ table {
46
+ border-collapse: collapse;
47
+ border-spacing: 0;
48
+ }
49
+
50
+
51
+
52
+
53
+
54
+ body {
55
+ font-family: Helvetica;
56
+ margin: 1em;
57
+ }
58
+
59
+ .container {
60
+ margin: 0 auto;
61
+ width: 940px;
62
+ }
63
+
64
+ h1 {
65
+ font-size: 2.0em;
66
+ }
67
+
68
+ .api-resource {
69
+ margin: 1em 0;
70
+ }
71
+
72
+ .api-resource .method {
73
+ font-size: 1em;
74
+ background-color: #999;
75
+ background-image: -webkit-linear-gradient(top,
76
+ transparent 0%,
77
+ rgba(0, 0, 0, 0.296875) 100%);
78
+ background-origin: padding-box;
79
+ border-bottom-color:
80
+ white;
81
+ border-bottom-left-radius: 0px;
82
+ border-bottom-style: none;
83
+ border-bottom-width: 0px;
84
+ border-left-color:
85
+ white;
86
+ border-left-style: none;
87
+ border-left-width: 0px;
88
+ border-right-color:
89
+ white;
90
+ border-right-style: none;
91
+ border-right-width: 0px;
92
+ border-top-color:
93
+ white;
94
+ border-top-left-radius: 3px;
95
+ border-top-style: none;
96
+ border-top-width: 0px;
97
+ color:
98
+ white;
99
+ text-align: center;
100
+ text-shadow:
101
+ rgba(0, 0, 0, 0.296875) 0px -1px 0px;
102
+ text-transform: uppercase;
103
+ vertical-align: baseline;
104
+ padding: 0.5em;
105
+ display: inline-block;
106
+ width: 84px;
107
+ }
108
+
109
+ .api-resource .path {
110
+ display: inline-block;
111
+ font-family: Monaco, fixed;
112
+ color: #0669CD;
113
+ font-size: 1em;
114
+ }
115
+
116
+ .desc {
117
+ margin: 1em 0;
118
+ color:
119
+ #333;
120
+ display: block;
121
+ font-family: Helvetica, sans-serif;
122
+ font-size: 13px;
123
+ font-weight: 100;
124
+ height: 17px;
125
+ line-height: 17px;
126
+ text-shadow:
127
+ rgba(255, 255, 255, 0.597656) 0px 1px 0px;
128
+ vertical-align: baseline;
129
+ }
130
+ .api-resource .params,
131
+ .api-resource .response {
132
+ font-family: Monaco, fixed;
133
+ margin: 1em 0;
134
+ overflow: scroll;
135
+ white-space: pre;
136
+ background-color: #333333;
137
+ color: #8B8B8B;
138
+ padding: 1em;
139
+ border-radius: 2px;
140
+ }
141
+
142
+ .api-resource .accept,
143
+ .api-resource .content_type {
144
+ white-space: normal;
145
+ color: #C29262;
146
+ display: block;
147
+ font-family: Helvetica;
148
+ }
149
+
150
+ .api-resource .accept span,
151
+ .api-resource .content_type span {
152
+ float: right;
153
+ background-color: #2169CD;
154
+ color: white;
155
+ padding: 0.5em;
156
+ font-size: 0.75em;
157
+ border-radius: 0.25em;
158
+ }
159
+
160
+ .api-resource .content_type {
161
+ display: block;
162
+ color: #C29262;
163
+ font-family: Helvetica;
164
+ }
165
+ </style>
166
+ </head>
167
+
168
+ <body>
169
+ <div class="container">
170
+ <h1>{{name}}</h1>
171
+ <div class="desc">
172
+ {{{desc}}}
173
+ </div>
174
+ <div class="api">
175
+ {{{content}}}
176
+ </div>
177
+ </div>
178
+ </body>
179
+ </html>
180
+
@@ -0,0 +1,14 @@
1
+ <div class="api-resource">
2
+ <div class="method">{{method}}</div>
3
+ <div class="path">{{path}}</div>
4
+ <div class="desc">{{{desc}}}</div>
5
+
6
+ <div class="params"><div class="accept">IN <span>{{accept}}</span></div>
7
+ {{params}}
8
+ </div>
9
+
10
+ <div class="response"><div class="content_type">OUT <span>{{content_type}}</span></div>
11
+ {{response}}
12
+ </div>
13
+
14
+ </div>
metadata ADDED
@@ -0,0 +1,248 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: apical
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.4
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - T.J. VanSlyke
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-06-15 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: thor
16
+ requirement: &70211861342100 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70211861342100
25
+ - !ruby/object:Gem::Dependency
26
+ name: mustache
27
+ requirement: &70211861341380 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70211861341380
36
+ - !ruby/object:Gem::Dependency
37
+ name: rack-test
38
+ requirement: &70211861340540 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *70211861340540
47
+ - !ruby/object:Gem::Dependency
48
+ name: httparty
49
+ requirement: &70211861339420 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *70211861339420
58
+ - !ruby/object:Gem::Dependency
59
+ name: mustache
60
+ requirement: &70211861338680 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *70211861338680
69
+ - !ruby/object:Gem::Dependency
70
+ name: kramdown
71
+ requirement: &70211861338040 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: *70211861338040
80
+ - !ruby/object:Gem::Dependency
81
+ name: pry
82
+ requirement: &70211861337360 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: *70211861337360
91
+ - !ruby/object:Gem::Dependency
92
+ name: rspec
93
+ requirement: &70211861336760 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ~>
97
+ - !ruby/object:Gem::Version
98
+ version: 2.8.0
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *70211861336760
102
+ - !ruby/object:Gem::Dependency
103
+ name: rdoc
104
+ requirement: &70211861335980 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: '3.12'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: *70211861335980
113
+ - !ruby/object:Gem::Dependency
114
+ name: bundler
115
+ requirement: &70211861335220 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: 1.0.0
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: *70211861335220
124
+ - !ruby/object:Gem::Dependency
125
+ name: jeweler
126
+ requirement: &70211861334480 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: 1.8.3
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: *70211861334480
135
+ - !ruby/object:Gem::Dependency
136
+ name: json
137
+ requirement: &70211861333540 !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ type: :development
144
+ prerelease: false
145
+ version_requirements: *70211861333540
146
+ - !ruby/object:Gem::Dependency
147
+ name: sinatra
148
+ requirement: &70211861332840 !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: *70211861332840
157
+ - !ruby/object:Gem::Dependency
158
+ name: webmock
159
+ requirement: &70211861332180 !ruby/object:Gem::Requirement
160
+ none: false
161
+ requirements:
162
+ - - ! '>='
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
165
+ type: :development
166
+ prerelease: false
167
+ version_requirements: *70211861332180
168
+ description: Minimalist API documentation generator for Rack applications.
169
+ email: tj@turing.com
170
+ executables:
171
+ - apical
172
+ extensions: []
173
+ extra_rdoc_files:
174
+ - LICENSE.txt
175
+ - README.rdoc
176
+ files:
177
+ - .document
178
+ - .rspec
179
+ - Gemfile
180
+ - Gemfile.lock
181
+ - LICENSE.txt
182
+ - README.rdoc
183
+ - Rakefile
184
+ - VERSION
185
+ - apical.gemspec
186
+ - bin/apical
187
+ - examples/taco_truck/Gemfile
188
+ - examples/taco_truck/Gemfile.lock
189
+ - examples/taco_truck/app.rb
190
+ - examples/taco_truck/taco_truck.apical
191
+ - lib/apical.rb
192
+ - lib/apical/adapter.rb
193
+ - lib/apical/adapters/http_adapter.rb
194
+ - lib/apical/adapters/rack_adapter.rb
195
+ - lib/apical/cli.rb
196
+ - lib/apical/content_types.rb
197
+ - lib/apical/resource.rb
198
+ - lib/apical/resource_types.rb
199
+ - lib/apical/runner.rb
200
+ - lib/apical/writers/console_writer.rb
201
+ - lib/apical/writers/html_writer.rb
202
+ - spec/apical/adapters/http_adapter_spec.rb
203
+ - spec/apical/cli_spec.rb
204
+ - spec/apical/content_types_spec.rb
205
+ - spec/apical/rack_adapter_spec.rb
206
+ - spec/apical_spec.rb
207
+ - spec/before_and_after_spec.rb
208
+ - spec/fixtures/cli_example_1.rb
209
+ - spec/fixtures/cli_example_2.rb
210
+ - spec/fixtures/example_require.rb
211
+ - spec/fixtures/load_paths_example.apical
212
+ - spec/html_writer_spec.rb
213
+ - spec/http_apical_spec.rb
214
+ - spec/load_paths_spec.rb
215
+ - spec/spec_helper.rb
216
+ - spec/support/test_apps.rb
217
+ - templates/apical_helper.rb
218
+ - templates/layout.mustache
219
+ - templates/resource.mustache
220
+ homepage: http://github.com/turingstudio/apical
221
+ licenses:
222
+ - MIT
223
+ post_install_message:
224
+ rdoc_options: []
225
+ require_paths:
226
+ - lib
227
+ required_ruby_version: !ruby/object:Gem::Requirement
228
+ none: false
229
+ requirements:
230
+ - - ! '>='
231
+ - !ruby/object:Gem::Version
232
+ version: '0'
233
+ segments:
234
+ - 0
235
+ hash: 3203171633857319017
236
+ required_rubygems_version: !ruby/object:Gem::Requirement
237
+ none: false
238
+ requirements:
239
+ - - ! '>='
240
+ - !ruby/object:Gem::Version
241
+ version: '0'
242
+ requirements: []
243
+ rubyforge_project:
244
+ rubygems_version: 1.8.10
245
+ signing_key:
246
+ specification_version: 3
247
+ summary: Minimalist API documentation generator for Rack applications.
248
+ test_files: []