post_clerk 0.4 → 0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +66 -21
  3. data/.travis.yml +10 -0
  4. data/Gemfile +34 -3
  5. data/Gemfile.lock +334 -0
  6. data/Guardfile +2 -4
  7. data/README.md +11 -6
  8. data/Rakefile +10 -12
  9. data/lib/office_clerk/post.rb +21 -16
  10. data/lib/post_clerk.rb +1 -1
  11. data/post_clerk.gemspec +2 -2
  12. data/spec/controllers/orders_controller_spec.rb +59 -0
  13. data/spec/features/orders_spec.rb +32 -0
  14. data/spec/lib/post_spec.rb +84 -85
  15. data/spec/spec_helper.rb +27 -29
  16. data/spec/support/admin.rb +4 -0
  17. data/spec/support/capybara.rb +14 -0
  18. data/spec/support/cleaner.rb +22 -0
  19. data/spec/support/email.rb +6 -0
  20. data/spec/support/request_helper.rb +31 -0
  21. data/test_app/README.rdoc +28 -0
  22. data/test_app/app/assets/javascripts/application.js +15 -0
  23. data/test_app/app/assets/stylesheets/application.css +13 -0
  24. data/test_app/app/controllers/application_controller.rb +5 -0
  25. data/test_app/app/helpers/application_helper.rb +2 -0
  26. data/test_app/app/views/layouts/sales_clerk.haml +9 -0
  27. data/test_app/bin/bundle +3 -0
  28. data/test_app/bin/rails +4 -0
  29. data/test_app/bin/rake +4 -0
  30. data/test_app/config/application.rb +30 -0
  31. data/test_app/config/boot.rb +4 -0
  32. data/test_app/config/database.yml +25 -0
  33. data/test_app/config/environment.rb +5 -0
  34. data/test_app/config/environments/development.rb +32 -0
  35. data/test_app/config/environments/production.rb +80 -0
  36. data/test_app/config/environments/test.rb +39 -0
  37. data/test_app/config/initializers/backtrace_silencers.rb +7 -0
  38. data/test_app/config/initializers/filter_parameter_logging.rb +4 -0
  39. data/test_app/config/initializers/inflections.rb +16 -0
  40. data/test_app/config/initializers/mime_types.rb +5 -0
  41. data/test_app/config/initializers/secret_token.rb +12 -0
  42. data/test_app/config/initializers/session_store.rb +3 -0
  43. data/test_app/config/initializers/wrap_parameters.rb +14 -0
  44. data/test_app/config/locales/config.yml +22 -0
  45. data/test_app/config/locales/en.yml +2 -0
  46. data/test_app/config/routes.rb +4 -0
  47. data/test_app/config.ru +4 -0
  48. data/test_app/db/migrate/20141114205525_clerks.office.rb +16 -0
  49. data/test_app/db/migrate/20141114205526_suppliers.office.rb +10 -0
  50. data/test_app/db/migrate/20141114205527_categories.office.rb +19 -0
  51. data/test_app/db/migrate/20141114205528_items.office.rb +15 -0
  52. data/test_app/db/migrate/20141114205529_orders.office.rb +23 -0
  53. data/test_app/db/migrate/20141114205530_baskets.office.rb +13 -0
  54. data/test_app/db/migrate/20141114205531_purchases.office.rb +12 -0
  55. data/test_app/db/migrate/20141114205532_products.office.rb +28 -0
  56. data/test_app/db/schema.rb +141 -0
  57. data/test_app/db/seeds.rb +7 -0
  58. data/test_app/log/development.log +0 -0
  59. data/test_app/public/404.html +58 -0
  60. data/test_app/public/422.html +58 -0
  61. data/test_app/public/500.html +57 -0
  62. data/test_app/public/favicon.ico +0 -0
  63. data/test_app/public/robots.txt +5 -0
  64. metadata +64 -6
  65. data/config/locales/en.yml +0 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2547bc9e7d5898e2d20e5a7216d0a20c731311c3
4
- data.tar.gz: 8719f905321df84630e7aa5436bca8d18cb2b643
3
+ metadata.gz: d11f486cf1b7fc92b45f1aa06816f3c1500e57c7
4
+ data.tar.gz: 2d9836b37b02330135332856c817f602d628c1c5
5
5
  SHA512:
6
- metadata.gz: a2fd111ec8c4a03fa8635c3574d2a5ba6bd0d4a027ffc6d55445d70286a12be53b649f8326636645e9b109f64e1f74e9a09709652f29d9a488da06f9975bd3c8
7
- data.tar.gz: 108a6308e74cc9d81cf8a13fe46204f517c886fbf1fd247540ca8edb43b1aaf01a61f097f27d02a1b92671ac3e4d2b3dee9813789914698f2370c5fdf818208b
6
+ metadata.gz: 064b9c8b4c5f9b01918170b808314ee580867b69fa3837aecf6fbaccbb9a5145f54df33ae8a4cdc685039ce3b210919d7588f64575b1ebb62162dae3312053ec
7
+ data.tar.gz: c9b3a68ce5fe5ace40daac9d1dd61d7cbcb23955b063d38b45c0e1fe4bf61ac33996e9342366912b19156244e39dd61f3de33d1d63ede876171fce20c2ba8947
data/.gitignore CHANGED
@@ -1,31 +1,76 @@
1
+ # bundler state
2
+ /.bundle
3
+ /vendor/bundle/
4
+ /vendor/ruby/
5
+
6
+ # minimal Rails specific artifacts
7
+ *.sqlite3
8
+ *.sqlite3-journal
9
+ /log/*
10
+ /tmp/*
11
+ .ruby-version
12
+ test_app/tmp
13
+ test_app/log
14
+ test_app/db/*.sqlite3
15
+
16
+ # configuration file introduced in Rails 4.1
17
+ /config/secrets.yml
18
+
19
+ .localeapp
20
+
21
+ # various artifacts
22
+ **.war
1
23
  *.rbc
2
- capybara-*.html
24
+ *.sassc
3
25
  .rspec
4
- /log
5
- /tmp
6
- /db/*.sqlite3
7
- /public/system
26
+ .redcar/
27
+ .sass-cache
28
+ /coverage.data
8
29
  /coverage/
9
- /spec/tmp
10
- **.orig
30
+ /db/*.javadb/
31
+ /db/*.sqlite3
32
+ /doc/api/
33
+ /doc/app/
34
+ /doc/features.html
35
+ /doc/specs.html
36
+ /public/cache
37
+ /public/assets
38
+ /public/stylesheets/compiled
39
+ /public/system/*
40
+ /spec/tmp/*
41
+ /cache
42
+ /capybara*
43
+ /capybara-*.html
44
+ /gems
45
+ /specifications
11
46
  rerun.txt
12
47
  pickle-email-*.html
48
+ .zeus.sock
49
+ webrat.log
50
+ public/images
51
+ public/extra_pictures/
52
+ public/main_pictures/
53
+ # If you find yourself ignoring temporary files generated by your text editor
54
+ # or operating system, you probably want to add a global ignore instead:
55
+ # git config --global core.excludesfile ~/.gitignore_global
56
+ #
57
+ # Here are some files you may want to ignore globally:
13
58
 
14
- # TODO Comment out these rules if you are OK with secrets being uploaded to the repo
15
- config/initializers/secret_token.rb
16
- config/secrets.yml
59
+ # scm revert files
60
+ **.orig
17
61
 
18
- ## Environment normalisation:
19
- /.bundle
20
- /vendor/bundle
62
+ # Mac finder artifacts
63
+ .DS_Store
64
+
65
+ # Netbeans project directory
66
+ /nbproject/
21
67
 
22
- # these should all be checked in to normalise the environment:
23
- # Gemfile.lock, .ruby-version, .ruby-gemset
68
+ # RubyMine project files
69
+ .idea
24
70
 
25
- # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
26
- .rvmrc
71
+ # Textmate project files
72
+ /*.tmproj
27
73
 
28
- # if using bower-rails ignore default bower_components path bower.json files
29
- /vendor/assets/bower_components
30
- *.bowerrc
31
- bower.json
74
+ # vim artifacts
75
+ **.swp
76
+ .localeapp
data/.travis.yml ADDED
@@ -0,0 +1,10 @@
1
+ language: ruby
2
+ sudo: false
3
+ cache: bundler
4
+ script:
5
+ - RAILS_ENV=test bundle exec rake db:migrate
6
+ - CODECLIMATE_REPO_TOKEN=adae8235c95c87b64fe29dce735c0d6340e8050ad504bade9b53cfcaab818c2b bundle exec rspec
7
+ rvm:
8
+ - 1.9.3
9
+ - 2.0.0
10
+ - 2.1.4
data/Gemfile CHANGED
@@ -1,5 +1,36 @@
1
- source 'https://rubygems.org/'
1
+ source 'https://rubygems.org'
2
2
 
3
- gem 'office_clerk', github: 'rubyclerks/office_clerk'
3
+ gem "office_clerk" , :github => "rubyclerks/office_clerk"
4
+ #gem "office_clerk" , :path => "../office_clerk"
5
+ gem "post_clerk" , :path => "../"
4
6
 
5
- gemspec
7
+ gem 'sqlite3'
8
+
9
+ # those guys dropped 1.9 support, but i haven't
10
+ gem "autoprefixer-rails" , '< 6.0' , :platform => [:ruby_19]
11
+
12
+ #asset / production reelated
13
+ gem "therubyracer"
14
+ gem "libv8"
15
+ gem "rb-readline"
16
+ gem 'uglifier', '>= 1.3.0'
17
+
18
+ group :development do
19
+ gem 'better_errors' , :platforms=>[:mri_20, :mri_21, :rbx]
20
+ gem 'binding_of_caller', :platforms=>[:mri_19, :mri_20, :mri_21,:rbx]
21
+ gem 'quiet_assets'
22
+ end
23
+ group :test do
24
+ # gem "poltergeist"
25
+ # gem "phantomjs"
26
+ gem "codeclimate-test-reporter"
27
+ gem 'rspec-rails'
28
+ gem 'capybara'
29
+ gem 'capybara-screenshot'
30
+ gem 'database_cleaner'
31
+ gem "factory_girl_rails"
32
+ gem 'email_spec'
33
+ gem 'i18n-spec'
34
+ gem 'guard-rails'
35
+ gem 'guard-rspec'
36
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,334 @@
1
+ GIT
2
+ remote: git://github.com/rubyclerks/office_clerk.git
3
+ revision: 9b4b90d42bef4ea44f1f4c22d38e43c2f8c2cde3
4
+ specs:
5
+ office_clerk (0.9)
6
+ bcrypt-ruby (~> 3.1)
7
+ best_in_place (~> 3.0)
8
+ bootstrap-sass (~> 3.1)
9
+ bootstrap_form (~> 2.2)
10
+ coffee-rails (~> 4.0)
11
+ gon (~> 5.2)
12
+ haml (~> 4.0)
13
+ jquery-rails (~> 3.1)
14
+ jquery-ui-rails (~> 5.0)
15
+ kramdown (~> 1.5)
16
+ paperclip (~> 4.0)
17
+ rails (~> 4.2, < 5.0)
18
+ rails-i18n (~> 4.0)
19
+ ransack (~> 1.7)
20
+ sass-rails (~> 5.0)
21
+ valid_email (~> 0.0, >= 0.0.10)
22
+ will_paginate-bootstrap (~> 1.0)
23
+
24
+ PATH
25
+ remote: ../
26
+ specs:
27
+ post_clerk (0.5)
28
+ office_clerk (~> 0.9)
29
+
30
+ GEM
31
+ remote: https://rubygems.org/
32
+ specs:
33
+ actionmailer (4.2.5)
34
+ actionpack (= 4.2.5)
35
+ actionview (= 4.2.5)
36
+ activejob (= 4.2.5)
37
+ mail (~> 2.5, >= 2.5.4)
38
+ rails-dom-testing (~> 1.0, >= 1.0.5)
39
+ actionpack (4.2.5)
40
+ actionview (= 4.2.5)
41
+ activesupport (= 4.2.5)
42
+ rack (~> 1.6)
43
+ rack-test (~> 0.6.2)
44
+ rails-dom-testing (~> 1.0, >= 1.0.5)
45
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
46
+ actionview (4.2.5)
47
+ activesupport (= 4.2.5)
48
+ builder (~> 3.1)
49
+ erubis (~> 2.7.0)
50
+ rails-dom-testing (~> 1.0, >= 1.0.5)
51
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
52
+ activejob (4.2.5)
53
+ activesupport (= 4.2.5)
54
+ globalid (>= 0.3.0)
55
+ activemodel (4.2.5)
56
+ activesupport (= 4.2.5)
57
+ builder (~> 3.1)
58
+ activerecord (4.2.5)
59
+ activemodel (= 4.2.5)
60
+ activesupport (= 4.2.5)
61
+ arel (~> 6.0)
62
+ activesupport (4.2.5)
63
+ i18n (~> 0.7)
64
+ json (~> 1.7, >= 1.7.7)
65
+ minitest (~> 5.1)
66
+ thread_safe (~> 0.3, >= 0.3.4)
67
+ tzinfo (~> 1.1)
68
+ addressable (2.3.6)
69
+ arel (6.0.3)
70
+ autoprefixer-rails (5.2.1.3)
71
+ execjs
72
+ json
73
+ bcrypt (3.1.10)
74
+ bcrypt-ruby (3.1.5)
75
+ bcrypt (>= 3.1.3)
76
+ best_in_place (3.1.0)
77
+ actionpack (>= 3.2)
78
+ railties (>= 3.2)
79
+ better_errors (2.0.0)
80
+ coderay (>= 1.0.0)
81
+ erubis (>= 2.6.6)
82
+ rack (>= 0.9.0)
83
+ binding_of_caller (0.7.2)
84
+ debug_inspector (>= 0.0.1)
85
+ bootstrap-sass (3.3.6)
86
+ autoprefixer-rails (>= 5.2.1)
87
+ sass (>= 3.3.4)
88
+ bootstrap_form (2.3.0)
89
+ builder (3.2.2)
90
+ capybara (2.4.4)
91
+ mime-types (>= 1.16)
92
+ nokogiri (>= 1.3.3)
93
+ rack (>= 1.0.0)
94
+ rack-test (>= 0.5.4)
95
+ xpath (~> 2.0)
96
+ capybara-screenshot (1.0.3)
97
+ capybara (>= 1.0, < 3)
98
+ colored
99
+ launchy
100
+ celluloid (0.16.0)
101
+ timers (~> 4.0.0)
102
+ climate_control (0.0.3)
103
+ activesupport (>= 3.0)
104
+ cocaine (0.5.8)
105
+ climate_control (>= 0.0.3, < 1.0)
106
+ codeclimate-test-reporter (0.4.1)
107
+ simplecov (>= 0.7.1, < 1.0.0)
108
+ coderay (1.1.0)
109
+ coffee-rails (4.1.0)
110
+ coffee-script (>= 2.2.0)
111
+ railties (>= 4.0.0, < 5.0)
112
+ coffee-script (2.4.1)
113
+ coffee-script-source
114
+ execjs
115
+ coffee-script-source (1.10.0)
116
+ colored (1.2)
117
+ concurrent-ruby (1.0.0)
118
+ database_cleaner (1.3.0)
119
+ debug_inspector (0.0.2)
120
+ diff-lcs (1.2.5)
121
+ docile (1.1.5)
122
+ email_spec (1.6.0)
123
+ launchy (~> 2.1)
124
+ mail (~> 2.2)
125
+ erubis (2.7.0)
126
+ execjs (2.6.0)
127
+ factory_girl (4.5.0)
128
+ activesupport (>= 3.0.0)
129
+ factory_girl_rails (4.5.0)
130
+ factory_girl (~> 4.5.0)
131
+ railties (>= 3.0.0)
132
+ ffi (1.9.6)
133
+ formatador (0.2.5)
134
+ globalid (0.3.6)
135
+ activesupport (>= 4.1.0)
136
+ gon (5.2.3)
137
+ actionpack (>= 2.3.0)
138
+ json
139
+ multi_json
140
+ request_store (>= 1.0.5)
141
+ guard (2.9.0)
142
+ formatador (>= 0.2.4)
143
+ listen (~> 2.7)
144
+ lumberjack (~> 1.0)
145
+ pry (>= 0.9.12)
146
+ thor (>= 0.18.1)
147
+ guard-rails (0.7.0)
148
+ guard (~> 2.0)
149
+ guard-rspec (4.3.1)
150
+ guard (~> 2.1)
151
+ rspec (>= 2.14, < 4.0)
152
+ haml (4.0.7)
153
+ tilt
154
+ hitimes (1.2.2)
155
+ i18n (0.7.0)
156
+ i18n-spec (0.6.0)
157
+ iso
158
+ iso (0.2.1)
159
+ i18n
160
+ jquery-rails (3.1.4)
161
+ railties (>= 3.0, < 5.0)
162
+ thor (>= 0.14, < 2.0)
163
+ jquery-ui-rails (5.0.5)
164
+ railties (>= 3.2.16)
165
+ json (1.8.3)
166
+ kramdown (1.9.0)
167
+ launchy (2.4.3)
168
+ addressable (~> 2.3)
169
+ libv8 (3.16.14.13)
170
+ listen (2.8.2)
171
+ celluloid (>= 0.15.2)
172
+ rb-fsevent (>= 0.9.3)
173
+ rb-inotify (>= 0.9)
174
+ loofah (2.0.3)
175
+ nokogiri (>= 1.5.9)
176
+ lumberjack (1.0.9)
177
+ mail (2.6.3)
178
+ mime-types (>= 1.16, < 3)
179
+ method_source (0.8.2)
180
+ mime-types (2.99)
181
+ mimemagic (0.3.0)
182
+ mini_portile (0.6.1)
183
+ minitest (5.8.3)
184
+ multi_json (1.11.2)
185
+ nokogiri (1.6.4.1)
186
+ mini_portile (~> 0.6.0)
187
+ paperclip (4.3.2)
188
+ activemodel (>= 3.2.0)
189
+ activesupport (>= 3.2.0)
190
+ cocaine (~> 0.5.5)
191
+ mime-types
192
+ mimemagic (= 0.3.0)
193
+ polyamorous (1.3.0)
194
+ activerecord (>= 3.0)
195
+ pry (0.10.1)
196
+ coderay (~> 1.1.0)
197
+ method_source (~> 0.8.1)
198
+ slop (~> 3.4)
199
+ quiet_assets (1.0.3)
200
+ railties (>= 3.1, < 5.0)
201
+ rack (1.6.4)
202
+ rack-test (0.6.3)
203
+ rack (>= 1.0)
204
+ rails (4.2.5)
205
+ actionmailer (= 4.2.5)
206
+ actionpack (= 4.2.5)
207
+ actionview (= 4.2.5)
208
+ activejob (= 4.2.5)
209
+ activemodel (= 4.2.5)
210
+ activerecord (= 4.2.5)
211
+ activesupport (= 4.2.5)
212
+ bundler (>= 1.3.0, < 2.0)
213
+ railties (= 4.2.5)
214
+ sprockets-rails
215
+ rails-deprecated_sanitizer (1.0.3)
216
+ activesupport (>= 4.2.0.alpha)
217
+ rails-dom-testing (1.0.7)
218
+ activesupport (>= 4.2.0.beta, < 5.0)
219
+ nokogiri (~> 1.6.0)
220
+ rails-deprecated_sanitizer (>= 1.0.1)
221
+ rails-html-sanitizer (1.0.2)
222
+ loofah (~> 2.0)
223
+ rails-i18n (4.0.7)
224
+ i18n (~> 0.7)
225
+ railties (~> 4.0)
226
+ railties (4.2.5)
227
+ actionpack (= 4.2.5)
228
+ activesupport (= 4.2.5)
229
+ rake (>= 0.8.7)
230
+ thor (>= 0.18.1, < 2.0)
231
+ rake (10.4.2)
232
+ ransack (1.7.0)
233
+ actionpack (>= 3.0)
234
+ activerecord (>= 3.0)
235
+ activesupport (>= 3.0)
236
+ i18n
237
+ polyamorous (~> 1.2)
238
+ rb-fsevent (0.9.4)
239
+ rb-inotify (0.9.5)
240
+ ffi (>= 0.5.0)
241
+ rb-readline (0.5.1)
242
+ ref (1.0.5)
243
+ request_store (1.2.1)
244
+ rspec (3.1.0)
245
+ rspec-core (~> 3.1.0)
246
+ rspec-expectations (~> 3.1.0)
247
+ rspec-mocks (~> 3.1.0)
248
+ rspec-core (3.1.7)
249
+ rspec-support (~> 3.1.0)
250
+ rspec-expectations (3.1.2)
251
+ diff-lcs (>= 1.2.0, < 2.0)
252
+ rspec-support (~> 3.1.0)
253
+ rspec-mocks (3.1.3)
254
+ rspec-support (~> 3.1.0)
255
+ rspec-rails (3.1.0)
256
+ actionpack (>= 3.0)
257
+ activesupport (>= 3.0)
258
+ railties (>= 3.0)
259
+ rspec-core (~> 3.1.0)
260
+ rspec-expectations (~> 3.1.0)
261
+ rspec-mocks (~> 3.1.0)
262
+ rspec-support (~> 3.1.0)
263
+ rspec-support (3.1.2)
264
+ sass (3.4.20)
265
+ sass-rails (5.0.4)
266
+ railties (>= 4.0.0, < 5.0)
267
+ sass (~> 3.1)
268
+ sprockets (>= 2.8, < 4.0)
269
+ sprockets-rails (>= 2.0, < 4.0)
270
+ tilt (>= 1.1, < 3)
271
+ simplecov (0.9.1)
272
+ docile (~> 1.1.0)
273
+ multi_json (~> 1.0)
274
+ simplecov-html (~> 0.8.0)
275
+ simplecov-html (0.8.0)
276
+ slop (3.6.0)
277
+ sprockets (3.5.2)
278
+ concurrent-ruby (~> 1.0)
279
+ rack (> 1, < 3)
280
+ sprockets-rails (2.3.3)
281
+ actionpack (>= 3.0)
282
+ activesupport (>= 3.0)
283
+ sprockets (>= 2.8, < 4.0)
284
+ sqlite3 (1.3.10)
285
+ therubyracer (0.12.1)
286
+ libv8 (~> 3.16.14.0)
287
+ ref
288
+ thor (0.19.1)
289
+ thread_safe (0.3.5)
290
+ tilt (2.0.1)
291
+ timers (4.0.1)
292
+ hitimes
293
+ tzinfo (1.2.2)
294
+ thread_safe (~> 0.1)
295
+ uglifier (2.5.3)
296
+ execjs (>= 0.3.0)
297
+ json (>= 1.8.0)
298
+ valid_email (0.0.11)
299
+ activemodel
300
+ mail (~> 2.6.1)
301
+ will_paginate (3.0.7)
302
+ will_paginate-bootstrap (1.0.1)
303
+ will_paginate (>= 3.0.3)
304
+ xpath (2.0.0)
305
+ nokogiri (~> 1.3)
306
+
307
+ PLATFORMS
308
+ ruby
309
+
310
+ DEPENDENCIES
311
+ autoprefixer-rails (< 6.0)
312
+ better_errors
313
+ binding_of_caller
314
+ capybara
315
+ capybara-screenshot
316
+ codeclimate-test-reporter
317
+ database_cleaner
318
+ email_spec
319
+ factory_girl_rails
320
+ guard-rails
321
+ guard-rspec
322
+ i18n-spec
323
+ libv8
324
+ office_clerk!
325
+ post_clerk!
326
+ quiet_assets
327
+ rb-readline
328
+ rspec-rails
329
+ sqlite3
330
+ therubyracer
331
+ uglifier (>= 1.3.0)
332
+
333
+ BUNDLED WITH
334
+ 1.10.6
data/Guardfile CHANGED
@@ -4,10 +4,8 @@ group :red_green_refactor, halt_on_fail: true do
4
4
  watch('spec/spec_helper.rb') { 'spec' }
5
5
  watch(%r{^spec/(.+)_spec\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
6
6
  watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
7
+ # locales
8
+ watch(%r{^config/locales/.*yml}) { |m| "spec/i18n_spec.rb" }
7
9
  end
8
10
 
9
- guard :rubocop, all_on_start: false, cli: ['--format', 'clang', '--rails'] do
10
- watch(%r{.+\.rb$})
11
- watch(%r{(?:.+/)?\.(rubocop|hound)\.yml$}) { |m| File.dirname(m[0]) }
12
- end
13
11
  end
data/README.md CHANGED
@@ -1,6 +1,11 @@
1
+ [![Build Status](https://travis-ci.org/rubyclerks/post_clerk.svg?branch=master)](https://travis-ci.org/rubyclerks/post_clerk)
2
+ [![Gem Version](https://badge.fury.io/rb/post_clerk.svg)](http://badge.fury.io/rb/post_clerk)
3
+ [![Code Climate](https://codeclimate.com/github/rubyclerks/post_clerk/badges/gpa.svg)](https://codeclimate.com/github/rubyclerks/post_clerk)
4
+ [![Test Coverage](https://codeclimate.com/github/rubyclerks/post_clerk/badges/coverage.svg)](https://codeclimate.com/github/rubyclerks/post_clerk)
5
+
1
6
  # Post Clerk
2
7
 
3
- A postal service is delivers based on weight only. Like most post services in Europe will.
8
+ A postal service delivers based on weight only. Like most post services in Europe will.
4
9
 
5
10
  This extension adds a office_clerk/shipping_method model to do this.
6
11
 
@@ -30,24 +35,24 @@ Add a config/locale/config.yml with the data for the calculator (s)
30
35
 
31
36
  With the default settings (measurements in kg and cm):
32
37
 
33
- - Max weight of one item: 18
38
+ - Max weight of one item: 20
34
39
  - Default weight: 1kg (applies when product weight is 0)
35
40
  - Handling fee: 0
36
41
  - Amount, over which handling fee won't be applied: 50
37
- - Max total of the order: 120.0
42
+ - Max total of the order: 100.0
38
43
  - Weights (space separated): 1 2 5 10 20
39
44
  - Prices (space separated): 2 5 10 15 18
40
45
 
41
46
 
42
- The Shipping method does not apply to the order if any items weighs more than 18 kg.
47
+ The Shipping method does not apply to the order if any items weighs more than 20 kg.
43
48
 
44
49
  ## Cost examples
45
50
 
46
- - Items weighing 10 kg of worth 100 Euros will cost 15 Euros.
51
+ - Items weighing 10 kg of worth 90 Euros will cost 15 Euros.
47
52
  - Items weighing 10 kg of worth 40 Euros will cost 25 Euros (15 + 10 handling).
48
53
  - Items weighing less than 1 kg of worth 60 Euros will cost 6 Euros.
49
54
  - Items weighing less than 1 kg of worth 40 Euros will cost 16 Euros (6 + 10).
50
- - Items weighing 25 kg of worth 200 Euros will cost 30 Euros (2 packages, 18 + 12 Euro).
55
+ - Items weighing 25 kg of worth 90 Euros will cost 30 Euros (2 packages, 18 + 12 Euro).
51
56
  - 3 items without weight information of worth 100 euros will cost 12 Euro.
52
57
  - Any amount of items costing more than the max_price will cost 0 Euro.
53
58
 
data/Rakefile CHANGED
@@ -1,16 +1,14 @@
1
- require 'bundler'
2
- Bundler::GemHelper.install_tasks
3
- Bundler.setup
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
4
3
 
5
- require 'rspec/core/rake_task'
6
- require 'office_clerk/testing_support/common_rake'
4
+ require File.expand_path('../test_app/config/application', __FILE__)
7
5
 
8
- RSpec::Core::RakeTask.new
6
+ TestApp::Application.load_tasks
7
+ require 'bundler/gem_tasks'
9
8
 
10
- task default: [:spec]
11
-
12
- desc 'Generates a dummy app for testing'
13
- task :test_app do
14
- ENV['LIB_NAME'] = 'post_clerk'
15
- Rake::Task['common:test_app'].invoke
9
+ desc 'Rebuild test and run specs'
10
+ task :full_test do
11
+ system("rake db:drop db:migrate RAILS_ENV=test && rspec")
16
12
  end
13
+
14
+ task :default => 'full_test'
@@ -3,25 +3,16 @@ module OfficeClerk
3
3
 
4
4
  DEFAULTS ={ :weight_table => '1 2 5 10 20' ,
5
5
  :price_table => '2 5 10 15 18' ,
6
- :max_item_weight => "18" ,
7
- :max_price => "120" ,
6
+ :max_item_weight => "20" ,
7
+ :max_price => "100" ,
8
8
  :handling_max => "20" ,
9
- :handling_fee => "2" ,
9
+ :handling_fee => "0" ,
10
10
  :default_weight => "1" }
11
11
 
12
12
  def initialize data
13
13
  super DEFAULTS.merge(data)
14
- @prices = @data[:price_table].split.map(&:to_f)
15
- @weights = @data[:weight_table].split.map(&:to_f)
16
- @max_item_weight = @data[:max_item_weight].to_f || 18.0
17
- @max_price = @data[:max_price].to_f || 120.0
18
- @handling_max = @data[:handling_max].to_f || 20.0
19
- @handling_fee = @data[:handling_fee].to_f || 2.0
20
- @default_weight = @data[:default_weight].to_f || 1.0
21
- raise "Could not parse weights #{@data[:weight_table]} for #{key}" if @weights.empty?
22
- raise "Could not parse weights #{@data[:weight_table]} for #{key}" if @weights.include?(nil)
23
- raise "Could not parse prices #{@data[:price_table]} for #{key}" if @prices.empty?
24
- raise "Could not parse prices #{@data[:price_table]} for #{key}" if @prices.include?(nil)
14
+ set_members
15
+ check_values!
25
16
  end
26
17
  attr_reader :prices , :weights , :max_item_weight , :max_price , :handling_fee , :handling_max , :default_weight
27
18
 
@@ -37,8 +28,7 @@ module OfficeClerk
37
28
 
38
29
  def price_for(basket)
39
30
  total_price = basket.total_price
40
- return 0.0 if total_price > max_price
41
-
31
+ return 0.0 if total_price > self.max_price
42
32
  total_weight = basket.items.map {|item| item.quantity * (item.product.weight || default_weight) }.reduce(:+) || 0.0
43
33
  shipping = 0
44
34
 
@@ -64,5 +54,20 @@ module OfficeClerk
64
54
  def calc_handling_fee(total_price)
65
55
  handling_max < total_price ? 0 : handling_fee
66
56
  end
57
+ private
58
+ def set_members
59
+ @prices = @data[:price_table].split.map(&:to_f)
60
+ @weights = @data[:weight_table].split.map(&:to_f)
61
+ @max_item_weight = @data[:max_item_weight].to_f || 18.0
62
+ @max_price = @data[:max_price].to_f || 100.0
63
+ @handling_max = @data[:handling_max].to_f || 20.0
64
+ @handling_fee = @data[:handling_fee].to_f || 2.0
65
+ @default_weight = @data[:default_weight].to_f || 1.0
66
+ end
67
+ def check_values!
68
+ raise "Could not parse weights #{@weights}" if @weights.empty? or @weights.include?(nil)
69
+ raise "Could not parse prices #{@prices}" if @prices.empty? or @prices.include?(nil)
70
+ raise "Price length #{@prices.length} and weight length #{@weights.length} differ" if @weights.length != @prices.length
71
+ end
67
72
  end
68
73
  end
data/lib/post_clerk.rb CHANGED
@@ -6,7 +6,7 @@ module PostClerk
6
6
  config.autoload_paths += %W(#{config.root}/lib)
7
7
 
8
8
  initializer 'post_clerk' do |app|
9
-
9
+ app.config.assets.precompile += %w(post_office.css post_office.js)
10
10
  end
11
11
  end
12
12
  end
data/post_clerk.gemspec CHANGED
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift lib unless $LOAD_PATH.include?(lib)
5
5
  Gem::Specification.new do |s|
6
6
  s.platform = Gem::Platform::RUBY
7
7
  s.name = 'post_clerk'
8
- s.version = "0.4"
8
+ s.version = "0.5"
9
9
  s.summary = 'Calculate weight based charges for a OfficeClerk basket'
10
10
  s.description = s.summary
11
11
  s.required_ruby_version = '>= 1.9.3'
@@ -22,6 +22,6 @@ Gem::Specification.new do |s|
22
22
 
23
23
  s.has_rdoc = false
24
24
 
25
- s.add_runtime_dependency 'office_clerk', '~> 0.1'
25
+ s.add_runtime_dependency 'office_clerk', '~> 0.9'
26
26
 
27
27
  end