gun_accessory_supply 0.0.1 → 0.0.4

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
  SHA256:
3
- metadata.gz: 713a82aca54c3918e02de8c1653811b9ad48312bcc8b85ecf541df271e56d9e3
4
- data.tar.gz: 403f668797fb4bf16a6a96c11d6b64b102e55316ed03f47db0895882b5cc07e5
3
+ metadata.gz: 2cb360468009585d6c544174df5a98e085a8ff8504acd2af87d97d3f91d5e111
4
+ data.tar.gz: 8ffea43be565f45d76e1dd08b13ddc17fdf7555b01d84abc9bd4e32bd70ddb03
5
5
  SHA512:
6
- metadata.gz: 538ded1697f684265fe166db18599972a4ccc0c3d8b5fb09938e05e851bd2cfc7d53954e555763ba9c1543fd3bc1ff5d4a88e3f3339f12e71233e9f72e6fe233
7
- data.tar.gz: 06573264b87a5ab1cfa66acbed323b3d2e8a9028352c693e760a2e06e6f4dce2960aeacb9a34627098514fcb658cd52d22fea1934b4ef67eeda5e88b10683a57
6
+ metadata.gz: 714b1a759af4f27ed31aeb28caaee92abbac0e7f75cfe11b1563fe3df7ff9f68878516e8bec584940d8661e9abbec0869891ff7ec474bd9e320b7e97efeb6385
7
+ data.tar.gz: de7c514d94c2f18b1611db4a45af9da44b6169bdd662aeebedd42ab21783f6a084366333c4afbbf937f4a019accde79efb9a3e6135e269365fb9b0042bcad114
@@ -3,8 +3,13 @@ module GunAccessorySupply
3
3
 
4
4
  def self.connect(options = {})
5
5
  requires!(options, :username, :password)
6
-
7
- Net::SFTP.start(GunAccessorySupply.config.ftp_host, options[:username], password: options[:password], port: GunAccessorySupply.config.ftp_port) do |sftp|
6
+
7
+ Net::SFTP.start(
8
+ GunAccessorySupply.config.proxy_host || GunAccessorySupply.config.sftp_host,
9
+ options[:username],
10
+ password: options[:password],
11
+ port: GunAccessorySupply.config.proxy_port || GunAccessorySupply.config.sftp_port
12
+ ) do |sftp|
8
13
  yield(sftp)
9
14
  end
10
15
  end
@@ -47,12 +52,12 @@ module GunAccessorySupply
47
52
  node.content.try(:strip)
48
53
  end
49
54
  end
50
-
55
+
51
56
  def get_file(filename, file_directory=nil)
52
57
  connect(@options) do |sftp|
53
58
  begin
54
59
  tempfile = Tempfile.new
55
-
60
+
56
61
  sftp.download!(File.join(file_directory, filename), tempfile.path)
57
62
 
58
63
  return tempfile
@@ -67,7 +72,7 @@ module GunAccessorySupply
67
72
  sftp.dir.foreach(file_directory) { |entry| filenames << entry.name }
68
73
  filename = filenames.select{ |n| n.include?(file_prefix) }.sort.last
69
74
 
70
- tempfile = self.get_file(filename, file_directory)
75
+ tempfile = self.get_file(filename, file_directory)
71
76
  return tempfile
72
77
  end
73
78
  end
@@ -1,6 +1,6 @@
1
1
  module GunAccessorySupply
2
2
  class Catalog < Base
3
-
3
+
4
4
  def initialize(options = {})
5
5
  requires!(options, :username, :password)
6
6
  @options = options
@@ -12,12 +12,12 @@ module GunAccessorySupply
12
12
  end
13
13
 
14
14
  def all
15
- tempfile = get_most_recent_file(GunAccessorySupply.config.catalog_filename_prefix, GunAccessorySupply.config.top_level_dir)
15
+ tempfile = get_most_recent_file(GunAccessorySupply.config.inventory_filename_prefix, 'out')
16
16
  items = []
17
17
 
18
18
  File.open(tempfile).each_with_index do |row, i|
19
19
  row = parse_row(row)
20
-
20
+
21
21
  if i==0
22
22
  @headers = row
23
23
  next
@@ -30,7 +30,7 @@ module GunAccessorySupply
30
30
  upc: row[@headers.index('UPC')].try(:strip),
31
31
  name: row[@headers.index('Item Description')].try(:strip),
32
32
  quantity: row[@headers.index("Available Qty")].to_i,
33
- price: row[@headers.index('MSRP')].try(:strip),
33
+ price: row[@headers.index('Dealer Cost')].try(:strip),
34
34
  msrp: row[@headers.index('MSRP')].try(:strip),
35
35
  map_price: row[@headers.index('MAP Price')].try(:strip),
36
36
  brand: row[@headers.index('Manufacturer')].try(:strip),
@@ -1,6 +1,6 @@
1
1
  module GunAccessorySupply
2
2
  class Inventory < Base
3
-
3
+
4
4
  def initialize(options = {})
5
5
  requires!(options, :username, :password)
6
6
  @options = options
@@ -17,12 +17,12 @@ module GunAccessorySupply
17
17
  end
18
18
 
19
19
  def all
20
- tempfile = get_most_recent_file(GunAccessorySupply.config.catalog_filename_prefix, GunAccessorySupply.config.top_level_dir)
20
+ tempfile = get_most_recent_file(GunAccessorySupply.config.inventory_filename_prefix, 'out')
21
21
  items = []
22
22
 
23
23
  File.open(tempfile).each_with_index do |row, i|
24
24
  row = parse_row(row)
25
-
25
+
26
26
  if i==0
27
27
  @headers = row
28
28
  next
@@ -31,7 +31,7 @@ module GunAccessorySupply
31
31
  item = {
32
32
  item_identifier: row[@headers.index('Item ID')].try(:strip),
33
33
  quantity: row[@headers.index('Available Qty')].to_i,
34
- price: row[@headers.index('MSRP')].try(:strip),
34
+ price: row[@headers.index('Dealer Cost')].try(:strip),
35
35
  }
36
36
 
37
37
  items << item
@@ -44,12 +44,12 @@ module GunAccessorySupply
44
44
  end
45
45
 
46
46
  def quantity
47
- tempfile = get_most_recent_file(GunAccessorySupply.config.catalog_filename_prefix, GunAccessorySupply.config.top_level_dir)
47
+ tempfile = get_most_recent_file(GunAccessorySupply.config.inventory_filename_prefix, 'out')
48
48
  items = []
49
49
 
50
50
  File.open(tempfile).each_with_index do |row, i|
51
51
  row = parse_row(row)
52
-
52
+
53
53
  if i==0
54
54
  @headers = row
55
55
  next
@@ -32,7 +32,7 @@ module GunAccessorySupply
32
32
  # * :special_instructions [String] optional
33
33
  def add_recipient(hash = {})
34
34
  requires!(hash, :dealer_name, :shipping)
35
- requires!(hash[:shipping], :name, :address, :city, :state, :zip, :email, :phone)
35
+ requires!(hash[:shipping], :name, :address, :city, :state, :zip, :email)
36
36
 
37
37
  @recipient = hash
38
38
  end
@@ -45,13 +45,16 @@ module GunAccessorySupply
45
45
  # * :price [String]
46
46
  def add_item(item = {})
47
47
  requires!(item, :identifier, :upc, :qty)
48
+
48
49
  @items << item
49
50
  end
50
51
 
51
52
  def filename
52
- return @filename if defined?(@filename)
53
- timestamp = Time.now.strftime('%Y%m%d%T').gsub(':', '')
54
- @filename = "GUN-ACCESSORY-SUPPLY-#{@po_number}-#{timestamp}.xml"
53
+ @filename ||= begin
54
+ timestamp = Time.now.strftime('%Y%m%d%T').gsub(':', '')
55
+
56
+ "GUN-ACCESSORY-SUPPLY-#{@po_number}-#{timestamp}.xml"
57
+ end
55
58
  end
56
59
 
57
60
  def submit!
@@ -60,7 +63,6 @@ module GunAccessorySupply
60
63
 
61
64
  def to_xml
62
65
  output = ""
63
-
64
66
  xml = Builder::XmlMarkup.new(target: output, indent: 2)
65
67
 
66
68
  xml.instruct!(:xml)
@@ -68,23 +70,23 @@ module GunAccessorySupply
68
70
  xml.cXML(timestamp: Time.now) do
69
71
  xml.Header do
70
72
  xml.From do
71
- xml.Credential(domain: @xml_domain) do
72
- xml.Identity @xml_domain
73
- xml.SharedSecret @xml_secret
73
+ xml.Credential(domain: GunAccessorySupply.config.xml_domain) do
74
+ xml.Identity GunAccessorySupply.config.xml_domain
75
+ xml.SharedSecret GunAccessorySupply.config.xml_secret
74
76
  xml.OrderID @po_number
75
77
  end
76
78
  end
77
79
  xml.To do
78
- xml.Credential(domain: @xml_domain) do
79
- xml.Identity @xml_domain
80
- xml.SharedSecret @xml_secret
80
+ xml.Credential(domain: GunAccessorySupply.config.xml_domain) do
81
+ xml.Identity GunAccessorySupply.config.xml_domain
82
+ xml.SharedSecret GunAccessorySupply.config.xml_secret
81
83
  xml.OrderID @po_number
82
84
  end
83
85
  end
84
86
  xml.Sender do
85
- xml.Credential(domain: @xml_domain) do
86
- xml.Identity @xml_domain
87
- xml.SharedSecret @xml_secret
87
+ xml.Credential(domain: GunAccessorySupply.config.xml_domain) do
88
+ xml.Identity GunAccessorySupply.config.xml_domain
89
+ xml.SharedSecret GunAccessorySupply.config.xml_secret
88
90
  xml.OrderID @po_number
89
91
  end
90
92
  end
@@ -1,3 +1,3 @@
1
1
  module GunAccessorySupply
2
- VERSION = '0.0.1'.freeze
2
+ VERSION = '0.0.4'.freeze
3
3
  end
@@ -1,11 +1,8 @@
1
1
  require 'gun_accessory_supply/version'
2
-
3
2
  require 'csv'
4
3
  require 'net/sftp'
5
4
  require 'tempfile'
6
-
7
5
  require 'active_support/all'
8
-
9
6
  require 'gun_accessory_supply/base'
10
7
  require 'gun_accessory_supply/catalog'
11
8
  require 'gun_accessory_supply/category'
@@ -32,19 +29,19 @@ module GunAccessorySupply
32
29
  end
33
30
 
34
31
  class Configuration
35
- attr_accessor :debug_mode
36
- attr_accessor :ftp_host
37
- attr_accessor :ftp_port
38
- attr_accessor :top_level_dir
39
- attr_accessor :catalog_filename_prefix
40
- attr_accessor :xml_domain
41
- attr_accessor :xml_secret
32
+ attr_accessor *%i(
33
+ sftp_host
34
+ sftp_port
35
+ inventory_filename_prefix
36
+ xml_domain
37
+ xml_secret
38
+ proxy_host
39
+ proxy_port
40
+ )
42
41
 
43
42
  def initialize
44
- @debug_mode ||= false
45
- @ftp_host ||= "50.233.131.250"
46
- @ftp_port ||= "2222"
47
- @top_level_dir ||= "/out"
43
+ @sftp_host ||= "50.233.131.250"
44
+ @sftp_port ||= "2222"
48
45
  end
49
46
  end
50
47
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gun_accessory_supply
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tony Beninate
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-06-14 00:00:00.000000000 Z
11
+ date: 2022-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport