magerecord 0.3.1 → 0.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3fb787d329be1321cde1538513746463082bb6ce
4
- data.tar.gz: 0fba00602a82d7fcfbfbb559aaa0196987fb1d1c
3
+ metadata.gz: f0a65840b693a038d434aaac51847d65730b0cfc
4
+ data.tar.gz: 22708fa2c00d23c49ecc866f4d48c49b05bf473c
5
5
  SHA512:
6
- metadata.gz: 58b4f1d384f4ff8bd613a7f70cc2a3e7dfe4f3a5c02475b31d3b0381061ed032ea7feb7f26cec8a9ac4b50f836bd361767d5531b21d37bc8021478bf04eb5249
7
- data.tar.gz: 35c678593c0d0e7166c888a102c47c7a2c55c6cf18cc52c535c7d19f44429a279cd5c08b8dbb5e042b1658f6eaf35148ccad62fd4ff50a6475f3472c54d0879c
6
+ metadata.gz: ec23ceae27ed5aa8974a1765f8c24bb876b08aef7862c5c12fa7eb6b5be489e384470ec5282004e68bee260a8fc262fa1a69f597257649e5eb605ea4a89cccec
7
+ data.tar.gz: 9a19fc6698dc2ce49a9465f9d4a20c6e5f40a603dd117ae3476a0ed227a6c10de18d2d69e3e29981ad0c4002bc2503930753bb38ae65f0e1d1907a35baa561f0
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source 'https://rubygems.org'
2
- gem 'activerecord', '~> 4.0'
3
- gem 'mysql2', '~> 0.3.18', :platforms => :ruby
2
+ gem 'activerecord', '>= 4.1'
3
+ gem 'mysql2', '>= 0.4.0'
4
4
 
5
5
 
6
6
  # Add dependencies to develop your gem here.
data/Gemfile.lock CHANGED
@@ -1,79 +1,88 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
- activemodel (4.2.4)
5
- activesupport (= 4.2.4)
6
- builder (~> 3.1)
7
- activerecord (4.2.4)
8
- activemodel (= 4.2.4)
9
- activesupport (= 4.2.4)
10
- arel (~> 6.0)
11
- activesupport (4.2.4)
4
+ activemodel (5.0.0.1)
5
+ activesupport (= 5.0.0.1)
6
+ activerecord (5.0.0.1)
7
+ activemodel (= 5.0.0.1)
8
+ activesupport (= 5.0.0.1)
9
+ arel (~> 7.0)
10
+ activesupport (5.0.0.1)
11
+ concurrent-ruby (~> 1.0, >= 1.0.2)
12
12
  i18n (~> 0.7)
13
- json (~> 1.7, >= 1.7.7)
14
13
  minitest (~> 5.1)
15
- thread_safe (~> 0.3, >= 0.3.4)
16
14
  tzinfo (~> 1.1)
17
- addressable (2.3.8)
18
- arel (6.0.3)
15
+ addressable (2.5.0)
16
+ public_suffix (~> 2.0, >= 2.0.2)
17
+ arel (7.1.4)
19
18
  builder (3.2.2)
19
+ concurrent-ruby (1.0.2)
20
+ concurrent-ruby (1.0.2-java)
20
21
  descendants_tracker (0.0.4)
21
22
  thread_safe (~> 0.3, >= 0.3.1)
22
23
  docile (1.1.5)
23
24
  faraday (0.9.2)
24
25
  multipart-post (>= 1.2, < 3)
25
- git (1.2.9.1)
26
- github_api (0.12.4)
26
+ git (1.3.0)
27
+ github_api (0.11.3)
27
28
  addressable (~> 2.3)
28
- descendants_tracker (~> 0.0.4)
29
+ descendants_tracker (~> 0.0.1)
29
30
  faraday (~> 0.8, < 0.10)
30
- hashie (>= 3.4)
31
+ hashie (>= 1.2)
31
32
  multi_json (>= 1.7.5, < 2.0)
32
- nokogiri (~> 1.6.6)
33
+ nokogiri (~> 1.6.0)
33
34
  oauth2
34
- hashie (3.4.3)
35
+ hashie (3.4.6)
35
36
  highline (1.7.8)
36
37
  i18n (0.7.0)
37
- jeweler (2.0.1)
38
+ jar-dependencies (0.3.7)
39
+ jeweler (2.2.1)
38
40
  builder
39
41
  bundler (>= 1.0)
40
42
  git (>= 1.2.5)
41
- github_api
43
+ github_api (~> 0.11.0)
42
44
  highline (>= 1.6.15)
43
45
  nokogiri (>= 1.5.10)
46
+ psych (~> 2.2)
44
47
  rake
45
48
  rdoc
49
+ semver
46
50
  json (1.8.3)
47
51
  json (1.8.3-java)
48
- jwt (1.5.2)
49
- mini_portile (0.6.2)
50
- minitest (5.8.2)
51
- multi_json (1.11.2)
52
- multi_xml (0.5.5)
52
+ jwt (1.5.6)
53
+ mini_portile2 (2.1.0)
54
+ minitest (5.10.1)
55
+ multi_json (1.12.1)
56
+ multi_xml (0.6.0)
53
57
  multipart-post (2.0.0)
54
- mysql2 (0.3.20)
55
- nokogiri (1.6.6.2)
56
- mini_portile (~> 0.6.0)
57
- nokogiri (1.6.6.2-java)
58
- oauth2 (1.0.0)
58
+ mysql2 (0.4.5)
59
+ nokogiri (1.6.8.1)
60
+ mini_portile2 (~> 2.1.0)
61
+ nokogiri (1.6.8.1-java)
62
+ oauth2 (1.2.0)
59
63
  faraday (>= 0.8, < 0.10)
60
64
  jwt (~> 1.0)
61
65
  multi_json (~> 1.3)
62
66
  multi_xml (~> 0.5)
63
- rack (~> 1.2)
64
- rack (1.6.4)
65
- rake (10.4.2)
67
+ rack (>= 1.2, < 3)
68
+ psych (2.2.1)
69
+ psych (2.2.1-java)
70
+ jar-dependencies (>= 0.1.7)
71
+ public_suffix (2.0.4)
72
+ rack (2.0.1)
73
+ rake (12.0.0)
66
74
  rdoc (3.12.2)
67
75
  json (~> 1.4)
76
+ semver (1.0.1)
68
77
  shoulda (3.5.0)
69
78
  shoulda-context (~> 1.0, >= 1.0.1)
70
79
  shoulda-matchers (>= 1.4.1, < 3.0)
71
- shoulda-context (1.2.1)
80
+ shoulda-context (1.2.2)
72
81
  shoulda-matchers (2.8.0)
73
82
  activesupport (>= 3.0.0)
74
- simplecov (0.10.0)
83
+ simplecov (0.12.0)
75
84
  docile (~> 1.1.0)
76
- json (~> 1.8)
85
+ json (>= 1.8, < 3)
77
86
  simplecov-html (~> 0.10.0)
78
87
  simplecov-html (0.10.0)
79
88
  thread_safe (0.3.5)
@@ -86,13 +95,13 @@ PLATFORMS
86
95
  ruby
87
96
 
88
97
  DEPENDENCIES
89
- activerecord (~> 4.0)
98
+ activerecord (>= 4.1)
90
99
  bundler (~> 1.0)
91
100
  jeweler (~> 2.0, >= 2.0.1)
92
- mysql2 (~> 0.3.18)
101
+ mysql2 (>= 0.4.0)
93
102
  rdoc (~> 3.12)
94
103
  shoulda
95
104
  simplecov (~> 0)
96
105
 
97
106
  BUNDLED WITH
98
- 1.10.6
107
+ 1.13.6
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.1
1
+ 0.4.0
@@ -1,11 +1,21 @@
1
1
  module MageRecord
2
2
  # add custom FitLion-specific order methods
3
3
  class Order < ActiveRecord::Base
4
+ # mysql regex for postal codes that are in town
5
+ TOWN_REGEX = '^(0[1-9]|10|1[78]|2[2-4])'
6
+
4
7
  # ignore canceled orders
5
8
  default_scope { where state: [:processing, :complete] }
9
+
10
+ scope :prepaid, -> { joins(:payment).where("#{OrderPayment.table_name}.method NOT IN (?, ?)", 'cashondelivery', 'checkmo') }
11
+
6
12
  scope :delivery, -> { where shipping_method: [:flatrate_flatrate, :addon_addon] }
7
13
  scope :collection, -> { where "#{Order.table_name}.shipping_method LIKE 'selfcollect%'" }
8
14
 
15
+ scope :town, -> { joins(:shipping_address).where("sales_flat_order_address.postcode RLIKE ?", TOWN_REGEX) }
16
+ scope :residential, -> { joins(:shipping_address).where("sales_flat_order_address.postcode NOT RLIKE ?", TOWN_REGEX) }
17
+
18
+
9
19
  def for_delivery?
10
20
  %w{flatrate addon}.include? shipping_method.split('_').first
11
21
  end
@@ -0,0 +1,7 @@
1
+ module MageRecord
2
+ class OrderPayment < ActiveRecord::Base
3
+ def prepaid?
4
+ return method != 'cashondelivery'
5
+ end
6
+ end
7
+ end
@@ -2,12 +2,17 @@ module MageRecord
2
2
  class Order < ActiveRecord::Base
3
3
  self.table_name = :sales_flat_order
4
4
 
5
+ scope :cash, -> { joins(:payment).where("#{OrderPayment.table_name}.method = ?", 'cashondelivery') }
6
+ scope :cheque, -> { joins(:payment).where("#{OrderPayment.table_name}.method = ?", 'checkmo') }
7
+
5
8
  belongs_to :customer
6
9
 
7
10
  has_one :billing_address, -> { where address_type: 'billing' }, class_name: :OrderAddress, foreign_key: :parent_id
8
11
  has_one :shipping_address, -> { where address_type: 'shipping' }, class_name: :OrderAddress, foreign_key: :parent_id
12
+ has_one :payment, class_name: :OrderPayment, foreign_key: :parent_id
9
13
 
10
14
  has_many :items, class_name: :OrderItem
11
15
  has_many :products, through: :items
16
+ has_many :history, class_name: :OrderHistory, foreign_key: :parent_id
12
17
  end
13
18
  end
@@ -0,0 +1,7 @@
1
+ module MageRecord
2
+ class OrderHistory < ActiveRecord::Base
3
+ self.table_name = :sales_flat_order_status_history
4
+
5
+ belongs_to :order, foreign_key: :parent_id
6
+ end
7
+ end
@@ -0,0 +1,16 @@
1
+ module MageRecord
2
+ class OrderPayment < ActiveRecord::Base
3
+ self.table_name = :sales_flat_order_payment
4
+
5
+ belongs_to :order, foreign_key: :parent_id
6
+
7
+
8
+ def cash?
9
+ return method == 'cashondelivery'
10
+ end
11
+
12
+ def cheque?
13
+ return method == 'checkmo'
14
+ end
15
+ end
16
+ end
data/lib/magerecord.rb CHANGED
@@ -17,3 +17,5 @@ require 'magerecord/stock'
17
17
  require 'magerecord/order'
18
18
  require 'magerecord/order_item'
19
19
  require 'magerecord/order_address'
20
+ require 'magerecord/order_history'
21
+ require 'magerecord/order_payment'
data/magerecord.gemspec CHANGED
@@ -2,18 +2,18 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: magerecord 0.3.1 ruby lib
5
+ # stub: magerecord 0.4.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
- s.name = "magerecord"
9
- s.version = "0.3.1"
8
+ s.name = "magerecord".freeze
9
+ s.version = "0.4.0"
10
10
 
11
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
- s.require_paths = ["lib"]
13
- s.authors = ["Marc"]
14
- s.date = "2015-11-12"
15
- s.description = "A simple ActiveRecord wrapper for various Magento models"
16
- s.email = "xerokill@gmail.com"
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib".freeze]
13
+ s.authors = ["Marc".freeze]
14
+ s.date = "2016-12-07"
15
+ s.description = "A simple ActiveRecord wrapper for various Magento models".freeze
16
+ s.email = "xerokill@gmail.com".freeze
17
17
  s.extra_rdoc_files = [
18
18
  "LICENSE.txt",
19
19
  "README.md"
@@ -34,12 +34,15 @@ Gem::Specification.new do |s|
34
34
  "lib/magerecord/fitlion/club.rb",
35
35
  "lib/magerecord/fitlion/ff_order.rb",
36
36
  "lib/magerecord/fitlion/order.rb",
37
+ "lib/magerecord/fitlion/order_payment.rb",
37
38
  "lib/magerecord/fitlion/product.rb",
38
39
  "lib/magerecord/fitlion/trainer.rb",
39
40
  "lib/magerecord/invoice_item.rb",
40
41
  "lib/magerecord/order.rb",
41
42
  "lib/magerecord/order_address.rb",
43
+ "lib/magerecord/order_history.rb",
42
44
  "lib/magerecord/order_item.rb",
45
+ "lib/magerecord/order_payment.rb",
43
46
  "lib/magerecord/product.rb",
44
47
  "lib/magerecord/product_attribute_set.rb",
45
48
  "lib/magerecord/stock.rb",
@@ -49,39 +52,39 @@ Gem::Specification.new do |s|
49
52
  "test/helper.rb",
50
53
  "test/test_magerecord.rb"
51
54
  ]
52
- s.homepage = "http://github.com/mystix/magerecord"
53
- s.licenses = ["MIT"]
54
- s.rubygems_version = "2.4.5.1"
55
- s.summary = "Simple ActiveRecord wrapper for Magento"
55
+ s.homepage = "http://github.com/mystix/magerecord".freeze
56
+ s.licenses = ["MIT".freeze]
57
+ s.rubygems_version = "2.5.2".freeze
58
+ s.summary = "Simple ActiveRecord wrapper for Magento".freeze
56
59
 
57
60
  if s.respond_to? :specification_version then
58
61
  s.specification_version = 4
59
62
 
60
63
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
61
- s.add_runtime_dependency(%q<activerecord>, ["~> 4.0"])
62
- s.add_runtime_dependency(%q<mysql2>, ["~> 0.3.18"])
63
- s.add_development_dependency(%q<shoulda>, [">= 0"])
64
- s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
65
- s.add_development_dependency(%q<bundler>, ["~> 1.0"])
66
- s.add_development_dependency(%q<jeweler>, [">= 2.0.1", "~> 2.0"])
67
- s.add_development_dependency(%q<simplecov>, ["~> 0"])
64
+ s.add_runtime_dependency(%q<activerecord>.freeze, [">= 4.1"])
65
+ s.add_runtime_dependency(%q<mysql2>.freeze, [">= 0.4.0"])
66
+ s.add_development_dependency(%q<shoulda>.freeze, [">= 0"])
67
+ s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
68
+ s.add_development_dependency(%q<bundler>.freeze, ["~> 1.0"])
69
+ s.add_development_dependency(%q<jeweler>.freeze, [">= 2.0.1", "~> 2.0"])
70
+ s.add_development_dependency(%q<simplecov>.freeze, ["~> 0"])
68
71
  else
69
- s.add_dependency(%q<activerecord>, ["~> 4.0"])
70
- s.add_dependency(%q<mysql2>, ["~> 0.3.18"])
71
- s.add_dependency(%q<shoulda>, [">= 0"])
72
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
73
- s.add_dependency(%q<bundler>, ["~> 1.0"])
74
- s.add_dependency(%q<jeweler>, [">= 2.0.1", "~> 2.0"])
75
- s.add_dependency(%q<simplecov>, ["~> 0"])
72
+ s.add_dependency(%q<activerecord>.freeze, [">= 4.1"])
73
+ s.add_dependency(%q<mysql2>.freeze, [">= 0.4.0"])
74
+ s.add_dependency(%q<shoulda>.freeze, [">= 0"])
75
+ s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
76
+ s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
77
+ s.add_dependency(%q<jeweler>.freeze, [">= 2.0.1", "~> 2.0"])
78
+ s.add_dependency(%q<simplecov>.freeze, ["~> 0"])
76
79
  end
77
80
  else
78
- s.add_dependency(%q<activerecord>, ["~> 4.0"])
79
- s.add_dependency(%q<mysql2>, ["~> 0.3.18"])
80
- s.add_dependency(%q<shoulda>, [">= 0"])
81
- s.add_dependency(%q<rdoc>, ["~> 3.12"])
82
- s.add_dependency(%q<bundler>, ["~> 1.0"])
83
- s.add_dependency(%q<jeweler>, [">= 2.0.1", "~> 2.0"])
84
- s.add_dependency(%q<simplecov>, ["~> 0"])
81
+ s.add_dependency(%q<activerecord>.freeze, [">= 4.1"])
82
+ s.add_dependency(%q<mysql2>.freeze, [">= 0.4.0"])
83
+ s.add_dependency(%q<shoulda>.freeze, [">= 0"])
84
+ s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
85
+ s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
86
+ s.add_dependency(%q<jeweler>.freeze, [">= 2.0.1", "~> 2.0"])
87
+ s.add_dependency(%q<simplecov>.freeze, ["~> 0"])
85
88
  end
86
89
  end
87
90
 
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magerecord
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marc
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-12 00:00:00.000000000 Z
11
+ date: 2016-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '4.0'
19
+ version: '4.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '4.0'
26
+ version: '4.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mysql2
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.3.18
33
+ version: 0.4.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.3.18
40
+ version: 0.4.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: shoulda
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -137,12 +137,15 @@ files:
137
137
  - lib/magerecord/fitlion/club.rb
138
138
  - lib/magerecord/fitlion/ff_order.rb
139
139
  - lib/magerecord/fitlion/order.rb
140
+ - lib/magerecord/fitlion/order_payment.rb
140
141
  - lib/magerecord/fitlion/product.rb
141
142
  - lib/magerecord/fitlion/trainer.rb
142
143
  - lib/magerecord/invoice_item.rb
143
144
  - lib/magerecord/order.rb
144
145
  - lib/magerecord/order_address.rb
146
+ - lib/magerecord/order_history.rb
145
147
  - lib/magerecord/order_item.rb
148
+ - lib/magerecord/order_payment.rb
146
149
  - lib/magerecord/product.rb
147
150
  - lib/magerecord/product_attribute_set.rb
148
151
  - lib/magerecord/stock.rb
@@ -171,7 +174,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
171
174
  version: '0'
172
175
  requirements: []
173
176
  rubyforge_project:
174
- rubygems_version: 2.4.5.1
177
+ rubygems_version: 2.5.2
175
178
  signing_key:
176
179
  specification_version: 4
177
180
  summary: Simple ActiveRecord wrapper for Magento