apical 0.1.4

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.
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: []