solidus_json_api 0.3.0

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 (140) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.rspec +2 -0
  4. data/CHANGELOG.md +224 -0
  5. data/Gemfile +6 -0
  6. data/LICENSE +26 -0
  7. data/README.md +94 -0
  8. data/Rakefile +38 -0
  9. data/app/controllers/concerns/spree/api/v2/renderable.rb +63 -0
  10. data/app/controllers/spree/api/v2/base_controller.rb +9 -0
  11. data/app/controllers/spree/api/v2/children_controller.rb +29 -0
  12. data/app/controllers/spree/api/v2/countries_controller.rb +21 -0
  13. data/app/controllers/spree/api/v2/images_controller.rb +29 -0
  14. data/app/controllers/spree/api/v2/line_items_controller.rb +36 -0
  15. data/app/controllers/spree/api/v2/option_types_controller.rb +31 -0
  16. data/app/controllers/spree/api/v2/option_values_controller.rb +29 -0
  17. data/app/controllers/spree/api/v2/orders_controller.rb +21 -0
  18. data/app/controllers/spree/api/v2/prices_controller.rb +27 -0
  19. data/app/controllers/spree/api/v2/products_controller.rb +37 -0
  20. data/app/controllers/spree/api/v2/states_controller.rb +29 -0
  21. data/app/controllers/spree/api/v2/taxonomies_controller.rb +21 -0
  22. data/app/controllers/spree/api/v2/taxons_controller.rb +40 -0
  23. data/app/controllers/spree/api/v2/variants_controller.rb +35 -0
  24. data/app/models/spree/base_decorator.rb +5 -0
  25. data/app/models/spree/image_decorator.rb +3 -0
  26. data/app/models/spree/line_item_decorator.rb +3 -0
  27. data/app/models/spree/order_decorator.rb +3 -0
  28. data/app/models/spree/price_decorator.rb +3 -0
  29. data/app/models/spree/state_decorator.rb +3 -0
  30. data/app/serializers/spree/address_serializer.rb +9 -0
  31. data/app/serializers/spree/base_serializer.rb +13 -0
  32. data/app/serializers/spree/country_serializer.rb +7 -0
  33. data/app/serializers/spree/error_serializer.rb +55 -0
  34. data/app/serializers/spree/image_serializer.rb +13 -0
  35. data/app/serializers/spree/line_item_serializer.rb +13 -0
  36. data/app/serializers/spree/option_type_serializer.rb +8 -0
  37. data/app/serializers/spree/option_value_serializer.rb +8 -0
  38. data/app/serializers/spree/order_serializer.rb +20 -0
  39. data/app/serializers/spree/price_serializer.rb +7 -0
  40. data/app/serializers/spree/product_serializer.rb +12 -0
  41. data/app/serializers/spree/role_serializer.rb +5 -0
  42. data/app/serializers/spree/state_serializer.rb +7 -0
  43. data/app/serializers/spree/store_serializer.rb +6 -0
  44. data/app/serializers/spree/taxon_serializer.rb +16 -0
  45. data/app/serializers/spree/taxonomy_serializer.rb +7 -0
  46. data/app/serializers/spree/user_serializer.rb +5 -0
  47. data/app/serializers/spree/variant_serializer.rb +12 -0
  48. data/circle.yml +12 -0
  49. data/config/locales/en.yml +25 -0
  50. data/config/routes.rb +53 -0
  51. data/docs/.nojekyll +0 -0
  52. data/docs/Dockerfile +12 -0
  53. data/docs/Gemfile +14 -0
  54. data/docs/README.md +12 -0
  55. data/docs/Rakefile +9 -0
  56. data/docs/config.rb +39 -0
  57. data/docs/font-selection.json +148 -0
  58. data/docs/source/CNAME +1 -0
  59. data/docs/source/fonts/slate.eot +0 -0
  60. data/docs/source/fonts/slate.svg +14 -0
  61. data/docs/source/fonts/slate.ttf +0 -0
  62. data/docs/source/fonts/slate.woff +0 -0
  63. data/docs/source/fonts/slate.woff2 +0 -0
  64. data/docs/source/images/favicon.ico +0 -0
  65. data/docs/source/images/navbar.png +0 -0
  66. data/docs/source/includes/_countries.md +133 -0
  67. data/docs/source/includes/_errors.md +17 -0
  68. data/docs/source/includes/_filtering.md +11 -0
  69. data/docs/source/includes/_images.md +201 -0
  70. data/docs/source/includes/_line_items.md +143 -0
  71. data/docs/source/includes/_option_types.md +267 -0
  72. data/docs/source/includes/_option_values.md +227 -0
  73. data/docs/source/includes/_orders.md +150 -0
  74. data/docs/source/includes/_pagination.md +10 -0
  75. data/docs/source/includes/_prices.md +188 -0
  76. data/docs/source/includes/_products.md +407 -0
  77. data/docs/source/includes/_states.md +96 -0
  78. data/docs/source/includes/_taxonomies.md +325 -0
  79. data/docs/source/includes/_taxons.md +414 -0
  80. data/docs/source/includes/_variants.md +430 -0
  81. data/docs/source/index.md +51 -0
  82. data/docs/source/javascripts/all.js +4 -0
  83. data/docs/source/javascripts/all_nosearch.js +3 -0
  84. data/docs/source/javascripts/app/_lang.js +162 -0
  85. data/docs/source/javascripts/app/_search.js +74 -0
  86. data/docs/source/javascripts/app/_toc.js +55 -0
  87. data/docs/source/javascripts/lib/_energize.js +169 -0
  88. data/docs/source/javascripts/lib/_imagesloaded.min.js +7 -0
  89. data/docs/source/javascripts/lib/_jquery.highlight.js +108 -0
  90. data/docs/source/javascripts/lib/_jquery.tocify.js +1042 -0
  91. data/docs/source/javascripts/lib/_jquery_ui.js +566 -0
  92. data/docs/source/javascripts/lib/_lunr.js +1910 -0
  93. data/docs/source/layouts/layout.erb +110 -0
  94. data/docs/source/stylesheets/_icon-font.scss +38 -0
  95. data/docs/source/stylesheets/_normalize.css +427 -0
  96. data/docs/source/stylesheets/_syntax.scss.erb +27 -0
  97. data/docs/source/stylesheets/_variables.scss +109 -0
  98. data/docs/source/stylesheets/print.css.scss +142 -0
  99. data/docs/source/stylesheets/screen.css.scss +622 -0
  100. data/lib/solidus_json_api/config.rb +8 -0
  101. data/lib/solidus_json_api/engine.rb +21 -0
  102. data/lib/solidus_json_api.rb +5 -0
  103. data/solidus_json_api.gemspec +36 -0
  104. data/spec/controllers/spree/api/v2/base_controller_spec.rb +46 -0
  105. data/spec/controllers/spree/api/v2/children_controller_spec.rb +28 -0
  106. data/spec/controllers/spree/api/v2/countries_controller_spec.rb +25 -0
  107. data/spec/controllers/spree/api/v2/images_controller_spec.rb +91 -0
  108. data/spec/controllers/spree/api/v2/line_items_controller_spec.rb +101 -0
  109. data/spec/controllers/spree/api/v2/option_types_controller_spec.rb +71 -0
  110. data/spec/controllers/spree/api/v2/option_values_controller_spec.rb +88 -0
  111. data/spec/controllers/spree/api/v2/orders_controller_spec.rb +61 -0
  112. data/spec/controllers/spree/api/v2/prices_controller_spec.rb +55 -0
  113. data/spec/controllers/spree/api/v2/products_controller_spec.rb +99 -0
  114. data/spec/controllers/spree/api/v2/states_controller_spec.rb +42 -0
  115. data/spec/controllers/spree/api/v2/taxonomies_controller_spec.rb +31 -0
  116. data/spec/controllers/spree/api/v2/taxons_controller_spec.rb +54 -0
  117. data/spec/controllers/spree/api/v2/variants_controller_spec.rb +106 -0
  118. data/spec/lib/solidus_json_api/config_spec.rb +10 -0
  119. data/spec/models/spree/base_decorator_spec.rb +9 -0
  120. data/spec/models/spree/price_decorator_spec.rb +3 -0
  121. data/spec/serializers/spree/address_serializer_spec.rb +35 -0
  122. data/spec/serializers/spree/country_serializer_spec.rb +27 -0
  123. data/spec/serializers/spree/error_serializer_spec.rb +141 -0
  124. data/spec/serializers/spree/image_serializer_spec.rb +30 -0
  125. data/spec/serializers/spree/line_item_serializer_spec.rb +40 -0
  126. data/spec/serializers/spree/option_type_serializer_spec.rb +27 -0
  127. data/spec/serializers/spree/option_value_serializer_spec.rb +29 -0
  128. data/spec/serializers/spree/order_serializer_spec.rb +68 -0
  129. data/spec/serializers/spree/price_serializer_spec.rb +28 -0
  130. data/spec/serializers/spree/product_serializer_spec.rb +47 -0
  131. data/spec/serializers/spree/role_serializer_spec.rb +17 -0
  132. data/spec/serializers/spree/state_serializer_spec.rb +25 -0
  133. data/spec/serializers/spree/store_serializer_spec.rb +25 -0
  134. data/spec/serializers/spree/taxon_serializer_spec.rb +44 -0
  135. data/spec/serializers/spree/taxonomy_serializer_spec.rb +27 -0
  136. data/spec/serializers/spree/user_serializer_spec.rb +17 -0
  137. data/spec/serializers/spree/variant_serializer_spec.rb +55 -0
  138. data/spec/spec_helper.rb +57 -0
  139. data/spec/support/shoulda_matchers.rb +6 -0
  140. metadata +442 -0
@@ -0,0 +1,109 @@
1
+ /*
2
+ Copyright 2008-2013 Concur Technologies, Inc.
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License"); you may
5
+ not use this file except in compliance with the License. You may obtain
6
+ a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12
+ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13
+ License for the specific language governing permissions and limitations
14
+ under the License.
15
+ */
16
+
17
+
18
+ ////////////////////////////////////////////////////////////////////////////////
19
+ // CUSTOMIZE SLATE
20
+ ////////////////////////////////////////////////////////////////////////////////
21
+ // Use these settings to help adjust the appearance of Slate
22
+
23
+
24
+ // BACKGROUND COLORS
25
+ ////////////////////
26
+ $nav-bg: #393939;
27
+ $examples-bg: #393939;
28
+ $code-bg: #292929;
29
+ $code-annotation-bg: #1c1c1c;
30
+ $nav-subitem-bg: #262626;
31
+ $nav-active-bg: #2467af;
32
+ $lang-select-border: #000;
33
+ $lang-select-bg: #222;
34
+ $lang-select-active-bg: $examples-bg; // feel free to change this to blue or something
35
+ $lang-select-pressed-bg: #111; // color of language tab bg when mouse is pressed
36
+ $main-bg: #eaf2f6;
37
+ $aside-notice-bg: #8fbcd4;
38
+ $aside-warning-bg: #c97a7e;
39
+ $aside-success-bg: #6ac174;
40
+ $search-notice-bg: #c97a7e;
41
+
42
+
43
+ // TEXT COLORS
44
+ ////////////////////
45
+ $main-text: #333; // main content text color
46
+ $nav-text: #fff;
47
+ $nav-active-text: #fff;
48
+ $lang-select-text: #fff; // color of unselected language tab text
49
+ $lang-select-active-text: #fff; // color of selected language tab text
50
+ $lang-select-pressed-text: #fff; // color of language tab text when mouse is pressed
51
+
52
+
53
+ // SIZES
54
+ ////////////////////
55
+ $nav-width: 250px; // width of the navbar
56
+ $examples-width: 50%; // portion of the screen taken up by code examples
57
+ $logo-margin: 20px; // margin between nav items and logo, ignored if search is active
58
+ $main-padding: 28px; // padding to left and right of content & examples
59
+ $nav-padding: 15px; // padding to left and right of navbar
60
+ $nav-v-padding: 10px; // padding used vertically around search boxes and results
61
+ $nav-indent: 10px; // extra padding for ToC subitems
62
+ $code-annotation-padding: 13px; // padding inside code annotations
63
+ $h1-margin-bottom: 21px; // padding under the largest header tags
64
+ $tablet-width: 930px; // min width before reverting to tablet size
65
+ $phone-width: $tablet-width - $nav-width; // min width before reverting to mobile size
66
+
67
+
68
+ // FONTS
69
+ ////////////////////
70
+ %default-font {
71
+ font-family: "Helvetica Neue", Helvetica, Arial, "Microsoft Yahei","微软雅黑", STXihei, "华文细黑", sans-serif;
72
+ font-size: 13px;
73
+ }
74
+
75
+ %header-font {
76
+ @extend %default-font;
77
+ font-weight: bold;
78
+ }
79
+
80
+ %code-font {
81
+ font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, serif;
82
+ font-size: 12px;
83
+ line-height: 1.5;
84
+ }
85
+
86
+
87
+ // OTHER
88
+ ////////////////////
89
+ $nav-active-shadow: #000;
90
+ $nav-footer-border-color: #666;
91
+ $nav-embossed-border-top: #000;
92
+ $nav-embossed-border-bottom: #939393;
93
+ $main-embossed-text-shadow: 0px 1px 0px #fff;
94
+ $search-box-border-color: #666;
95
+
96
+
97
+ ////////////////////////////////////////////////////////////////////////////////
98
+ // INTERNAL
99
+ ////////////////////////////////////////////////////////////////////////////////
100
+ // These settings are probably best left alone.
101
+
102
+ %break-words {
103
+ word-break: break-all;
104
+
105
+ /* Non standard for webkit */
106
+ word-break: break-word;
107
+
108
+ hyphens: auto;
109
+ }
@@ -0,0 +1,142 @@
1
+ @charset "utf-8";
2
+ @import 'normalize';
3
+ @import 'compass';
4
+ @import 'variables';
5
+ @import 'icon-font';
6
+
7
+ /*
8
+ Copyright 2008-2013 Concur Technologies, Inc.
9
+
10
+ Licensed under the Apache License, Version 2.0 (the "License"); you may
11
+ not use this file except in compliance with the License. You may obtain
12
+ a copy of the License at
13
+
14
+ http://www.apache.org/licenses/LICENSE-2.0
15
+
16
+ Unless required by applicable law or agreed to in writing, software
17
+ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
18
+ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
19
+ License for the specific language governing permissions and limitations
20
+ under the License.
21
+ */
22
+
23
+ $print-color: #999;
24
+ $print-color-light: #ccc;
25
+ $print-font-size: 12px;
26
+
27
+ body {
28
+ @extend %default-font;
29
+ }
30
+
31
+ .tocify, .toc-footer, .lang-selector, .search, #nav-button {
32
+ display: none;
33
+ }
34
+
35
+ .tocify-wrapper>img {
36
+ margin: 0 auto;
37
+ display: block;
38
+ }
39
+
40
+ .content {
41
+ font-size: 12px;
42
+
43
+ pre, code {
44
+ @extend %code-font;
45
+ @extend %break-words;
46
+ border: 1px solid $print-color;
47
+ border-radius: 5px;
48
+ font-size: 0.8em;
49
+ }
50
+
51
+ pre {
52
+ padding: 1.3em;
53
+ }
54
+
55
+ code {
56
+ padding: 0.2em;
57
+ }
58
+
59
+ table {
60
+ border: 1px solid $print-color;
61
+ tr {
62
+ border-bottom: 1px solid $print-color;
63
+ }
64
+ td,th {
65
+ padding: 0.7em;
66
+ }
67
+ }
68
+
69
+ p {
70
+ line-height: 1.5;
71
+ }
72
+
73
+ a {
74
+ text-decoration: none;
75
+ color: #000;
76
+ }
77
+
78
+ h1 {
79
+ @extend %header-font;
80
+ font-size: 2.5em;
81
+ padding-top: 0.5em;
82
+ padding-bottom: 0.5em;
83
+ margin-top: 1em;
84
+ margin-bottom: $h1-margin-bottom;
85
+ border: 2px solid $print-color-light;
86
+ border-width: 2px 0;
87
+ text-align: center;
88
+ }
89
+
90
+ h2 {
91
+ @extend %header-font;
92
+ font-size: 1.8em;
93
+ margin-top: 2em;
94
+ border-top: 2px solid $print-color-light;
95
+ padding-top: 0.8em;
96
+ }
97
+
98
+ h1+h2, h1+div+h2 {
99
+ border-top: none;
100
+ padding-top: 0;
101
+ margin-top: 0;
102
+ }
103
+
104
+ h3, h4 {
105
+ @extend %header-font;
106
+ font-size: 0.8em;
107
+ margin-top: 1.5em;
108
+ margin-bottom: 0.8em;
109
+ text-transform: uppercase;
110
+ }
111
+
112
+ h5, h6 {
113
+ text-transform: uppercase;
114
+ }
115
+
116
+ aside {
117
+ padding: 1em;
118
+ border: 1px solid $print-color-light;
119
+ border-radius: 5px;
120
+ margin-top: 1.5em;
121
+ margin-bottom: 1.5em;
122
+ line-height: 1.6;
123
+ }
124
+
125
+ aside:before {
126
+ vertical-align: middle;
127
+ padding-right: 0.5em;
128
+ font-size: 14px;
129
+ }
130
+
131
+ aside.notice:before {
132
+ @extend %icon-info-sign;
133
+ }
134
+
135
+ aside.warning:before {
136
+ @extend %icon-exclamation-sign;
137
+ }
138
+
139
+ aside.success:before {
140
+ @extend %icon-ok-sign;
141
+ }
142
+ }