ledger_sync 1.4.2 → 1.4.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/.overcommit.yml +30 -0
  3. data/.travis.yml +6 -1
  4. data/Gemfile +2 -0
  5. data/Gemfile.lock +11 -5
  6. data/Rakefile +2 -0
  7. data/bin/console +1 -0
  8. data/bin/quickbooks_online_oauth_server.rb +5 -4
  9. data/documentation/generators/generator.rb +4 -4
  10. data/documentation/site/LICENSE.md +14 -14
  11. data/documentation/site/_includes/header.html +34 -34
  12. data/documentation/site/_includes/section_content.html +25 -30
  13. data/documentation/site/_includes/section_cta.html +20 -24
  14. data/documentation/site/_includes/section_grid.html +39 -54
  15. data/documentation/site/_includes/section_hero.html +19 -24
  16. data/documentation/site/_includes/submenu.html +6 -7
  17. data/documentation/site/_layouts/advanced.html +0 -1
  18. data/documentation/site/_layouts/guides.html +2 -2
  19. data/documentation/site/_layouts/page.html +2 -2
  20. data/documentation/site/_plugins/filters.rb +3 -3
  21. data/documentation/site/_templates/reference/resources/resource.md.erb +14 -0
  22. data/documentation/site/assets/js/plugins.js +1 -1
  23. data/documentation/site/guides/architecture/searchers.md +3 -3
  24. data/documentation/site/reference/netsuite/resources/account.md +6 -0
  25. data/documentation/site/reference/netsuite/resources/check.md +6 -0
  26. data/documentation/site/reference/netsuite/resources/check_line_item.md +4 -0
  27. data/documentation/site/reference/netsuite/resources/currency.md +4 -0
  28. data/documentation/site/reference/netsuite/resources/customer.md +6 -0
  29. data/documentation/site/reference/netsuite/resources/customer_deposit.md +6 -0
  30. data/documentation/site/reference/netsuite/resources/department.md +6 -0
  31. data/documentation/site/reference/netsuite/resources/deposit.md +4 -0
  32. data/documentation/site/reference/netsuite/resources/deposit_line_item.md +4 -0
  33. data/documentation/site/reference/netsuite/resources/invoice.md +4 -0
  34. data/documentation/site/reference/netsuite/resources/invoice_line_item.md +4 -0
  35. data/documentation/site/reference/netsuite/resources/item.md +4 -0
  36. data/documentation/site/reference/netsuite/resources/journal_entry.md +4 -0
  37. data/documentation/site/reference/netsuite/resources/journal_entry_line_item.md +4 -0
  38. data/documentation/site/reference/netsuite/resources/ledger_class.md +6 -0
  39. data/documentation/site/reference/netsuite/resources/location.md +6 -0
  40. data/documentation/site/reference/netsuite/resources/resource.md +4 -0
  41. data/documentation/site/reference/netsuite/resources/subsidiary.md +6 -0
  42. data/documentation/site/reference/netsuite/resources/vendor.md +6 -0
  43. data/documentation/site/reference/netsuite_soap/resources/customer.md +4 -0
  44. data/documentation/site/reference/netsuite_soap/resources/resource.md +4 -0
  45. data/documentation/site/reference/netsuite_soap/resources/subsidiary.md +4 -0
  46. data/documentation/site/reference/quickbooks_online/resources/account.md +6 -0
  47. data/documentation/site/reference/quickbooks_online/resources/bill.md +6 -0
  48. data/documentation/site/reference/quickbooks_online/resources/bill_line_item.md +4 -0
  49. data/documentation/site/reference/quickbooks_online/resources/bill_payment.md +4 -0
  50. data/documentation/site/reference/quickbooks_online/resources/bill_payment_line_item.md +4 -0
  51. data/documentation/site/reference/quickbooks_online/resources/currency.md +4 -0
  52. data/documentation/site/reference/quickbooks_online/resources/customer.md +6 -0
  53. data/documentation/site/reference/quickbooks_online/resources/department.md +6 -0
  54. data/documentation/site/reference/quickbooks_online/resources/deposit.md +6 -0
  55. data/documentation/site/reference/quickbooks_online/resources/deposit_line_item.md +4 -0
  56. data/documentation/site/reference/quickbooks_online/resources/expense.md +6 -0
  57. data/documentation/site/reference/quickbooks_online/resources/expense_line_item.md +4 -0
  58. data/documentation/site/reference/quickbooks_online/resources/invoice.md +4 -0
  59. data/documentation/site/reference/quickbooks_online/resources/invoice_sales_line_item.md +4 -0
  60. data/documentation/site/reference/quickbooks_online/resources/item.md +4 -0
  61. data/documentation/site/reference/quickbooks_online/resources/journal_entry.md +6 -0
  62. data/documentation/site/reference/quickbooks_online/resources/journal_entry_line_item.md +4 -0
  63. data/documentation/site/reference/quickbooks_online/resources/ledger_class.md +6 -0
  64. data/documentation/site/reference/quickbooks_online/resources/payment.md +4 -0
  65. data/documentation/site/reference/quickbooks_online/resources/payment_line_item.md +4 -0
  66. data/documentation/site/reference/quickbooks_online/resources/preferences.md +4 -0
  67. data/documentation/site/reference/quickbooks_online/resources/primary_email_addr.md +4 -0
  68. data/documentation/site/reference/quickbooks_online/resources/primary_phone.md +4 -0
  69. data/documentation/site/reference/quickbooks_online/resources/resource.md +4 -0
  70. data/documentation/site/reference/quickbooks_online/resources/subsidiary.md +4 -0
  71. data/documentation/site/reference/quickbooks_online/resources/transfer.md +4 -0
  72. data/documentation/site/reference/quickbooks_online/resources/vendor.md +6 -0
  73. data/documentation/site/reference/stripe/resources/customer.md +4 -0
  74. data/documentation/site/reference/stripe/resources/resource.md +4 -0
  75. data/ledger_sync.gemspec +3 -1
  76. data/lib/ledger_sync.rb +3 -1
  77. data/lib/ledger_sync/concerns/validatable.rb +2 -0
  78. data/lib/ledger_sync/error/operation_errors.rb +1 -1
  79. data/lib/ledger_sync/error/resource_errors.rb +3 -2
  80. data/lib/ledger_sync/ledger_configuration_store.rb +5 -1
  81. data/lib/ledger_sync/ledgers/client.rb +12 -4
  82. data/lib/ledger_sync/ledgers/mixins/infer_serializer_mixin.rb +3 -1
  83. data/lib/ledger_sync/ledgers/netsuite/account/operations/find.rb +1 -1
  84. data/lib/ledger_sync/ledgers/netsuite/client.rb +2 -2
  85. data/lib/ledger_sync/ledgers/netsuite/dashboard_url_helper.rb +1 -1
  86. data/lib/ledger_sync/ledgers/netsuite/error.rb +1 -0
  87. data/lib/ledger_sync/ledgers/netsuite/journal_entry_line_item/deserializer.rb +0 -3
  88. data/lib/ledger_sync/ledgers/netsuite/resources/account.rb +1 -2
  89. data/lib/ledger_sync/ledgers/netsuite/searcher.rb +3 -1
  90. data/lib/ledger_sync/ledgers/netsuite/token.rb +1 -1
  91. data/lib/ledger_sync/ledgers/netsuite/type/deserializer_entity_type.rb +6 -6
  92. data/lib/ledger_sync/ledgers/netsuite/vendor/operations/create.rb +1 -1
  93. data/lib/ledger_sync/ledgers/netsuite/vendor/operations/delete.rb +1 -1
  94. data/lib/ledger_sync/ledgers/netsuite/vendor/operations/find.rb +1 -1
  95. data/lib/ledger_sync/ledgers/netsuite/vendor/operations/update.rb +1 -1
  96. data/lib/ledger_sync/ledgers/netsuite_soap/client.rb +15 -21
  97. data/lib/ledger_sync/ledgers/netsuite_soap/customer/operations/create.rb +2 -0
  98. data/lib/ledger_sync/ledgers/operation.rb +5 -3
  99. data/lib/ledger_sync/ledgers/quickbooks_online/account/operations/create.rb +2 -0
  100. data/lib/ledger_sync/ledgers/quickbooks_online/account/operations/find.rb +2 -0
  101. data/lib/ledger_sync/ledgers/quickbooks_online/bill/operations/create.rb +2 -0
  102. data/lib/ledger_sync/ledgers/quickbooks_online/bill/operations/find.rb +2 -0
  103. data/lib/ledger_sync/ledgers/quickbooks_online/bill/operations/update.rb +2 -0
  104. data/lib/ledger_sync/ledgers/quickbooks_online/client.rb +12 -4
  105. data/lib/ledger_sync/ledgers/quickbooks_online/customer/searcher.rb +2 -0
  106. data/lib/ledger_sync/ledgers/quickbooks_online/dashboard_url_helper.rb +22 -22
  107. data/lib/ledger_sync/ledgers/quickbooks_online/department/operations/create.rb +2 -0
  108. data/lib/ledger_sync/ledgers/quickbooks_online/department/operations/find.rb +2 -0
  109. data/lib/ledger_sync/ledgers/quickbooks_online/deposit/operations/create.rb +2 -0
  110. data/lib/ledger_sync/ledgers/quickbooks_online/deposit/operations/find.rb +2 -0
  111. data/lib/ledger_sync/ledgers/quickbooks_online/deposit/searcher.rb +1 -0
  112. data/lib/ledger_sync/ledgers/quickbooks_online/deserializer.rb +4 -2
  113. data/lib/ledger_sync/ledgers/quickbooks_online/expense/deserializer.rb +3 -2
  114. data/lib/ledger_sync/ledgers/quickbooks_online/expense/operations/create.rb +2 -0
  115. data/lib/ledger_sync/ledgers/quickbooks_online/expense/operations/find.rb +2 -0
  116. data/lib/ledger_sync/ledgers/quickbooks_online/expense/operations/update.rb +2 -0
  117. data/lib/ledger_sync/ledgers/quickbooks_online/invoice/operations/find.rb +2 -0
  118. data/lib/ledger_sync/ledgers/quickbooks_online/invoice/operations/update.rb +2 -0
  119. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry/operations/create.rb +2 -0
  120. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry/operations/find.rb +2 -0
  121. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry/operations/update.rb +2 -0
  122. data/lib/ledger_sync/ledgers/quickbooks_online/ledger_class/deserializer.rb +0 -1
  123. data/lib/ledger_sync/ledgers/quickbooks_online/ledger_class/operations/create.rb +2 -0
  124. data/lib/ledger_sync/ledgers/quickbooks_online/ledger_class/operations/find.rb +2 -0
  125. data/lib/ledger_sync/ledgers/quickbooks_online/operation.rb +1 -1
  126. data/lib/ledger_sync/ledgers/quickbooks_online/payment/operations/find.rb +2 -0
  127. data/lib/ledger_sync/ledgers/quickbooks_online/payment/operations/update.rb +2 -0
  128. data/lib/ledger_sync/ledgers/quickbooks_online/resources/customer.rb +4 -0
  129. data/lib/ledger_sync/ledgers/quickbooks_online/transfer/operations/create.rb +2 -0
  130. data/lib/ledger_sync/ledgers/quickbooks_online/transfer/operations/find.rb +2 -0
  131. data/lib/ledger_sync/ledgers/quickbooks_online/util/error_matcher.rb +8 -5
  132. data/lib/ledger_sync/ledgers/quickbooks_online/util/ledger_error_parser.rb +3 -3
  133. data/lib/ledger_sync/ledgers/quickbooks_online/util/operation_error_parser.rb +2 -2
  134. data/lib/ledger_sync/ledgers/quickbooks_online/webhook_event.rb +3 -1
  135. data/lib/ledger_sync/ledgers/quickbooks_online/webhook_notification.rb +4 -3
  136. data/lib/ledger_sync/ledgers/response.rb +3 -1
  137. data/lib/ledger_sync/ledgers/stripe/client.rb +1 -1
  138. data/lib/ledger_sync/ledgers/stripe/dashboard_url_helper.rb +1 -1
  139. data/lib/ledger_sync/ledgers/stripe/operation/create.rb +0 -2
  140. data/lib/ledger_sync/ledgers/stripe/operation/delete.rb +0 -2
  141. data/lib/ledger_sync/ledgers/stripe/operation/update.rb +0 -2
  142. data/lib/ledger_sync/resource.rb +3 -1
  143. data/lib/ledger_sync/resource_attribute/dirty_mixin.rb +1 -1
  144. data/lib/ledger_sync/resource_attribute/mixin.rb +3 -3
  145. data/lib/ledger_sync/resource_attribute_set.rb +1 -1
  146. data/lib/ledger_sync/result.rb +7 -12
  147. data/lib/ledger_sync/serialization/deserializer_attribute.rb +6 -2
  148. data/lib/ledger_sync/serializer.rb +3 -1
  149. data/lib/ledger_sync/type/reference_one.rb +1 -1
  150. data/lib/ledger_sync/util/hash_helpers.rb +12 -2
  151. data/lib/ledger_sync/util/mixins/delegate_iterable_methods_mixin.rb +1 -0
  152. data/lib/ledger_sync/util/read_only_object.rb +1 -1
  153. data/lib/ledger_sync/util/resource_converter.rb +12 -8
  154. data/lib/ledger_sync/util/resource_converter/attribute.rb +3 -1
  155. data/lib/ledger_sync/util/resource_converter/attribute_set.rb +2 -1
  156. data/lib/ledger_sync/util/resources_builder.rb +5 -5
  157. data/lib/ledger_sync/version.rb +3 -1
  158. metadata +17 -10
  159. data/documentation/site/reference/architecture/clients.md +0 -33
  160. data/documentation/site/reference/architecture/index.md +0 -14
  161. data/documentation/site/reference/architecture/operations.md +0 -6
  162. data/documentation/site/reference/architecture/resources.md +0 -38
  163. data/documentation/site/reference/architecture/results.md +0 -6
  164. data/documentation/site/reference/architecture/searchers.md +0 -6
  165. data/documentation/site/reference/architecture/serialization.md +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 448c4fd4d302c997230d805961412f42c52ae9d6fd8eb9b9dd2e84838f63dd00
4
- data.tar.gz: 140435416e9a47fec7e459bbc36c72c9180486da5b66b7bbceff9382e300d975
3
+ metadata.gz: fd6a2c51848e4e1e51a7c0870956a23b7e6d81c6eff754554340fd48d350a6a9
4
+ data.tar.gz: d632009d62b0f7cfa59edceee5d9e2df57caa27a437197dc324e978dfc71d44c
5
5
  SHA512:
6
- metadata.gz: f0168db8f8a5fcd8a78a1591fb21240e87fd4070ba35ab346af7c2cb5f1ebc5eade67ed6a1b76cbb0c0e5d0a96b6b906d0c67af2da0ea47ea10a6aa119c25b27
7
- data.tar.gz: 8cbc2afee7f738ece14f4deb75059b579900dadcdf4dbafdc2823ee3945111f7ab99ff1e1cf42b125a47d9d3574023b53eb9039583b22be5a2bdf42a614ab389
6
+ metadata.gz: 8b09d33912d3bd337a3d84cf05093193dc1a80b1bdc3137f903131d386bb5a38355da76856b72cb55cfa2cdd190ef98c88ba87aeb62b5851beae05bc7aeb1fb9
7
+ data.tar.gz: bdc088c4b18661ee9ead64d5877c1e4104a1d9a6f1d39aec8e7d24cfd45f35ca00c3953783f2bfec22f62a7d56cc6cebf8a9e50f09596c272274b61e149cecf1
@@ -0,0 +1,30 @@
1
+ # Use this file to configure the Overcommit hooks you wish to use. This will
2
+ # extend the default configuration defined in:
3
+ # https://github.com/sds/overcommit/blob/master/config/default.yml
4
+ #
5
+ # At the topmost level of this YAML file is a key representing type of hook
6
+ # being run (e.g. pre-commit, commit-msg, etc.). Within each type you can
7
+ # customize each hook, such as whether to only run it on certain files (via
8
+ # `include`), whether to only display output if it fails (via `quiet`), etc.
9
+ #
10
+ # For a complete list of hooks, see:
11
+ # https://github.com/sds/overcommit/tree/master/lib/overcommit/hook
12
+ #
13
+ # For a complete list of options that you can use to customize hooks, see:
14
+ # https://github.com/sds/overcommit#configuration
15
+ #
16
+ # Uncomment the following lines to make the configuration take effect.
17
+ gemfile: Gemfile
18
+
19
+ PreCommit:
20
+ ALL:
21
+ exclude:
22
+ - 'documentation/site/assets/webfonts/**/*.svg'
23
+
24
+ RuboCop:
25
+ command: ['bundle', 'exec', 'rubocop']
26
+ enabled: true
27
+ on_warn: fail # Treat all warnings as failures
28
+
29
+ TrailingWhitespace:
30
+ enabled: true
@@ -6,9 +6,14 @@ rvm:
6
6
  - 2.6.6
7
7
  - 2.6.3
8
8
  - 2.7.1
9
- # - ruby-head
9
+ - ruby-head
10
10
  before_install:
11
11
  - gem update --system
12
12
  - gem install bundler:1.17.3
13
+ - gem install overcommit
13
14
  script:
14
15
  - bundle exec rspec --order rand
16
+ - overcommit --sign && overcommit --run
17
+ jobs:
18
+ allow_failures:
19
+ - rvm: ruby-head
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ledger_sync (1.4.2)
4
+ ledger_sync (1.4.4)
5
5
  activemodel
6
6
  colorize
7
7
  coveralls
@@ -41,6 +41,7 @@ GEM
41
41
  builder (3.2.4)
42
42
  bump (0.9.0)
43
43
  byebug (11.1.3)
44
+ childprocess (3.0.0)
44
45
  colorator (1.1.0)
45
46
  colorize (0.8.1)
46
47
  concurrent-ruby (1.1.6)
@@ -86,7 +87,7 @@ GEM
86
87
  dry-equalizer (~> 0.3)
87
88
  dry-inflector (~> 0.1, >= 0.1.2)
88
89
  dry-logic (~> 1.0, >= 1.0.2)
89
- dry-validation (1.5.0)
90
+ dry-validation (1.5.1)
90
91
  concurrent-ruby (~> 1.0)
91
92
  dry-container (~> 0.7, >= 0.7.1)
92
93
  dry-core (~> 0.4)
@@ -97,8 +98,8 @@ GEM
97
98
  eventmachine (>= 0.12.9)
98
99
  http_parser.rb (~> 0.6.0)
99
100
  eventmachine (1.2.7)
100
- factory_bot (5.2.0)
101
- activesupport (>= 4.2.0)
101
+ factory_bot (6.0.1)
102
+ activesupport (>= 5.0.0)
102
103
  faraday (1.0.1)
103
104
  multipart-post (>= 1.2, < 3)
104
105
  faraday-detailed_logger (2.3.0)
@@ -118,6 +119,7 @@ GEM
118
119
  socksify
119
120
  i18n (0.9.5)
120
121
  concurrent-ruby (~> 1.0)
122
+ iniparse (1.5.0)
121
123
  jekyll (3.8.7)
122
124
  addressable (~> 2.4)
123
125
  colorator (~> 1.0)
@@ -164,6 +166,9 @@ GEM
164
166
  multi_json (~> 1.3)
165
167
  multi_xml (~> 0.5)
166
168
  rack (>= 1.2, < 3)
169
+ overcommit (0.53.0)
170
+ childprocess (>= 0.6.3, < 4)
171
+ iniparse (~> 1.4)
167
172
  parallel (1.19.1)
168
173
  parser (2.7.1.3)
169
174
  ast (~> 2.4.0)
@@ -172,7 +177,7 @@ GEM
172
177
  pd_ruby (0.2.3)
173
178
  colorize
174
179
  public_suffix (4.0.5)
175
- rack (2.2.2)
180
+ rack (2.2.3)
176
181
  rainbow (3.0.0)
177
182
  rake (13.0.1)
178
183
  rb-fsevent (0.10.4)
@@ -264,6 +269,7 @@ DEPENDENCIES
264
269
  jekyll-paginate (~> 1.1)
265
270
  jekyll-paginate-v2 (~> 1.9)
266
271
  ledger_sync!
272
+ overcommit
267
273
  rake (~> 13.0)
268
274
  rspec (~> 3.2)
269
275
  rubocop
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rspec/core/rake_task'
3
5
 
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'bundler/setup'
4
5
  require 'ledger_sync'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Setup
2
4
  #
3
5
  # gem install bundler
@@ -25,7 +27,6 @@ require 'rack/lobster'
25
27
  Dotenv.load
26
28
 
27
29
  port = ENV.fetch('PORT', 5678)
28
- app = Rack::Lobster.new
29
30
  server = TCPServer.new port
30
31
 
31
32
  base_url = "http://localhost:#{port}"
@@ -41,16 +42,16 @@ client = LedgerSync::Ledgers::QuickBooksOnline::Client.new_from_env(test: true)
41
42
  puts 'Go to the following URL:'
42
43
  puts client.authorization_url(redirect_uri: base_url)
43
44
 
44
- while session = server.accept
45
+ while (session = server.accept)
45
46
  request = session.gets
46
47
 
47
48
  puts request
48
49
 
49
50
  # 1
50
- method, full_path = request.split(' ')
51
+ _method, full_path = request.split(' ')
51
52
 
52
53
  # 2
53
- path, query = full_path.split('?')
54
+ _path, query = full_path.split('?')
54
55
 
55
56
  params = Hash[query.split('&').map { |e| e.split('=') }] if query.present?
56
57
 
@@ -55,10 +55,10 @@ module Docs
55
55
  .sort_by(&:root_key)
56
56
  end
57
57
 
58
- def rm(fn)
59
- yellow "Removing: #{fn}"
60
- FileUtils.rm_rf(fn, secure: true)
61
- green "Removed: #{fn}"
58
+ def rm(filename)
59
+ yellow "Removing: #{filename}"
60
+ FileUtils.rm_rf(filename, secure: true)
61
+ green "Removed: #{filename}"
62
62
  nl
63
63
  end
64
64
 
@@ -1,40 +1,40 @@
1
1
  # License Agreement
2
2
  ##### Version 1.02 (02/14/2019)
3
3
 
4
- This Single Project License Agreement (**“Agreement”**) is between you and Stackbit Inc., a Delaware corporation (“Stackbit”) and governs Your right to use the website project including website theme and other media content (the "Project") obtained from or generated using our services available at www.stackbit.com (the "Services"). By clicking on the “Create Account” button (or any similar button) that is presented to you at the time of sign-up or by using the Site to generate a Project, you indicate that you agree to the terms and conditions of this Agreement. If You are accepting this Agreement on behalf of Your employer or other organization, You are agreeing to these terms for the entity and You represent and warrant that You have authority to bind such entity (party bound to this Agreement is referred to as “You”).
4
+ This Single Project License Agreement (**“Agreement”**) is between you and Stackbit Inc., a Delaware corporation (“Stackbit”) and governs Your right to use the website project including website theme and other media content (the "Project") obtained from or generated using our services available at www.stackbit.com (the "Services"). By clicking on the “Create Account” button (or any similar button) that is presented to you at the time of sign-up or by using the Site to generate a Project, you indicate that you agree to the terms and conditions of this Agreement. If You are accepting this Agreement on behalf of Your employer or other organization, You are agreeing to these terms for the entity and You represent and warrant that You have authority to bind such entity (party bound to this Agreement is referred to as “You”).
5
5
 
6
6
  1. **Definitions**. The capitalized terms shall have the meaning given in the relevant paragraph where such term is defined. In addition, the following terms shall have the meaning set forth below.
7
7
 
8
8
  **“Client"** means the person or entity whose website you are designing if you are a web developer, web designer, agency or a marketing agent.
9
-
9
+
10
10
  **“Theme”** means the website theme made available on the Site and generated using the Services, in HTML/JS/CSS electronic source code format together with any related developer documentation.
11
-
11
+
12
12
  **“Project”** means any work that includes a Theme or that is derived from or is a ‘derivative work’ of a Theme, as such terms are used under the United States Copyright Act of 1976, as amended.
13
13
 
14
- 2. **License**. Subject to the terms and conditions of this Agreement, Stackbit hereby grants you a perpetual, non-exclusive, non-transferable, non-sublicensable limited license to use, modify, and display the Theme only as incorporated in a single Project as set forth in Section 3 below. All rights not granted herein are expressly reserved by Stackbit.
14
+ 2. **License**. Subject to the terms and conditions of this Agreement, Stackbit hereby grants you a perpetual, non-exclusive, non-transferable, non-sublicensable limited license to use, modify, and display the Theme only as incorporated in a single Project as set forth in Section 3 below. All rights not granted herein are expressly reserved by Stackbit.
15
15
 
16
- 3. **Permitted Use**
16
+ 3. **Permitted Use**
17
17
 
18
18
  You may use the Theme as it is incorporated into a single Project, either your own Project or the Project of your Client, and You may make modifications to the Theme necessary to fit the requirements of the Project provided that the Project and the use of the Project by You or the Client remains subject to this Agreement. You will own the Project you create, but Stackbit retains all right, title and interest in and to the Theme and other media content that are incorporated in your Project. You must retain and include all copyright notices and the terms of this License without modification in the files of the Project. You and Client must use the Project in compliance with all applicable federal, state and local laws, rules and regulations.
19
19
 
20
- 4. **Prohibited Uses**
20
+ 4. **Prohibited Uses**
21
21
 
22
22
  You may not, and shall not permit anyone else to, use the Project or do anything with the Project that is not expressly permitted by this Agreement, including, but not limited to, the following strictly prohibited uses:
23
23
 
24
24
  1. resell, sublicense or other transfer the Project or the Theme or other components thereof or your rights to use the Theme as set forth herein or otherwise make available or allows a person to access or reproduce the Theme as an electronic file, except in connection with the single Project and subject to Section 3 above;
25
-
25
+
26
26
  2. Use, reproduce or display the Theme or Project in any manner that competitive with the Services or our business (e.g. inclusion as part of an online website builder service, or distribution outside the Services such as on a Theme/themes marketplace or a "freebies" website);
27
-
27
+
28
28
  3. Use, reproduce or display of the Theme in a fashion that we consider as, or under applicable law is considered, pornographic, obscene, immoral, infringing, defamatory or libelous; and
29
-
29
+
30
30
  4. Use or display of the Theme in an electronic format that enables it to be downloaded or distributed in any file sharing arrangement.
31
31
 
32
- 5. **Ownership**. Stackbit shall retain and own all right, title and interest, including but not limited to copyright, patent, trade secret and all other intellectual property rights, in and to the Themes. You shall own all right, title and interest, including but not limited to copyright, patent, trade secret and all other intellectual property rights, in and to the Project, subject to Stackbit’s ownership of the Theme and the terms of this license agreement.
32
+ 5. **Ownership**. Stackbit shall retain and own all right, title and interest, including but not limited to copyright, patent, trade secret and all other intellectual property rights, in and to the Themes. You shall own all right, title and interest, including but not limited to copyright, patent, trade secret and all other intellectual property rights, in and to the Project, subject to Stackbit’s ownership of the Theme and the terms of this license agreement.
33
33
 
34
- 6. **Term and Termination**. This Agreement shall commence on the deployment of a Project through Stackbit’s Services to a repository (such as for example to Github) and continue indefinitely until it is terminated in accordance with Section 6. Stackbit may terminate this Agreement if You breach the Agreement and such breach remains uncured for 15 days following Your receipt of written notice from Stackbit. You may terminate this Agreement for convenience and without cause at any time immediately upon written notice to Stackbit. Upon termination of this Agreement for any reason, You and your Client shall a) cease all use of the Theme and the Project b) destroy or delete all copies and archives of the Theme, Projects, and accompanying materials, and c) if requested, confirm to Stackbit in writing that you have complied with these requirements. Any provisions of this Agreement which expressly or by implication are intended to survive its termination will survive and continue to bind the parties.
34
+ 6. **Term and Termination**. This Agreement shall commence on the deployment of a Project through Stackbit’s Services to a repository (such as for example to Github) and continue indefinitely until it is terminated in accordance with Section 6. Stackbit may terminate this Agreement if You breach the Agreement and such breach remains uncured for 15 days following Your receipt of written notice from Stackbit. You may terminate this Agreement for convenience and without cause at any time immediately upon written notice to Stackbit. Upon termination of this Agreement for any reason, You and your Client shall a) cease all use of the Theme and the Project b) destroy or delete all copies and archives of the Theme, Projects, and accompanying materials, and c) if requested, confirm to Stackbit in writing that you have complied with these requirements. Any provisions of this Agreement which expressly or by implication are intended to survive its termination will survive and continue to bind the parties.
35
35
 
36
- 7. **Warranty and Disclaimer**. THE SERVICES, SITE, THEME, PROJECT AND ALL CONTENT AVAILABLE THROUGH THE SITE ARE OFFERED “AS IS” AND WITHOUT WARRANTY, AND STACKBIT MAKES NO REPRESENTATION OR WARRANTY OF ANY KIND, WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, AND SPECIFICALLY DISCLAIMS ALL WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE.
36
+ 7. **Warranty and Disclaimer**. THE SERVICES, SITE, THEME, PROJECT AND ALL CONTENT AVAILABLE THROUGH THE SITE ARE OFFERED “AS IS” AND WITHOUT WARRANTY, AND STACKBIT MAKES NO REPRESENTATION OR WARRANTY OF ANY KIND, WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, AND SPECIFICALLY DISCLAIMS ALL WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE.
37
37
 
38
- 8. **Limitation of Liability**. Stackbit’s aggregate liability for all claims, losses, liabilities or damages in connection with this Services, Theme, Project or this Agreement or its subject matter, whether as a result of breach of contract, tort (including negligence) or otherwise, regardless of the theory of liability asserted, is limited to no more than the total amount of fees paid to Stackbit under this Agreement, or $100, whichever is greater. In addition, Stackbit will not be liable in any event for lost profits, consequential, indirect, punitive, exemplary or special damages.
38
+ 8. **Limitation of Liability**. Stackbit’s aggregate liability for all claims, losses, liabilities or damages in connection with this Services, Theme, Project or this Agreement or its subject matter, whether as a result of breach of contract, tort (including negligence) or otherwise, regardless of the theory of liability asserted, is limited to no more than the total amount of fees paid to Stackbit under this Agreement, or $100, whichever is greater. In addition, Stackbit will not be liable in any event for lost profits, consequential, indirect, punitive, exemplary or special damages.
39
39
 
40
- 9. **General**. This Agreement shall be governed by the law of the State of California, without reference to conflict of laws principles. The United Nations Convention on contracts for the International Sales of Goods shall not apply. This Agreement, together with the Stackbit Terms of Service at www.stackbit.com/tos/ represents the entire agreement between the parties with regard to the subject matter thereof and supersedes any prior understandings, proposals or agreements concerning the same subject matter. If any provision of this Agreement is found to be unenforceable or invalid, the remainder of such provision shall be enforced to the maximum extent permitted by law. No amendment or modification of this Agreement shall be valid or binding unless in a writing signed by representatives of both parties. You may not assign this Agreement without Stackbit’s prior written consent. Any attempted assignment in violation of this shall be null and void. This Agreement shall be binding upon and inure to the benefit of the parties hereto and their respective permitted successors and assigns. Any notice required or permitted to be given by either party under this Agreement shall be in writing and may be sent via an active Services account dashboard or shall be personally delivered or sent by commercial courier service, or by first class mail (certified or registered if available), or by telecopy confirmed by first class mail (registered or certified if available), to the other party at its address set forth below, or such new address as may from time-to-time be supplied hereunder by the parties hereto.
40
+ 9. **General**. This Agreement shall be governed by the law of the State of California, without reference to conflict of laws principles. The United Nations Convention on contracts for the International Sales of Goods shall not apply. This Agreement, together with the Stackbit Terms of Service at www.stackbit.com/tos/ represents the entire agreement between the parties with regard to the subject matter thereof and supersedes any prior understandings, proposals or agreements concerning the same subject matter. If any provision of this Agreement is found to be unenforceable or invalid, the remainder of such provision shall be enforced to the maximum extent permitted by law. No amendment or modification of this Agreement shall be valid or binding unless in a writing signed by representatives of both parties. You may not assign this Agreement without Stackbit’s prior written consent. Any attempted assignment in violation of this shall be null and void. This Agreement shall be binding upon and inure to the benefit of the parties hereto and their respective permitted successors and assigns. Any notice required or permitted to be given by either party under this Agreement shall be in writing and may be sent via an active Services account dashboard or shall be personally delivered or sent by commercial courier service, or by first class mail (certified or registered if available), or by telecopy confirmed by first class mail (registered or certified if available), to the other party at its address set forth below, or such new address as may from time-to-time be supplied hereunder by the parties hereto.
@@ -1,35 +1,35 @@
1
1
  <header id="masthead" class="site-header outer">
2
- <div class="inner">
3
- <div class="site-header-inside">
4
- <div class="site-branding">
5
- {% assign logo_img_is_not_empty = site.header.logo_img | is_not_empty %}
6
- {% if logo_img_is_not_empty %}
7
- <p class="site-logo"><a href="{{ site.header.url | default: '/' | relative_url }}"><img src="{{ site.header.logo_img | relative_url }}" alt="{{ site.header.title }}" /></a></p>
8
- {% else %}
9
- <p class="site-title"><a href="{{ site.header.url | default: '/' | relative_url }}">{{ site.header.title }}</a></p>
10
- {% endif %}
11
- </div><!-- .site-branding -->
12
- {% assign has_nav_is_not_empty = site.header.has_nav | is_not_empty %}
13
- {% if has_nav_is_not_empty %}
14
- <nav id="main-navigation" class="site-navigation" aria-label="Main Navigation">
15
- <div class="site-nav-inside">
16
- <button id="menu-close" class="menu-toggle"><span class="screen-reader-text">Open Menu</span><span class="icon-close" aria-hidden="true"></span></button>
17
- <ul class="menu">
18
- {% for action in site.header.nav_links %}
19
- <li class="menu-item{% if action.has_subnav and action.subnav_links %} has-children{% endif %}{% if page.url == action.url %} current{% endif %}{% if action.type != 'link' %} menu-button{% endif %}">
20
-
21
- {% include action_link.html action=action %}
22
- {% if action.has_subnav and action.subnav_links %}
23
-
24
- {% include submenu.html submenu=action.subnav_links menu_class='submenu' page=page %}
25
- {% endif %}
26
- </li>
27
- {% endfor %}
28
- </ul>
29
- </div><!-- .site-nav-inside -->
30
- </nav><!-- .site-navigation -->
31
- <button id="menu-open" class="menu-toggle"><span class="screen-reader-text">Close Menu</span><span class="icon-menu" aria-hidden="true"></span></button>
32
- {% endif %}
33
- </div><!-- .site-header-inside -->
34
- </div><!-- .inner -->
35
- </header><!-- .site-header -->
2
+ <div class="inner">
3
+ <div class="site-header-inside">
4
+ <div class="site-branding">
5
+ {% assign logo_img_is_not_empty = site.header.logo_img | is_not_empty %} {% if logo_img_is_not_empty %}
6
+ <p class="site-logo">
7
+ <a href="{{ site.header.url | default: '/' | relative_url }}"><img src="{{ site.header.logo_img | relative_url }}" alt="{{ site.header.title }}" /></a>
8
+ </p>
9
+ {% else %}
10
+ <p class="site-title"><a href="{{ site.header.url | default: '/' | relative_url }}">{{ site.header.title }}</a></p>
11
+ {% endif %}
12
+ </div>
13
+ <!-- .site-branding -->
14
+ {% assign has_nav_is_not_empty = site.header.has_nav | is_not_empty %} {% if has_nav_is_not_empty %}
15
+ <nav id="main-navigation" class="site-navigation" aria-label="Main Navigation">
16
+ <div class="site-nav-inside">
17
+ <button id="menu-close" class="menu-toggle"><span class="screen-reader-text">Open Menu</span><span class="icon-close" aria-hidden="true"></span></button>
18
+ <ul class="menu">
19
+ {% for action in site.header.nav_links %}
20
+ <li class="menu-item{% if action.has_subnav and action.subnav_links %} has-children{% endif %}{% if page.url == action.url %} current{% endif %}{% if action.type != 'link' %} menu-button{% endif %}">
21
+ {% include action_link.html action=action %} {% if action.has_subnav and action.subnav_links %} {% include submenu.html submenu=action.subnav_links menu_class='submenu' page=page %} {% endif %}
22
+ </li>
23
+ {% endfor %}
24
+ </ul>
25
+ </div>
26
+ <!-- .site-nav-inside -->
27
+ </nav>
28
+ <!-- .site-navigation -->
29
+ <button id="menu-open" class="menu-toggle"><span class="screen-reader-text">Close Menu</span><span class="icon-menu" aria-hidden="true"></span></button> {% endif %}
30
+ </div>
31
+ <!-- .site-header-inside -->
32
+ </div>
33
+ <!-- .inner -->
34
+ </header>
35
+ <!-- .site-header -->
@@ -1,34 +1,29 @@
1
1
  {% assign section = include.section %}
2
2
  <section id="{{ section.section_id }}" class="block block-text outer">
3
- <div class="inner">
4
- <div class="grid grid-middle grid-center{% if section.image and section.image_position == 'right' %} grid-swap{% endif %}">
5
- {% assign image_is_not_empty = section.image | is_not_empty %}
6
- {% if image_is_not_empty %}
7
- <div class="grid-item block-image">
8
- <img src="{{ section.image | relative_url }}" alt="{{ section.title }}" />
9
- </div>
10
- {% endif %}
11
- <div class="grid-item block-body">
12
- {% assign title_is_not_empty = section.title | is_not_empty %}
13
- {% if title_is_not_empty %}
14
- <div class="block-header">
15
- <h2 class="block-title">{{ section.title }}</h2>
3
+ <div class="inner">
4
+ <div class="grid grid-middle grid-center{% if section.image and section.image_position == 'right' %} grid-swap{% endif %}">
5
+ {% assign image_is_not_empty = section.image | is_not_empty %} {% if image_is_not_empty %}
6
+ <div class="grid-item block-image">
7
+ <img src="{{ section.image | relative_url }}" alt="{{ section.title }}" />
8
+ </div>
9
+ {% endif %}
10
+ <div class="grid-item block-body">
11
+ {% assign title_is_not_empty = section.title | is_not_empty %} {% if title_is_not_empty %}
12
+ <div class="block-header">
13
+ <h2 class="block-title">{{ section.title }}</h2>
14
+ </div>
15
+ {% endif %} {% assign content_is_not_empty = section.content | is_not_empty %} {% if content_is_not_empty %}
16
+ <div class="block-content">
17
+ {{ section.content | markdownify }}
18
+ </div>
19
+ {% endif %} {% assign actions_is_not_empty = section.actions | is_not_empty %} {% if actions_is_not_empty %}
20
+ <div class="block-buttons">
21
+
22
+ {% include cta_buttons.html actions=section.actions %}
23
+ </div>
24
+ {% endif %}
25
+ </div>
16
26
  </div>
17
- {% endif %}
18
- {% assign content_is_not_empty = section.content | is_not_empty %}
19
- {% if content_is_not_empty %}
20
- <div class="block-content">
21
- {{ section.content | markdownify }}
22
- </div>
23
- {% endif %}
24
- {% assign actions_is_not_empty = section.actions | is_not_empty %}
25
- {% if actions_is_not_empty %}
26
- <div class="block-buttons">
27
-
28
- {% include cta_buttons.html actions=section.actions %}
29
- </div>
30
- {% endif %}
31
- </div>
32
27
  </div>
33
- </div>
34
- </section><!-- .block -->
28
+ </section>
29
+ <!-- .block -->
@@ -1,28 +1,24 @@
1
1
  {% assign section = include.section %}
2
2
  <section id="{{ section.section_id }}" class="block block-cta outer">
3
- <div class="inner">
4
- <div class="has-gradient">
5
- <div class="grid grid-middle grid-center">
6
- {% if section.title or section.subtitle %}
7
- <div class="grid-item block-header">
8
- {% assign title_is_not_empty = section.title | is_not_empty %}
9
- {% if title_is_not_empty %}
10
- <h2 class="block-title">{{ section.title }}</h2>
11
- {% endif %}
12
- {% assign subtitle_is_not_empty = section.subtitle | is_not_empty %}
13
- {% if subtitle_is_not_empty %}
14
- <p class="block-subtitle">{{ section.subtitle }}</p>
15
- {% endif %}
3
+ <div class="inner">
4
+ <div class="has-gradient">
5
+ <div class="grid grid-middle grid-center">
6
+ {% if section.title or section.subtitle %}
7
+ <div class="grid-item block-header">
8
+ {% assign title_is_not_empty = section.title | is_not_empty %} {% if title_is_not_empty %}
9
+ <h2 class="block-title">{{ section.title }}</h2>
10
+ {% endif %} {% assign subtitle_is_not_empty = section.subtitle | is_not_empty %} {% if subtitle_is_not_empty %}
11
+ <p class="block-subtitle">{{ section.subtitle }}</p>
12
+ {% endif %}
13
+ </div>
14
+ {% endif %} {% assign actions_is_not_empty = section.actions | is_not_empty %} {% if actions_is_not_empty %}
15
+ <div class="grid-item block-buttons">
16
+
17
+ {% include cta_buttons.html actions=section.actions %}
18
+ </div>
19
+ {% endif %}
20
+ </div>
16
21
  </div>
17
- {% endif %}
18
- {% assign actions_is_not_empty = section.actions | is_not_empty %}
19
- {% if actions_is_not_empty %}
20
- <div class="grid-item block-buttons">
21
-
22
- {% include cta_buttons.html actions=section.actions %}
23
- </div>
24
- {% endif %}
25
- </div>
26
22
  </div>
27
- </div>
28
- </section><!-- .block -->
23
+ </section>
24
+ <!-- .block -->
@@ -1,60 +1,45 @@
1
1
  {% assign section = include.section %}
2
2
  <section id="{{ section.section_id }}" class="block block-grid outer{% if section.title or section.subtitle %} has-header{% endif %}">
3
- <div class="inner">
4
- {% if section.title or section.subtitle %}
5
- <div class="block-header inner-sm">
6
- {% assign title_is_not_empty = section.title | is_not_empty %}
7
- {% if title_is_not_empty %}
8
- <h2 class="block-title">{{ section.title }}</h2>
9
- {% endif %}
10
- {% assign subtitle_is_not_empty = section.subtitle | is_not_empty %}
11
- {% if subtitle_is_not_empty %}
12
- <p class="block-subtitle">{{ section.subtitle }}</p>
13
- {% endif %}
14
- </div>
15
- {% endif %}
16
- {% assign grid_items_is_not_empty = section.grid_items | is_not_empty %}
17
- {% if grid_items_is_not_empty %}
18
- <div class="block-content">
19
- <div class="grid{% if section.col_number == 'two' %} grid-col-2{% endif %}{% if section.col_number == 'three' %} grid-col-3{% endif %}">
20
- {% for item in section.grid_items %}
21
- <div class="grid-item">
22
- <div class="grid-item-inside">
23
- {% assign image_is_not_empty = item.image | is_not_empty %}
24
- {% if image_is_not_empty %}
25
- <div class="grid-item-image">
26
- <img src="{{ item.image | relative_url }}" alt="{{ item.title }}" />
27
- </div>
3
+ <div class="inner">
4
+ {% if section.title or section.subtitle %}
5
+ <div class="block-header inner-sm">
6
+ {% assign title_is_not_empty = section.title | is_not_empty %} {% if title_is_not_empty %}
7
+ <h2 class="block-title">{{ section.title }}</h2>
8
+ {% endif %} {% assign subtitle_is_not_empty = section.subtitle | is_not_empty %} {% if subtitle_is_not_empty %}
9
+ <p class="block-subtitle">{{ section.subtitle }}</p>
28
10
  {% endif %}
29
- {% assign title_is_not_empty = item.title | is_not_empty %}
30
- {% if title_is_not_empty %}
31
- <h3 class="grid-item-title line-left">
32
- {% assign title_url_is_not_empty = item.title_url | is_not_empty %}
33
- {% if title_url_is_not_empty %}
34
- <a href="{{ item.title_url | relative_url }}">{{ item.title }}</a>
35
- {% else %}
36
- {{ item.title }}
37
- {% endif %}
38
- </h3>
39
- {% endif %}
40
- {% assign content_is_not_empty = item.content | is_not_empty %}
41
- {% if content_is_not_empty %}
42
- <div class="grid-item-content">
43
- {{ item.content | markdownify }}
44
- </div>
45
- {% endif %}
46
- {% assign actions_is_not_empty = item.actions | is_not_empty %}
47
- {% if actions_is_not_empty %}
48
- <div class="grid-item-buttons">
49
-
50
- {% include cta_buttons.html actions=item.actions %}
11
+ </div>
12
+ {% endif %} {% assign grid_items_is_not_empty = section.grid_items | is_not_empty %} {% if grid_items_is_not_empty %}
13
+ <div class="block-content">
14
+ <div class="grid{% if section.col_number == 'two' %} grid-col-2{% endif %}{% if section.col_number == 'three' %} grid-col-3{% endif %}">
15
+ {% for item in section.grid_items %}
16
+ <div class="grid-item">
17
+ <div class="grid-item-inside">
18
+ {% assign image_is_not_empty = item.image | is_not_empty %} {% if image_is_not_empty %}
19
+ <div class="grid-item-image">
20
+ <img src="{{ item.image | relative_url }}" alt="{{ item.title }}" />
21
+ </div>
22
+ {% endif %} {% assign title_is_not_empty = item.title | is_not_empty %} {% if title_is_not_empty %}
23
+ <h3 class="grid-item-title line-left">
24
+ {% assign title_url_is_not_empty = item.title_url | is_not_empty %} {% if title_url_is_not_empty %}
25
+ <a href="{{ item.title_url | relative_url }}">{{ item.title }}</a> {% else %} {{ item.title }} {% endif %}
26
+ </h3>
27
+ {% endif %} {% assign content_is_not_empty = item.content | is_not_empty %} {% if content_is_not_empty %}
28
+ <div class="grid-item-content">
29
+ {{ item.content | markdownify }}
30
+ </div>
31
+ {% endif %} {% assign actions_is_not_empty = item.actions | is_not_empty %} {% if actions_is_not_empty %}
32
+ <div class="grid-item-buttons">
33
+
34
+ {% include cta_buttons.html actions=item.actions %}
35
+ </div>
36
+ {% endif %}
37
+ </div>
38
+ </div>
39
+ {% endfor %}
51
40
  </div>
52
- {% endif %}
53
- </div>
54
41
  </div>
55
- {% endfor %}
56
- </div>
42
+ {% endif %}
57
43
  </div>
58
- {% endif %}
59
- </div>
60
- </section><!-- .block -->
44
+ </section>
45
+ <!-- .block -->