dugway 0.12.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4d4b19083d6ca54cd01c02838818a67437e42b289d41cba01f502b9037d6921e
4
- data.tar.gz: 886d1b3a6ed97edd75fd617c17671c196fc048ef3bd5323d0454d05d24f3ffdf
3
+ metadata.gz: cb1e44d43a95caa0c56269f23524e0c6915463eb376879feea61b1c6a839599f
4
+ data.tar.gz: 7b1e8861f1f51a62c253750c962767fb9d121b9b94656ba3ecb7269a310033f6
5
5
  SHA512:
6
- metadata.gz: ae4ac7698a7287aa79a97b630ec46272f7e81a036b2c45fb1b48398341545eadd412825a2dda85350cf3414fb34a88bb776dd97dc986726f1ff4f5418ee92816
7
- data.tar.gz: 4ed1fe5591df26ffbd2cebb3b2d714909490c381d262b69bff1fa1e9593b3cdb63b156ba183a3b4c530cd1d2fe4b5ff588da0f69ae9a67af19605c2687d20729
6
+ metadata.gz: 7dd48ecd97afdb589ffaae298157a773b61653ca3f7d10f80bb583ed1132d2a944a96e9db2d2e3c5efd232091e0d0c9b3bd795bc7b900ee8f633e1651564387e
7
+ data.tar.gz: 36384106c097c055325c807a24e97eb8686430768f66864fbffc1b4ed61e915d2fd3afb5210d022aada8799aa547ae4100153ff9c85f07ba02cdf9317a60c9e4
data/README.md CHANGED
@@ -1,12 +1,13 @@
1
- # Dugway [![Build Status](https://travis-ci.org/bigcartel/dugway.png?branch=master)](https://travis-ci.org/bigcartel/dugway) [![Gem Version](https://badge.fury.io/rb/dugway.png)](http://badge.fury.io/rb/dugway)
1
+ # Dugway [![Build Status](https://travis-ci.org/bigcartel/dugway.png?branch=master)](https://travis-ci.org/bigcartel/dugway)
2
2
 
3
3
  **_The easy way to build Big Cartel themes._**
4
4
 
5
5
  Dugway allows you to run your Big Cartel theme on your computer, test it in any
6
- browser, write code in your favorite editor, and use fancy new tools like
7
- CoffeeScript, Sass, and LESS. It's awesome.
6
+ browser, write code in your favorite editor, and use tools like
7
+ CoffeeScript, Sass, and LESS.
8
8
 
9
- [![Walkthrough](http://cl.ly/image/101e1z3Y3B1w/Screen%20Shot%202013-04-01%20at%205.04.40%20PM.png)](https://vimeo.com/bigcartel/dugway)
9
+ - [Dugway on RubyGems.org](https://rubygems.org/gems/dugway)
10
+ - [Walkthrough video](https://vimeo.com/bigcartel/dugway)
10
11
 
11
12
  ## Disclaimer
12
13
 
@@ -20,10 +21,22 @@ individually in the Big Cartel admin._
20
21
 
21
22
  ## Install
22
23
 
23
- Dugway is Ruby gem so you'll need to have Ruby 2.0+ installed. Ruby is
24
+ ### Install Ruby
25
+
26
+ Dugway is Ruby gem so you'll need to have Ruby installed. Ruby is
24
27
  usually pre-installed on Mac OS X and Linux, and Windows users can install it
25
- using [RubyInstaller](http://rubyinstaller.org). From there, simply install the
26
- **dugway** gem from the terminal.
28
+ using [RubyInstaller](http://rubyinstaller.org).
29
+
30
+ Supported Ruby versions:
31
+
32
+ - 2.3
33
+ - 2.4
34
+ - 2.5
35
+ - 2.6
36
+
37
+ ### Install Dugway
38
+
39
+ From there, simply install the **dugway** gem from the terminal.
27
40
 
28
41
  ```
29
42
  gem install dugway
@@ -182,7 +195,7 @@ Run your theme in any browser by starting the Dugway server:
182
195
  dugway server
183
196
  ```
184
197
 
185
- By default this will serve your theme at http://0.0.0.0:9292. You can then stop
198
+ By default this will serve your theme at http://127.0.0.1:9292/. You can then stop
186
199
  the server by hitting CTRL+C.
187
200
 
188
201
  ### Pow
data/dugway.gemspec CHANGED
@@ -23,11 +23,12 @@ Gem::Specification.new do |s|
23
23
  s.add_dependency('rack-mount', '~> 0.8.3')
24
24
  s.add_dependency('activesupport', '~> 5.2')
25
25
  s.add_dependency('liquid', '~> 3.0.6')
26
+ s.add_dependency('bigdecimal', '~> 1.4.4')
26
27
  s.add_dependency('coffee-script', '~> 2.4.1')
27
- s.add_dependency('sass', '~> 3.2.5')
28
+ s.add_dependency('sass', '~> 3.4.25')
28
29
  s.add_dependency('sprockets', '~> 2.0')
29
30
  s.add_dependency('sprockets-sass', '~> 1.3.1')
30
- s.add_dependency('compass', '~> 0.12.2')
31
+ s.add_dependency('compass', '~> 1.0.3')
31
32
  s.add_dependency('httparty', '~> 0.10.0')
32
33
  s.add_dependency('better_errors', '~> 0.9.0')
33
34
  s.add_dependency('will_paginate', '~> 3.0.4')
@@ -36,7 +37,7 @@ Gem::Specification.new do |s|
36
37
  s.add_dependency('thor', '~> 0.20.3')
37
38
  s.add_dependency('rubyzip', '~> 0.9.9')
38
39
  s.add_dependency('uglifier', '~> 4.1')
39
- s.add_dependency('thin', '~> 1.7.2')
40
+ s.add_dependency('thin', '~> 1.8.0')
40
41
  s.add_dependency('bigcartel-theme-fonts')
41
42
  s.add_dependency('bigcartel-currency-locales')
42
43
 
data/lib/dugway/cart.rb CHANGED
@@ -31,7 +31,7 @@ module Dugway
31
31
  end
32
32
 
33
33
  def shipping
34
- {
34
+ {
35
35
  'enabled' => false,
36
36
  'amount' => 0.0,
37
37
  'strict' => false,
@@ -40,14 +40,14 @@ module Dugway
40
40
  end
41
41
 
42
42
  def tax
43
- {
43
+ {
44
44
  'enabled' => false,
45
45
  'amount' => 0.0
46
46
  }
47
47
  end
48
48
 
49
49
  def discount
50
- {
50
+ {
51
51
  'enabled' => false,
52
52
  'pending' => false,
53
53
  'amount' => 0.0
@@ -22,14 +22,9 @@
22
22
  <label for="message">Message</label>
23
23
  {{ contact | contact_input: 'message' }}
24
24
  </li>
25
- <li>
26
- <label for="captcha">Spam check</label>
27
- <p>Please enter the characters from the image.</p>
28
- <div>{{ contact.captcha }}</div>
29
- {{ contact | contact_input: 'captcha' }}
30
- </li>
31
25
  <li>
32
26
  <button type="submit" name="submit" title="Send us an email">Send</button>
27
+ <div>{{ contact.recaptcha }}</div>
33
28
  </li>
34
29
  </ul>
35
30
  </form>
@@ -12,25 +12,19 @@ module Dugway
12
12
  'All fields are required'
13
13
  elsif param_does_not_match(:email, email_format)
14
14
  'Invalid email address'
15
- elsif param_does_not_match(:captcha, captcha_format)
16
- 'Spam check was incorrect'
17
15
  end
18
16
  end
19
17
 
20
18
  private
21
19
 
22
20
  def required_fields
23
- [ :name, :email, :subject, :message, :captcha ]
21
+ [ :name, :email, :subject, :message ]
24
22
  end
25
23
 
26
24
  def email_format
27
25
  /^([^@\s]+)@((?:[-a-zA-Z0-9]+\.)+[a-zA-Z]{2,})$/
28
26
  end
29
27
 
30
- def captcha_format
31
- /^rQ9pC$/i
32
- end
33
-
34
28
  def param_does_not_match(param_name, regex)
35
29
  !(params[param_name.to_sym] =~ regex)
36
30
  end
@@ -42,7 +42,7 @@ module Dugway
42
42
 
43
43
  nil
44
44
  end
45
-
45
+
46
46
  def method_missing(method, *args, &block)
47
47
  before_method(method.to_s)
48
48
  end
@@ -21,6 +21,15 @@ module Dugway
21
21
  %{<img id="captcha_image" src="https://s3.amazonaws.com/bigcartel/captcha/28e3d1288cbc70c0cd1a2d10845f8e11e1a90d14.png">}
22
22
  end
23
23
 
24
+ def recaptcha
25
+ @recaptcha ||= begin
26
+ html = "This site is protected by reCAPTCHA and the Google "
27
+ html += '<a href="https://policies.google.com/privacy">Privacy Policy</a> and '
28
+ html += '<a href="https://policies.google.com/terms">Terms of Service</a> apply.'
29
+ html
30
+ end
31
+ end
32
+
24
33
  def sent
25
34
  request.path == '/contact' && request.post? && errors.blank?
26
35
  end
@@ -4,6 +4,10 @@ module Dugway
4
4
  def all
5
5
  @all ||= source.select { |page| page['category'] == 'custom' }
6
6
  end
7
+
8
+ def cart
9
+ @cart ||= source.find { |page| page['permalink'] == 'cart' }
10
+ end
7
11
  end
8
12
  end
9
13
  end
@@ -68,7 +68,7 @@ module Dugway
68
68
 
69
69
  def search_terms
70
70
  params[:search]
71
- end
71
+ end
72
72
 
73
73
  def page
74
74
  if @context['internal'].present? && @context['internal'].has_key?('page') # has_key? here because 'page' will be nil for get blocks
@@ -1,3 +1,3 @@
1
1
  module Dugway
2
- VERSION = "0.12.3"
2
+ VERSION = "1.0.4"
3
3
  end
@@ -16,18 +16,12 @@ feature 'Contact form' do
16
16
  expect(page).to have_content('Invalid email address')
17
17
  end
18
18
 
19
- scenario 'with an invalid captcha' do
20
- submit_contact_form(:captcha => 'blah')
21
- expect(page).to have_content('Spam check was incorrect')
22
- end
23
-
24
19
  def submit_contact_form(fields={})
25
20
  fields.reverse_merge!(
26
21
  :name => 'Joe',
27
22
  :email => 'joe@example.com',
28
23
  :subject => 'Testing',
29
24
  :message => 'Hi there',
30
- :captcha => 'rQ9pC'
31
25
  )
32
26
 
33
27
  visit '/contact'
@@ -36,7 +30,6 @@ feature 'Contact form' do
36
30
  fill_in 'Email', :with => fields[:email]
37
31
  fill_in 'Subject', :with => fields[:subject]
38
32
  fill_in 'Message', :with => fields[:message]
39
- fill_in 'Spam check', :with => fields[:captcha]
40
33
 
41
34
  click_button 'Send'
42
35
  end
@@ -50,7 +50,7 @@ feature 'Page rendering' do
50
50
  visit '/contact'
51
51
  expect(page).to have_content('Dugway') # layout.html
52
52
  expect(page).to have_content('Contact')
53
- expect(page).to have_content('Spam check')
53
+ expect(page).to have_content('protected by reCAPTCHA')
54
54
  end
55
55
 
56
56
  scenario 'maintenance.html' do
@@ -1 +1 @@
1
- {"category":"custom","content":"<p>We're really cool!</p>","permalink":"about-us","name":"About Us","id":95821979,"url":"/about-us"}
1
+ {"category":"custom","content":"<p>We're really cool!</p>","permalink":"about-us","name":"About Us","id":95821979,"url":"/about-us"}
@@ -22,14 +22,9 @@
22
22
  <label for="message">Message</label>
23
23
  {{ contact | contact_input: 'message' }}
24
24
  </li>
25
- <li>
26
- <label for="captcha">Spam check</label>
27
- <p>Please enter the characters from the image.</p>
28
- <div>{{ contact.captcha }}</div>
29
- {{ contact | contact_input: 'captcha' }}
30
- </li>
31
25
  <li>
32
26
  <button type="submit" name="submit" title="Send us an email">Send</button>
27
+ <div>{{ contact.recaptcha }}</div>
33
28
  </li>
34
29
  </ul>
35
30
  </form>
@@ -11,7 +11,6 @@ describe Dugway::ContactFormValidator do
11
11
  :email => "name@example.com",
12
12
  :subject => "subject",
13
13
  :message => "message",
14
- :captcha => "rQ9pc",
15
14
  }
16
15
  end
17
16
 
@@ -36,21 +35,11 @@ describe Dugway::ContactFormValidator do
36
35
  assert_required_fields_error
37
36
  end
38
37
 
39
- it "returns an error for a missing captcha" do
40
- validator.params[:captcha] = " "
41
- assert_required_fields_error
42
- end
43
-
44
38
  it "returns an error for invalid email format" do
45
39
  validator.params[:email] = "foo-at-foo-dot-net"
46
40
  expect(validator.error_message).to eq "Invalid email address"
47
41
  end
48
42
 
49
- it "returns an error for incorrect captcha" do
50
- validator.params[:captcha] = "oops"
51
- expect(validator.error_message).to eq "Spam check was incorrect"
52
- end
53
-
54
43
  def assert_required_fields_error
55
44
  expect(validator.error_message).to eql "All fields are required"
56
45
  end
@@ -13,7 +13,7 @@ describe Dugway::Drops::ContactDrop do
13
13
  Rack::MockRequest::DEFAULT_ENV.update({
14
14
  'PATH_INFO' => '/contact'
15
15
  })}
16
-
16
+
17
17
  let(:request) { Dugway::Request.new(env) }
18
18
 
19
19
  let(:errors) {
@@ -96,6 +96,12 @@ describe Dugway::Drops::ContactDrop do
96
96
  end
97
97
  end
98
98
 
99
+ describe "#recaptcha" do
100
+ it "returns the recaptcha branding text" do
101
+ contact.recaptcha.should == %{This site is protected by reCAPTCHA and the Google <a href="https://policies.google.com/privacy">Privacy Policy</a> and <a href="https://policies.google.com/terms">Terms of Service</a> apply.}
102
+ end
103
+ end
104
+
99
105
  describe "#sent" do
100
106
  it "should return false before the form has been sent" do
101
107
  contact.sent.should be(false)
@@ -1,7 +1,18 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Dugway::Drops::PagesDrop do
4
- let(:pages) { Dugway::Drops::PagesDrop.new(Dugway.store.pages.map { |p| Dugway::Drops::PageDrop.new(p) }) }
4
+ let(:pages) do
5
+ Dugway::Drops::PagesDrop.new(
6
+ Dugway.store.pages.map do |p|
7
+ case p["permalink"]
8
+ when "cart"
9
+ Dugway::Drops::CartDrop.new(p)
10
+ else
11
+ Dugway::Drops::PageDrop.new(p)
12
+ end
13
+ end
14
+ )
15
+ end
5
16
 
6
17
  describe "#all" do
7
18
  it "should return an array of all pages" do
@@ -15,6 +26,14 @@ describe Dugway::Drops::PagesDrop do
15
26
  end
16
27
  end
17
28
 
29
+ describe "#cart" do
30
+ it "returns the cart drop instead of the cart class instance" do
31
+ cart = pages.cart
32
+ cart.should be_an_instance_of(Dugway::Drops::CartDrop)
33
+ cart.name.should == 'Cart'
34
+ end
35
+ end
36
+
18
37
  describe "#permalink" do
19
38
  it "should return the page by permalink" do
20
39
  page = pages.contact
@@ -118,7 +118,7 @@ describe Dugway::Theme do
118
118
  end
119
119
 
120
120
  it "should sprocketize and liquify theme.css" do
121
- theme.file_content('theme.css').gsub(/\s+/, '').should == %{html,body{height:100%;}a{background:lime;color:red;}footercitea{background:url(/images/bc_badge.png)no-repeat;}/**/}
121
+ theme.file_content('theme.css').gsub(/\s+/, '').should == %{html,body{height:100%;}a{background:#0f0;color:red;}footercitea{background:url(/images/bc_badge.png)no-repeat;}/**/}
122
122
  end
123
123
  end
124
124
 
@@ -134,7 +134,7 @@ describe Dugway::Theme do
134
134
  end
135
135
 
136
136
  it "should sprocketize and not liquify theme.css" do
137
- theme.build_file('theme.css').gsub(/\s+/, '').should == %{html,body{height:100%;}a{background:lime;color:{{theme.link_color}};}footercitea{background:url({{'bc_badge.png'|theme_image_url}})no-repeat;}/**/}
137
+ theme.build_file('theme.css').gsub(/\s+/, '').should == %{html,body{height:100%;}a{background:#0f0;color:{{theme.link_color}};}footercitea{background:url({{'bc_badge.png'|theme_image_url}})no-repeat;}/**/}
138
138
  end
139
139
  end
140
140
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dugway
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Big Cartel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-17 00:00:00.000000000 Z
11
+ date: 2021-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 3.0.6
83
+ - !ruby/object:Gem::Dependency
84
+ name: bigdecimal
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 1.4.4
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 1.4.4
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: coffee-script
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +114,14 @@ dependencies:
100
114
  requirements:
101
115
  - - "~>"
102
116
  - !ruby/object:Gem::Version
103
- version: 3.2.5
117
+ version: 3.4.25
104
118
  type: :runtime
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
- version: 3.2.5
124
+ version: 3.4.25
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: sprockets
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +156,14 @@ dependencies:
142
156
  requirements:
143
157
  - - "~>"
144
158
  - !ruby/object:Gem::Version
145
- version: 0.12.2
159
+ version: 1.0.3
146
160
  type: :runtime
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
164
  - - "~>"
151
165
  - !ruby/object:Gem::Version
152
- version: 0.12.2
166
+ version: 1.0.3
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: httparty
155
169
  requirement: !ruby/object:Gem::Requirement
@@ -268,14 +282,14 @@ dependencies:
268
282
  requirements:
269
283
  - - "~>"
270
284
  - !ruby/object:Gem::Version
271
- version: 1.7.2
285
+ version: 1.8.0
272
286
  type: :runtime
273
287
  prerelease: false
274
288
  version_requirements: !ruby/object:Gem::Requirement
275
289
  requirements:
276
290
  - - "~>"
277
291
  - !ruby/object:Gem::Version
278
- version: 1.7.2
292
+ version: 1.8.0
279
293
  - !ruby/object:Gem::Dependency
280
294
  name: bigcartel-theme-fonts
281
295
  requirement: !ruby/object:Gem::Requirement