rails_api_documentation 0.1.5 → 0.1.6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8fec87b98a5de0c01bc9ffe55e6dfb8e81f194fa
4
- data.tar.gz: 70d0b724c9da74bf125a2ece0b6152ffc7b31072
3
+ metadata.gz: bdf183cc6b6c0fda395a7562bc1d114b87bb1478
4
+ data.tar.gz: 6dd2a3f83b5cac67029bc216d87ab76d14db884b
5
5
  SHA512:
6
- metadata.gz: 08c79edab16e29c414d3cfcaaf38390b21126ca85577b9223f07273ca9a8eb8f7f754435960fbe9f15bdca0ceee08a2c56f170c7fa74495ba414844353ec6993
7
- data.tar.gz: 72a5a4f71861d300fdeea60bf4825f4278fd56846b4aae6a7d883ddfd598d337991e0da4e629d3498538647c751d84e26a384043cf6d73059dc1b9e3b1d797b6
6
+ metadata.gz: 1394d326673eab65074575a2de2ea16801c8c8f406302f06e7197e325131a5271b38636ca5ba3afc0816a7a56f1980d0ae52287593cef52218a44207310a11fd
7
+ data.tar.gz: 2a8b66d882789e7d4fd81aa40b8bed53dda409c67a375d00dc0bc6cd86401cd4df5c339bb7aa505b789b64fdf7a4b01b86b6f859d7eb517d50ac8090e3dbf01c
data/Rakefile CHANGED
@@ -14,21 +14,8 @@ RDoc::Task.new(:rdoc) do |rdoc|
14
14
  rdoc.rdoc_files.include('lib/**/*.rb')
15
15
  end
16
16
 
17
-
18
-
19
-
20
-
21
-
22
17
  require 'bundler/gem_tasks'
23
18
 
24
19
  require 'rake/testtask'
25
20
 
26
- Rake::TestTask.new(:test) do |t|
27
- t.libs << 'lib'
28
- t.libs << 'test'
29
- t.pattern = 'test/**/*_test.rb'
30
- t.verbose = false
31
- end
32
-
33
-
34
- task default: :test
21
+ task default: :release
@@ -1,3 +1,6 @@
1
+ _header_height = 0
2
+ _side_menu = null
3
+
1
4
  $ ->
2
5
  $('.next-is-nested').on 'click', (e) ->
3
6
  self = $(this)
@@ -5,4 +8,41 @@ $ ->
5
8
 
6
9
  $('.request-action-title').on 'click', (e) ->
7
10
  self = $(this)
8
- self.next().toggle()
11
+ next = self.next()
12
+ return unless next.hasClass('flex-table')
13
+ next.toggle()
14
+
15
+ $('.add-ico, .edit-ico').on 'click', (e) ->
16
+ self = $(this)
17
+ self.closest('.row').toggleClass('is-active')
18
+
19
+ _header_height = $('.aside').offset().top
20
+
21
+ _side_menu = $('#side-menu')
22
+
23
+ $(document).on 'scroll', ->
24
+ _window = $(window)
25
+ _scrollTop = _window.scrollTop()
26
+
27
+ console.log _header_height
28
+ if _scrollTop > _header_height
29
+ _side_menu.addClass('fixed')
30
+ else
31
+ _side_menu.removeClass('fixed')
32
+
33
+ $("#side-menu li").removeClass('is-current')
34
+
35
+ $("#side-menu li a").each () ->
36
+ self = $(this)
37
+
38
+ _attached_block_id = self.attr('href')
39
+ # 0 is '#'
40
+ _attached_block = document.getElementById(_attached_block_id.substring(1))
41
+ jq_block = $(_attached_block)
42
+
43
+ # 5 is magic number to get block in sight on top get selected in menu
44
+ offset_top = jq_block.offset().top - 5
45
+ offset_height = jq_block.height()
46
+
47
+ if _scrollTop > offset_top && _scrollTop < offset_top + offset_height
48
+ self.closest('li').addClass('is-current')
@@ -13,3 +13,81 @@
13
13
  *= require_tree .
14
14
  *= require_self
15
15
  */
16
+
17
+ /*
18
+ *
19
+ * TOPICS:
20
+ * 1. icons / svgs / sprites
21
+ * 2. file structure
22
+ * 3. side menu
23
+ * a) from both left and right
24
+ * b) left one always on screen
25
+ * c) left should reduce font size if too much content
26
+ *
27
+ */
28
+
29
+ .affix {
30
+ position: fixed !important;
31
+ }
32
+ .nav > li > a {
33
+ display: block;
34
+ padding: 4px 20px;
35
+ font-size: 15px;
36
+ font-weight: 500;
37
+ color: #767676;
38
+ }
39
+
40
+ .nav > li > a:hover {
41
+ padding-left: 19px;
42
+ color: #563d7c;
43
+ text-decoration: none;
44
+ background-color: transparent;
45
+ border-left: 1px solid #563d7c;
46
+ }
47
+
48
+ .bs-docs-sidebar.affix {
49
+ position: fixed;
50
+ top: 20px;
51
+ padding-left: 20px;
52
+ margin: 0;
53
+ }
54
+ .nav {
55
+ padding-left: 0;
56
+ }
57
+
58
+ .bs-docs-sidebar .nav>.is-current:focus>a, .bs-docs-sidebar .nav>.is-current:hover>a, .bs-docs-sidebar .nav>.is-current>a {
59
+ padding-left: 18px;
60
+ font-weight: 700;
61
+ color: #563d7c;
62
+ background-color: transparent;
63
+ border-left: 2px solid #563d7c;
64
+ }
65
+
66
+ .nav>li>ul>.is-current>a {
67
+ padding-left: 28px;
68
+ font-weight: 500;
69
+ }
70
+
71
+ .bs-docs-sidebar .nav .nav>li>a {
72
+ padding-top: 1px;
73
+ padding-bottom: 1px;
74
+ padding-left: 30px;
75
+ font-size: 14px;
76
+ font-weight: 500;
77
+ }
78
+
79
+ .blue {
80
+ background-color: #A0A0E5;
81
+ }
82
+
83
+ .title{
84
+ background-color: #f5f3f3;
85
+ }
86
+ .table-column {
87
+ border: 1px solid black;
88
+ }
89
+
90
+ .nopadding {
91
+ padding: 0 !important;
92
+ margin: 0 !important;
93
+ }
@@ -51,9 +51,16 @@
51
51
  // display: -ms-flexbox
52
52
  // display: -webkit-flex
53
53
  //
54
-
55
54
  &.row
56
55
  display: flex
56
+
57
+ &.is-active
58
+
59
+ input
60
+ display: inline-block
61
+
62
+ .mod-submit
63
+ display: inline-block
57
64
  // flex-flow: row wrap
58
65
  // justify-content: space-between
59
66
 
@@ -84,6 +91,13 @@
84
91
  .row &
85
92
  width: calc(100%/var(--row-count))
86
93
  min-height: 20px
94
+
95
+ &.mod-submit
96
+ display: none
97
+
98
+ input
99
+ display: none
100
+
87
101
  // Что я сделал ?? - оно почемуто заработало было flex-grow: 1
88
102
  // В статье написано что это тоже самое, а на практике - не так ?
89
103
  // flex: 1
@@ -100,6 +114,26 @@
100
114
  .column &
101
115
  width: 100%
102
116
 
117
+ .header
118
+ text-align: center
119
+
120
+ .content
121
+ display: flex
122
+
123
+ .aside
124
+ flex: 1
125
+
126
+ .main-block
127
+ flex: 4
128
+
129
+ #side-menu
130
+ position: static
131
+
132
+ &.fixed
133
+ position: fixed
134
+ top: 0
135
+
103
136
  .request-action-title
104
137
  text-align: center
138
+
105
139
  background-color: lightblue
@@ -1,43 +1,4 @@
1
1
  - @request_headers = { enum: 'Values(if type is enum)' }
2
2
 
3
- div[href=(locals[:model].to_s + '.request') style="--row-count: #{@request_headers.length}"]
3
+ div[id="#{locals[:model]}.request" style="--row-count: #{@request_headers.length}"]
4
4
  = render 'shared/table', locals: { model: locals[:model], rows: locals[:params] }
5
-
6
- / .row
7
- / = form_tag(api_doc_path, method: 'post', remote: true, class: 'form-horizontal') do
8
-
9
- / - ([:name] + headers).each do |field_name|
10
- / div.field(class="col-md-#{col_num - 1}")
11
- / / Add parameter name second argument
12
- / = text_field_tag field_name, nil, placeholder: field_name, class: 'form-control'
13
- /
14
- / div.actions(class="col-md-#{col_num - 1}")
15
- / = button_tag 'Add table parameter', class: 'btn btn-primary'
16
- / = render 'edit_field'
17
-
18
- / .table
19
- / div.nopadding[class="col-md-#{col_num}"]
20
- / = link_to new_api_doc_path, class: 'btn btn-primary btn-xs' do
21
- / span.glyphicon.glyphicon-plus
22
- / | Parameter
23
- /
24
- / - headers.each do |param_header|
25
- / div.nopadding[class="col-md-#{col_num}"] = param_header
26
- /
27
- / - locals[:params].each do |param_key, param_values|
28
- / .row.blue
29
- / div.nopadding[class="col-md-#{col_num}" style="white-space: nowrap;"]
30
- / - unless param_values.nested?
31
- / = link_to edit_api_doc_path, class: 'btn btn-primary btn-xs' do
32
- / span.glyphicon.glyphicon-pencil
33
- / = link_to api_doc_path(param_key: param_key, nesting: locals[:nesting]), class: 'btn btn-primary btn-xs', method: :delete do
34
- / span.glyphicon.glyphicon-minus
35
- / | #{param_key}#{'*' if param_values.required?}
36
- /
37
- / - if param_values.nested?
38
- / .table-column[class="col-md-#{12 - col_num}"]
39
- / - nested_params = locals[:nesting].to_a.push(locals[:model])
40
- / = render 'request_api_table', locals: { model: param_values[:model] || param_key, params: param_values[:nested], nesting: nested_params }
41
- / - else
42
- / - headers.each do |param_header|
43
- / .table-column[class="col-md-#{col_num}"] = param_values[param_header]
@@ -1,4 +1,4 @@
1
- div[href=(model.to_s + '.response') style="--row-count: 3"]
1
+ div[id="#{model}.response" style="--row-count: 3"]
2
2
  - repo.map[model][:actions].each do |action|
3
3
  // TODO: Nest table in this div for easier jq toggling
4
4
  // add borders to this div
@@ -1,5 +1,5 @@
1
- nav.bs-docs-sidebar.hidden-print.hidden-sm.hidden-xs(data-spy="affix" data-offset-top="60")
2
- ul.nav.bs-docs-sidenav
1
+ nav.bs-docs-sidebar.hidden-print.hidden-sm.hidden-xs
2
+ ul.side-menu.nav.bs-docs-sidenav
3
3
  - locals[:models].each do |model|
4
4
  li
5
5
  a[href=('#' + model.to_s)] = model.to_s
@@ -1,12 +1,19 @@
1
- .container.bs-docs-container
2
- .row
1
+ .layout
2
+ .header
3
3
  = render 'title'
4
- .row
5
- .col-md-9[role="main"]
4
+ .content
5
+ div.aside
6
+ div#side-menu
7
+ = render 'side_menu', locals: { models: @request_repository.keys }
8
+
9
+ div.main-block
6
10
 
7
11
  - @request_repository.each do |model, params|
8
- .bs-docs-section
9
- h2[id=(model.to_s)] = model.to_s
12
+
13
+ div[id=(model.to_s)]
14
+
15
+ h2 = model.to_s
16
+
10
17
  p
11
18
  | Scopes
12
19
  | #{model.scopes_configuration.keys.map { |key| ":#{key}"}.join(', ')}
@@ -18,6 +25,3 @@
18
25
  p
19
26
  | Response
20
27
  = render 'response_api_table', model: model, repo: @response_repository
21
-
22
- .col-md-3[role="complementary"]
23
- = render 'side_menu', locals: { models: @request_repository.keys }
@@ -1,14 +1,30 @@
1
+ - nesting = locals[:nesting] || []
2
+
1
3
  div.flex-table
2
- div.flex-line.row
4
+
5
+ = form_tag(api_doc_url(nesting: nesting), method: :put, remote: true, class: 'flex-line row') do
3
6
  / Угловой елемент
4
- div.flex-item Parameter
7
+ div.flex-item
8
+ // TODO: use icon with + to indicate adding
9
+ span.add-ico = '( + )'
10
+ = text_field_tag 'name', nil, placeholder: 'Enter param name'
11
+ span Parameter
12
+
5
13
  div.flex-item Value
14
+
15
+ = submit_tag 'Save', class: 'flex-item mod-submit'
16
+
6
17
  - locals[:rows].each do |row_name, node|
7
- div.flex-line.row
8
- div.flex-item #{row_name}
18
+ = form_tag(api_doc_url(nesting: nesting), method: :put, remote: true, class: 'flex-line row') do
19
+ div.flex-item
20
+ span.edit-ico = '(edit)'
21
+ = text_field_tag 'name', row_name, placeholder: 'Enter param name'
22
+ span #{row_name}
9
23
  - if node.nested?
10
24
  div.flex-item.next-is-nested #{node.attr}(Nested)
11
25
  - else
12
26
  div.flex-item #{node.attr}
27
+ = submit_tag 'Save', class: 'flex-item mod-submit'
28
+
13
29
  - if node.nested?
14
- = render 'shared/response_table', locals: { rows: node.nested }
30
+ = render 'shared/response_table', locals: { rows: node.nested, nesting: nesting + [row_name] }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  # author: Vadim Shaveiko <@vshaveyko>
3
3
  module RailsApiDoc
4
- VERSION = '0.1.5'
4
+ VERSION = '0.1.6'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_api_documentation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - vs
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-11-20 00:00:00.000000000 Z
11
+ date: 2016-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler