solidus_api_v2 0.2.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 (138) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.rspec +2 -0
  4. data/CHANGELOG.md +38 -0
  5. data/Gemfile +13 -0
  6. data/LICENSE +26 -0
  7. data/README.md +98 -0
  8. data/Rakefile +37 -0
  9. data/app/controllers/concerns/spree/api/v2/renderable.rb +51 -0
  10. data/app/controllers/spree/api/v2/base_controller.rb +31 -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 +11 -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/price_decorator.rb +3 -0
  27. data/app/models/spree/state_decorator.rb +3 -0
  28. data/app/serializers/spree/address_serializer.rb +9 -0
  29. data/app/serializers/spree/base_serializer.rb +13 -0
  30. data/app/serializers/spree/country_serializer.rb +7 -0
  31. data/app/serializers/spree/error_serializer.rb +52 -0
  32. data/app/serializers/spree/image_serializer.rb +13 -0
  33. data/app/serializers/spree/line_item_serializer.rb +13 -0
  34. data/app/serializers/spree/option_type_serializer.rb +8 -0
  35. data/app/serializers/spree/option_value_serializer.rb +8 -0
  36. data/app/serializers/spree/order_serializer.rb +21 -0
  37. data/app/serializers/spree/price_serializer.rb +7 -0
  38. data/app/serializers/spree/product_serializer.rb +12 -0
  39. data/app/serializers/spree/role_serializer.rb +5 -0
  40. data/app/serializers/spree/state_serializer.rb +7 -0
  41. data/app/serializers/spree/store_serializer.rb +6 -0
  42. data/app/serializers/spree/taxon_serializer.rb +16 -0
  43. data/app/serializers/spree/taxonomy_serializer.rb +7 -0
  44. data/app/serializers/spree/user_serializer.rb +5 -0
  45. data/app/serializers/spree/variant_serializer.rb +12 -0
  46. data/bin/rails +7 -0
  47. data/circle.yml +13 -0
  48. data/config/locales/en.yml +25 -0
  49. data/config/routes.rb +53 -0
  50. data/docs/.nojekyll +0 -0
  51. data/docs/Dockerfile +12 -0
  52. data/docs/Gemfile +13 -0
  53. data/docs/README.md +12 -0
  54. data/docs/Rakefile +9 -0
  55. data/docs/config.rb +39 -0
  56. data/docs/font-selection.json +148 -0
  57. data/docs/source/fonts/slate.eot +0 -0
  58. data/docs/source/fonts/slate.svg +14 -0
  59. data/docs/source/fonts/slate.ttf +0 -0
  60. data/docs/source/fonts/slate.woff +0 -0
  61. data/docs/source/fonts/slate.woff2 +0 -0
  62. data/docs/source/images/logo.png +0 -0
  63. data/docs/source/images/navbar.png +0 -0
  64. data/docs/source/includes/_authentication.md +61 -0
  65. data/docs/source/includes/_countries.md +133 -0
  66. data/docs/source/includes/_errors.md +17 -0
  67. data/docs/source/includes/_filtering.md +11 -0
  68. data/docs/source/includes/_images.md +201 -0
  69. data/docs/source/includes/_line_items.md +137 -0
  70. data/docs/source/includes/_option_types.md +267 -0
  71. data/docs/source/includes/_option_values.md +227 -0
  72. data/docs/source/includes/_orders.md +75 -0
  73. data/docs/source/includes/_pagination.md +10 -0
  74. data/docs/source/includes/_prices.md +188 -0
  75. data/docs/source/includes/_products.md +403 -0
  76. data/docs/source/includes/_states.md +96 -0
  77. data/docs/source/includes/_taxonomies.md +325 -0
  78. data/docs/source/includes/_taxons.md +414 -0
  79. data/docs/source/includes/_variants.md +430 -0
  80. data/docs/source/index.md +53 -0
  81. data/docs/source/javascripts/all.js +4 -0
  82. data/docs/source/javascripts/all_nosearch.js +3 -0
  83. data/docs/source/javascripts/app/_lang.js +162 -0
  84. data/docs/source/javascripts/app/_search.js +74 -0
  85. data/docs/source/javascripts/app/_toc.js +55 -0
  86. data/docs/source/javascripts/lib/_energize.js +169 -0
  87. data/docs/source/javascripts/lib/_imagesloaded.min.js +7 -0
  88. data/docs/source/javascripts/lib/_jquery.highlight.js +108 -0
  89. data/docs/source/javascripts/lib/_jquery.tocify.js +1042 -0
  90. data/docs/source/javascripts/lib/_jquery_ui.js +566 -0
  91. data/docs/source/javascripts/lib/_lunr.js +1910 -0
  92. data/docs/source/layouts/layout.erb +102 -0
  93. data/docs/source/stylesheets/_icon-font.scss +38 -0
  94. data/docs/source/stylesheets/_normalize.css +427 -0
  95. data/docs/source/stylesheets/_syntax.scss.erb +27 -0
  96. data/docs/source/stylesheets/_variables.scss +109 -0
  97. data/docs/source/stylesheets/print.css.scss +142 -0
  98. data/docs/source/stylesheets/screen.css.scss +622 -0
  99. data/lib/solidus_api_v2.rb +5 -0
  100. data/lib/spree_api_v2/engine.rb +21 -0
  101. data/lib/spree_api_v2.rb +4 -0
  102. data/solidus_api_v2.gemspec +36 -0
  103. data/spec/controllers/spree/api/v2/children_controller_spec.rb +28 -0
  104. data/spec/controllers/spree/api/v2/countries_controller_spec.rb +25 -0
  105. data/spec/controllers/spree/api/v2/images_controller_spec.rb +93 -0
  106. data/spec/controllers/spree/api/v2/line_items_controller_spec.rb +86 -0
  107. data/spec/controllers/spree/api/v2/option_types_controller_spec.rb +73 -0
  108. data/spec/controllers/spree/api/v2/option_values_controller_spec.rb +88 -0
  109. data/spec/controllers/spree/api/v2/orders_controller_spec.rb +15 -0
  110. data/spec/controllers/spree/api/v2/prices_controller_spec.rb +55 -0
  111. data/spec/controllers/spree/api/v2/products_controller_spec.rb +95 -0
  112. data/spec/controllers/spree/api/v2/states_controller_spec.rb +42 -0
  113. data/spec/controllers/spree/api/v2/taxonomies_controller_spec.rb +31 -0
  114. data/spec/controllers/spree/api/v2/taxons_controller_spec.rb +54 -0
  115. data/spec/controllers/spree/api/v2/variants_controller_spec.rb +108 -0
  116. data/spec/models/spree/base_decorator_spec.rb +9 -0
  117. data/spec/models/spree/price_decorator_spec.rb +3 -0
  118. data/spec/serializers/spree/address_serializer_spec.rb +35 -0
  119. data/spec/serializers/spree/country_serializer_spec.rb +27 -0
  120. data/spec/serializers/spree/error_serializer_spec.rb +116 -0
  121. data/spec/serializers/spree/image_serializer_spec.rb +30 -0
  122. data/spec/serializers/spree/line_item_serializer_spec.rb +40 -0
  123. data/spec/serializers/spree/option_type_serializer_spec.rb +27 -0
  124. data/spec/serializers/spree/option_value_serializer_spec.rb +29 -0
  125. data/spec/serializers/spree/order_serializer_spec.rb +69 -0
  126. data/spec/serializers/spree/price_serializer_spec.rb +28 -0
  127. data/spec/serializers/spree/product_serializer_spec.rb +47 -0
  128. data/spec/serializers/spree/role_serializer_spec.rb +17 -0
  129. data/spec/serializers/spree/state_serializer_spec.rb +25 -0
  130. data/spec/serializers/spree/store_serializer_spec.rb +25 -0
  131. data/spec/serializers/spree/taxon_serializer_spec.rb +44 -0
  132. data/spec/serializers/spree/taxonomy_serializer_spec.rb +27 -0
  133. data/spec/serializers/spree/user_serializer_spec.rb +17 -0
  134. data/spec/serializers/spree/variant_serializer_spec.rb +55 -0
  135. data/spec/spec_helper.rb +51 -0
  136. data/spec/support/shoulda_matchers.rb +6 -0
  137. data/spree_api_v2.gemspec +36 -0
  138. metadata +437 -0
@@ -0,0 +1,35 @@
1
+ module Spree
2
+ module Api
3
+ module V2
4
+ class VariantsController < Spree::Api::V2::BaseController
5
+ skip_before_action :authenticate_user
6
+
7
+ def index
8
+ render_collection variants.includes(:default_price, :prices, :option_values, :product, :images)
9
+ end
10
+
11
+ def show
12
+ if params[:price_id]
13
+ render_instance Spree::Price.find(params[:price_id]).variant
14
+ elsif params[:image_id]
15
+ render_instance Spree::Image.variants.find(params[:image_id]).viewable
16
+ else
17
+ render_instance variants.find(params[:id])
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ def variants
24
+ if params[:product_id]
25
+ Spree::Product.find(params[:product_id]).variants_including_master
26
+ elsif params[:option_value_id]
27
+ Spree::OptionValue.find(params[:option_value_id]).variants
28
+ else
29
+ Spree::Variant
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,5 @@
1
+ Spree::Base.class_eval do
2
+ def self.paginate(page_attrs)
3
+ page(page_attrs[:number]).per(page_attrs[:size])
4
+ end
5
+ end
@@ -0,0 +1,3 @@
1
+ Spree::Image.class_eval do
2
+ scope :variants, -> { where(viewable_type: 'Spree::Variant') }
3
+ end
@@ -0,0 +1,3 @@
1
+ Spree::Price.class_eval do
2
+ delegate :product, to: :variant
3
+ end
@@ -0,0 +1,3 @@
1
+ Spree::State.class_eval do
2
+ scope :find_country, -> (id) { includes(:country).find(id).country }
3
+ end
@@ -0,0 +1,9 @@
1
+ module Spree
2
+ class AddressSerializer < Spree::BaseSerializer
3
+ attributes :first_name, :last_name, :address1, :address2, :city, :zipcode,
4
+ :phone
5
+
6
+ belongs_to :state
7
+ belongs_to :country
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ module Spree
2
+ class BaseSerializer < ActiveModel::Serializer
3
+ def image_links(object)
4
+ {
5
+ original: object.url(:original),
6
+ mini: object.url(:mini),
7
+ small: object.url(:small),
8
+ product: object.url(:product),
9
+ large: object.url(:large)
10
+ }
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,7 @@
1
+ module Spree
2
+ class CountrySerializer < Spree::BaseSerializer
3
+ attributes :iso_name, :iso, :iso3, :name, :numcode, :states_required
4
+
5
+ has_many :states
6
+ end
7
+ end
@@ -0,0 +1,52 @@
1
+ module Spree
2
+ class ErrorSerializer
3
+ attr_accessor :resource, :options
4
+
5
+ def initialize(resource, options = {})
6
+ @resource = resource
7
+ @options = options
8
+ end
9
+
10
+ def as_json
11
+ { errors: error_messages }.to_json
12
+ end
13
+
14
+ private
15
+
16
+ def resource_error_objects(messages)
17
+ messages.map do |title, detail|
18
+ if title.is_a?(Hash) && title[:title]
19
+ error_object title[:title], title[:detail]
20
+ else
21
+ pointer = "data/attributes/#{title.to_s.split('.').join('/')}"
22
+ error_object title.to_s.gsub('.', ' '), detail.to_sentence, pointer: pointer
23
+ end
24
+ end
25
+ end
26
+
27
+ def error_messages
28
+ case resource
29
+ when Symbol
30
+ title_translation = Spree.t("api.errors.#{resource}.title")
31
+ detail_translation = Spree.t("api.errors.#{resource}.detail")
32
+ [error_object(title_translation, detail_translation)]
33
+ when Array
34
+ resource.map do |errors|
35
+ resource_error_objects errors
36
+ end.flatten
37
+ else
38
+ resource_error_objects resource.errors.messages
39
+ end
40
+ end
41
+
42
+ def error_object(title, detail, pointer: '')
43
+ error = {
44
+ detail: detail.gsub("\n", ' ').strip,
45
+ meta: options,
46
+ title: title.to_s.titleize
47
+ }
48
+
49
+ pointer.present? ? error.merge(pointer: pointer) : error
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,13 @@
1
+ module Spree
2
+ class ImageSerializer < Spree::BaseSerializer
3
+ attributes :position, :alt, :links
4
+
5
+ belongs_to :viewable
6
+
7
+ private
8
+
9
+ def links
10
+ image_links object.attachment
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ module Spree
2
+ class LineItemSerializer < Spree::BaseSerializer
3
+ attributes :id, :quantity, :variant_id, :order_id, :currency, :cost_price,
4
+ :adjustment_total, :additional_tax_total, :price
5
+
6
+ %w(amount total).each do |money_method|
7
+ attributes money_method, "display_#{money_method}"
8
+ end
9
+
10
+ belongs_to :order
11
+ belongs_to :variant
12
+ end
13
+ end
@@ -0,0 +1,8 @@
1
+ module Spree
2
+ class OptionTypeSerializer < Spree::BaseSerializer
3
+ attributes :name, :presentation, :position
4
+
5
+ has_many :option_values
6
+ has_many :products
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module Spree
2
+ class OptionValueSerializer < Spree::BaseSerializer
3
+ attributes :name, :presentation, :position
4
+
5
+ belongs_to :option_type
6
+ has_many :variants
7
+ end
8
+ end
@@ -0,0 +1,21 @@
1
+ module Spree
2
+ class OrderSerializer < Spree::BaseSerializer
3
+ attributes :email, :number, :state, :completed_at, :shipment_state,
4
+ :payment_state, :special_instructions, :currency, :channel,
5
+ :item_count, :approved_at, :confirmation_delivered,
6
+ :considered_risky, :canceled_at, :payment_total, :total,
7
+ :display_total
8
+
9
+ %w(
10
+ item adjustment shipment promo additional_tax included_tax
11
+ ).each do |money_method|
12
+ attributes "#{money_method}_total", "display_#{money_method}_total"
13
+ end
14
+
15
+ has_one :user
16
+ has_one :bill_address
17
+ has_one :ship_address
18
+
19
+ has_many :line_items
20
+ end
21
+ end
@@ -0,0 +1,7 @@
1
+ module Spree
2
+ class PriceSerializer < Spree::BaseSerializer
3
+ attributes :amount, :price, :display_amount, :display_price, :currency
4
+
5
+ belongs_to :variant
6
+ end
7
+ end
@@ -0,0 +1,12 @@
1
+ module Spree
2
+ class ProductSerializer < Spree::BaseSerializer
3
+ attributes :name, :description, :slug, :meta_description, :meta_keywords
4
+
5
+ has_one :master
6
+
7
+ has_many :variants
8
+ has_many :taxons
9
+ has_many :option_types
10
+ has_many :images
11
+ end
12
+ end
@@ -0,0 +1,5 @@
1
+ module Spree
2
+ class RoleSerializer < Spree::BaseSerializer
3
+ attributes :name
4
+ end
5
+ end
@@ -0,0 +1,7 @@
1
+ module Spree
2
+ class StateSerializer < Spree::BaseSerializer
3
+ attributes :name, :abbr
4
+
5
+ belongs_to :country
6
+ end
7
+ end
@@ -0,0 +1,6 @@
1
+ module Spree
2
+ class StoreSerializer < Spree::BaseSerializer
3
+ attributes :name, :url, :meta_description, :meta_keywords, :seo_title,
4
+ :mail_from_address, :default_currency, :code, :default
5
+ end
6
+ end
@@ -0,0 +1,16 @@
1
+ module Spree
2
+ class TaxonSerializer < Spree::BaseSerializer
3
+ attributes :name, :permalink, :position, :description, :meta_title, :links,
4
+ :meta_description, :meta_keywords, :depth
5
+
6
+ belongs_to :taxonomy
7
+ belongs_to :parent, serializer: TaxonSerializer
8
+ has_many :children, serializer: TaxonSerializer
9
+
10
+ private
11
+
12
+ def links
13
+ image_links object.icon
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,7 @@
1
+ module Spree
2
+ class TaxonomySerializer < Spree::BaseSerializer
3
+ attributes :name, :position
4
+
5
+ has_many :taxons
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ module Spree
2
+ class UserSerializer < ActiveModel::Serializer
3
+ attributes :id, :email
4
+ end
5
+ end
@@ -0,0 +1,12 @@
1
+ module Spree
2
+ class VariantSerializer < Spree::BaseSerializer
3
+ attributes :sku, :weight, :height, :width, :depth, :is_master, :position,
4
+ :name, :price, :display_price
5
+
6
+ has_many :prices
7
+ has_many :option_values
8
+ has_many :images
9
+
10
+ belongs_to :product
11
+ end
12
+ end
data/bin/rails ADDED
@@ -0,0 +1,7 @@
1
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
2
+
3
+ ENGINE_ROOT = File.expand_path('../..', __FILE__)
4
+ ENGINE_PATH = File.expand_path('../../lib/spree_api_v2/engine', __FILE__)
5
+
6
+ require 'rails/all'
7
+ require 'rails/engine/commands'
data/circle.yml ADDED
@@ -0,0 +1,13 @@
1
+ ---
2
+ machine:
3
+ environment:
4
+ DB: postgres
5
+ services:
6
+ - postgresql
7
+ ruby:
8
+ version: 2.2.3
9
+
10
+ test:
11
+ override:
12
+ - bundle exec rake GEMNAME=spree_api_v2
13
+ - bundle exec rake GEMNAME=solidus_api_v2
@@ -0,0 +1,25 @@
1
+ en:
2
+ spree:
3
+ api:
4
+ errors:
5
+ invalid_token:
6
+ detail: 'Your token is invalid, please use a different one.'
7
+ title: Invalid Token
8
+ order_complete:
9
+ detail: This order has been completed.
10
+ title: Order Complete
11
+ product_out_of_stock:
12
+ title: Product is out of Stock
13
+ detail: >
14
+ This product is out of stock for the selected quantity.
15
+ record_not_found:
16
+ title: Record Not Found
17
+ detail: >
18
+ One of the records that you were looking for could not be found.
19
+ Please check to see if the record exists or if you're permitted to
20
+ read it.
21
+ quantity_too_high:
22
+ title: Quantity is too High
23
+ detail: >
24
+ The quantity that you have submitted is astronomically high, please
25
+ tone it down a bit.
data/config/routes.rb ADDED
@@ -0,0 +1,53 @@
1
+ Spree::Core::Engine.routes.draw do
2
+ namespace :api, defaults: { format: :json } do
3
+ namespace :v2 do
4
+ resources :countries, only: [:index, :show] do
5
+ resources :states, only: [:index, :show]
6
+ end
7
+
8
+ resources :images, only: [:index, :show] do
9
+ resource :product, :variant, only: :show
10
+ end
11
+
12
+ resources :line_items, only: :create
13
+
14
+ resources :option_types, only: [:index, :show] do
15
+ resources :option_values, :products, only: [:index, :show]
16
+ end
17
+
18
+ resources :option_values, only: [:index, :show] do
19
+ resource :option_type, only: :show
20
+ resources :variants, only: [:index, :show]
21
+ end
22
+
23
+ resources :orders, only: :show
24
+
25
+ resources :prices, only: [:index, :show] do
26
+ resource :variant, :product, only: :show
27
+ end
28
+
29
+ resources :products, only: [:index, :show] do
30
+ resources :option_types, :variants, :images, only: [:index, :show]
31
+ end
32
+
33
+ resources :states, only: [:index, :show] do
34
+ resource :country, only: :show
35
+ end
36
+
37
+ resources :taxonomies, only: [:index, :show] do
38
+ resources :taxons, only: [:index, :show]
39
+ end
40
+
41
+ resources :taxons, only: [:index, :show] do
42
+ resources :children, :products, only: [:index, :show]
43
+ resource :parent, only: :show, controller: 'taxons'
44
+ resource :taxonomy, only: :show
45
+ end
46
+
47
+ resources :variants, only: [:index, :show] do
48
+ resources :prices, :option_values, :images, only: [:index, :show]
49
+ resource :product, only: :show
50
+ end
51
+ end
52
+ end
53
+ end
data/docs/.nojekyll ADDED
File without changes
data/docs/Dockerfile ADDED
@@ -0,0 +1,12 @@
1
+ FROM ubuntu:trusty
2
+
3
+ RUN apt-get update
4
+ RUN apt-get install -yq ruby ruby-dev build-essential git
5
+ RUN gem install --no-ri --no-rdoc bundler
6
+ ADD Gemfile /app/Gemfile
7
+ ADD Gemfile.lock /app/Gemfile.lock
8
+ RUN cd /app; bundle install
9
+ ADD . /app
10
+ EXPOSE 4567
11
+ WORKDIR /app
12
+ CMD ["bundle", "exec", "middleman", "server"]
data/docs/Gemfile ADDED
@@ -0,0 +1,13 @@
1
+ source 'https://rubygems.org'
2
+ ruby '2.2.3'
3
+
4
+ # Middleman
5
+ gem 'middleman', '~>3.3.10'
6
+ gem 'middleman-gh-pages', '~> 0.0.3'
7
+ gem 'middleman-syntax', '~> 2.0.0'
8
+ gem 'middleman-autoprefixer', '~> 2.4.4'
9
+ gem 'rouge', '~> 1.9.0'
10
+ gem 'redcarpet', '~> 3.3.2'
11
+
12
+ gem 'rake', '~> 10.4.2'
13
+ gem 'therubyracer', '~> 0.12.2', platforms: :ruby
data/docs/README.md ADDED
@@ -0,0 +1,12 @@
1
+ # Documentation for the Spree API V2
2
+
3
+ The documentation is hand written and forked from [Slate](https://github.com/tripit/slate).
4
+ Please update these docs when you make a contribution.
5
+
6
+ ## Setup
7
+
8
+ ```shell
9
+ cd docs
10
+ bundle
11
+ middleman server
12
+ ```
data/docs/Rakefile ADDED
@@ -0,0 +1,9 @@
1
+ ENV['MM_ROOT'] = File.expand_path '.'
2
+ ENV['BUNDLE_GEMFILE'] = File.expand_path './Gemfile'
3
+
4
+ require 'middleman-gh-pages'
5
+ require 'rake/clean'
6
+
7
+ CLOBBER.include('build')
8
+
9
+ task default: [:build]
data/docs/config.rb ADDED
@@ -0,0 +1,39 @@
1
+ PROJECT_ROOT = File.expand_path '.'
2
+ BUILD_DIR = File.expand_path './../build'
3
+
4
+ # Markdown
5
+ set :markdown_engine, :redcarpet
6
+ set :markdown,
7
+ fenced_code_blocks: true,
8
+ smartypants: true,
9
+ disable_indented_code_blocks: true,
10
+ prettify: true,
11
+ tables: true,
12
+ with_toc_data: true,
13
+ no_intra_emphasis: true
14
+
15
+ # Assets
16
+ set :css_dir, 'stylesheets'
17
+ set :js_dir, 'javascripts'
18
+ set :images_dir, 'images'
19
+ set :fonts_dir, 'fonts'
20
+
21
+ # Activate the syntax highlighter
22
+ activate :syntax
23
+
24
+ activate :autoprefixer do |config|
25
+ config.browsers = ['last 2 version', 'Firefox ESR']
26
+ config.cascade = false
27
+ config.inline = true
28
+ end
29
+
30
+ # Github pages require relative links
31
+ activate :relative_assets
32
+ set :relative_links, true
33
+
34
+ # Build Configuration
35
+ set :build_dir, BUILD_DIR
36
+ configure :build do
37
+ activate :minify_css
38
+ activate :minify_javascript
39
+ end
@@ -0,0 +1,148 @@
1
+ {
2
+ "IcoMoonType": "selection",
3
+ "icons": [
4
+ {
5
+ "icon": {
6
+ "paths": [
7
+ "M438.857 73.143q119.429 0 220.286 58.857t159.714 159.714 58.857 220.286-58.857 220.286-159.714 159.714-220.286 58.857-220.286-58.857-159.714-159.714-58.857-220.286 58.857-220.286 159.714-159.714 220.286-58.857zM512 785.714v-108.571q0-8-5.143-13.429t-12.571-5.429h-109.714q-7.429 0-13.143 5.714t-5.714 13.143v108.571q0 7.429 5.714 13.143t13.143 5.714h109.714q7.429 0 12.571-5.429t5.143-13.429zM510.857 589.143l10.286-354.857q0-6.857-5.714-10.286-5.714-4.571-13.714-4.571h-125.714q-8 0-13.714 4.571-5.714 3.429-5.714 10.286l9.714 354.857q0 5.714 5.714 10t13.714 4.286h105.714q8 0 13.429-4.286t6-10z"
8
+ ],
9
+ "attrs": [],
10
+ "isMulticolor": false,
11
+ "tags": [
12
+ "exclamation-circle"
13
+ ],
14
+ "defaultCode": 61546,
15
+ "grid": 14
16
+ },
17
+ "attrs": [],
18
+ "properties": {
19
+ "id": 100,
20
+ "order": 4,
21
+ "prevSize": 28,
22
+ "code": 58880,
23
+ "name": "exclamation-sign",
24
+ "ligatures": ""
25
+ },
26
+ "setIdx": 0,
27
+ "iconIdx": 0
28
+ },
29
+ {
30
+ "icon": {
31
+ "paths": [
32
+ "M585.143 786.286v-91.429q0-8-5.143-13.143t-13.143-5.143h-54.857v-292.571q0-8-5.143-13.143t-13.143-5.143h-182.857q-8 0-13.143 5.143t-5.143 13.143v91.429q0 8 5.143 13.143t13.143 5.143h54.857v182.857h-54.857q-8 0-13.143 5.143t-5.143 13.143v91.429q0 8 5.143 13.143t13.143 5.143h256q8 0 13.143-5.143t5.143-13.143zM512 274.286v-91.429q0-8-5.143-13.143t-13.143-5.143h-109.714q-8 0-13.143 5.143t-5.143 13.143v91.429q0 8 5.143 13.143t13.143 5.143h109.714q8 0 13.143-5.143t5.143-13.143zM877.714 512q0 119.429-58.857 220.286t-159.714 159.714-220.286 58.857-220.286-58.857-159.714-159.714-58.857-220.286 58.857-220.286 159.714-159.714 220.286-58.857 220.286 58.857 159.714 159.714 58.857 220.286z"
33
+ ],
34
+ "attrs": [],
35
+ "isMulticolor": false,
36
+ "tags": [
37
+ "info-circle"
38
+ ],
39
+ "defaultCode": 61530,
40
+ "grid": 14
41
+ },
42
+ "attrs": [],
43
+ "properties": {
44
+ "id": 85,
45
+ "order": 3,
46
+ "name": "info-sign",
47
+ "prevSize": 28,
48
+ "code": 58882
49
+ },
50
+ "setIdx": 0,
51
+ "iconIdx": 2
52
+ },
53
+ {
54
+ "icon": {
55
+ "paths": [
56
+ "M733.714 419.429q0-16-10.286-26.286l-52-51.429q-10.857-10.857-25.714-10.857t-25.714 10.857l-233.143 232.571-129.143-129.143q-10.857-10.857-25.714-10.857t-25.714 10.857l-52 51.429q-10.286 10.286-10.286 26.286 0 15.429 10.286 25.714l206.857 206.857q10.857 10.857 25.714 10.857 15.429 0 26.286-10.857l310.286-310.286q10.286-10.286 10.286-25.714zM877.714 512q0 119.429-58.857 220.286t-159.714 159.714-220.286 58.857-220.286-58.857-159.714-159.714-58.857-220.286 58.857-220.286 159.714-159.714 220.286-58.857 220.286 58.857 159.714 159.714 58.857 220.286z"
57
+ ],
58
+ "attrs": [],
59
+ "isMulticolor": false,
60
+ "tags": [
61
+ "check-circle"
62
+ ],
63
+ "defaultCode": 61528,
64
+ "grid": 14
65
+ },
66
+ "attrs": [],
67
+ "properties": {
68
+ "id": 83,
69
+ "order": 9,
70
+ "prevSize": 28,
71
+ "code": 58886,
72
+ "name": "ok-sign"
73
+ },
74
+ "setIdx": 0,
75
+ "iconIdx": 6
76
+ },
77
+ {
78
+ "icon": {
79
+ "paths": [
80
+ "M658.286 475.429q0-105.714-75.143-180.857t-180.857-75.143-180.857 75.143-75.143 180.857 75.143 180.857 180.857 75.143 180.857-75.143 75.143-180.857zM950.857 950.857q0 29.714-21.714 51.429t-51.429 21.714q-30.857 0-51.429-21.714l-196-195.429q-102.286 70.857-228 70.857-81.714 0-156.286-31.714t-128.571-85.714-85.714-128.571-31.714-156.286 31.714-156.286 85.714-128.571 128.571-85.714 156.286-31.714 156.286 31.714 128.571 85.714 85.714 128.571 31.714 156.286q0 125.714-70.857 228l196 196q21.143 21.143 21.143 51.429z"
81
+ ],
82
+ "width": 951,
83
+ "attrs": [],
84
+ "isMulticolor": false,
85
+ "tags": [
86
+ "search"
87
+ ],
88
+ "defaultCode": 61442,
89
+ "grid": 14
90
+ },
91
+ "attrs": [],
92
+ "properties": {
93
+ "id": 2,
94
+ "order": 1,
95
+ "prevSize": 28,
96
+ "code": 58887,
97
+ "name": "icon-search"
98
+ },
99
+ "setIdx": 0,
100
+ "iconIdx": 7
101
+ }
102
+ ],
103
+ "height": 1024,
104
+ "metadata": {
105
+ "name": "slate",
106
+ "license": "SIL OFL 1.1"
107
+ },
108
+ "preferences": {
109
+ "showGlyphs": true,
110
+ "showQuickUse": true,
111
+ "showQuickUse2": true,
112
+ "showSVGs": true,
113
+ "fontPref": {
114
+ "prefix": "icon-",
115
+ "metadata": {
116
+ "fontFamily": "slate",
117
+ "majorVersion": 1,
118
+ "minorVersion": 0,
119
+ "description": "Based on FontAwesome",
120
+ "license": "SIL OFL 1.1"
121
+ },
122
+ "metrics": {
123
+ "emSize": 1024,
124
+ "baseline": 6.25,
125
+ "whitespace": 50
126
+ },
127
+ "resetPoint": 58880,
128
+ "showSelector": false,
129
+ "selector": "class",
130
+ "classSelector": ".icon",
131
+ "showMetrics": false,
132
+ "showMetadata": true,
133
+ "showVersion": true,
134
+ "ie7": false
135
+ },
136
+ "imagePref": {
137
+ "prefix": "icon-",
138
+ "png": true,
139
+ "useClassSelector": true,
140
+ "color": 4473924,
141
+ "bgColor": 16777215
142
+ },
143
+ "historySize": 100,
144
+ "showCodes": true,
145
+ "gridSize": 16,
146
+ "showLiga": false
147
+ }
148
+ }
Binary file