rents 1.0.0 → 1.0.1

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.
data/lib/rents.rb CHANGED
@@ -7,18 +7,33 @@ require 'bigdecimal/util'
7
7
 
8
8
  # Overrides
9
9
  require 'rents/hash'
10
+ require 'rents/array'
10
11
 
11
12
  # Gem files
12
13
  [:version, :connection, :status, :transaction, :currency, :string].each { |lib| require "rents/#{lib}" }
13
14
 
14
15
  module Rents
16
+ # Module attr
17
+ @@enum = nil
18
+
15
19
  # Production settings
16
20
  @@app_id = nil
17
21
  @@secret_key = nil
18
22
 
19
23
  # Tests settings
24
+ @@proxy_yml = nil
20
25
  @@test_env = nil
21
- @@debugger = nil
26
+ @@debug = nil
27
+
28
+ def self.proxy_yml
29
+ @@proxy_yml = Rents.get_proxy_from_yml if @@proxy_yml.nil?
30
+ @@proxy_yml
31
+ end
32
+
33
+ def self.proxy
34
+ return nil if Rents.proxy_yml.nil? || Rents.proxy_yml.empty?
35
+ "http://#{Rents.proxy_yml[:login]}:#{Rents.proxy_yml[:password]}@#{Rents.proxy_yml[:host]}:#{Rents.proxy_yml[:port]}/"
36
+ end
22
37
 
23
38
  def self.app_id=(app_id)
24
39
  @@app_id = app_id
@@ -44,11 +59,34 @@ module Rents
44
59
  @@test_env = test_env
45
60
  end
46
61
 
47
- def self.debugger
48
- @@test_env
62
+ def self.debug
63
+ @@debug
64
+ end
65
+
66
+ def self.debug=(debug)
67
+ @@debug = debug
68
+ end
69
+
70
+ def self.get_proxy_from_yml
71
+ yml = YAML::load_file(File.join(File.dirname(File.expand_path(__FILE__)), 'rents/config/proxy.yml'))
72
+ !yml.nil? || yml.is_a?(Hash) ? yml.it_keys_to_sym : {} if yml
73
+ end
74
+
75
+ def self.enum
76
+ return @@enum unless @@enum.nil?
77
+ enum = {}
78
+
79
+ enum = enum.merge load_yml('brands.yml')
80
+ enum = enum.merge load_yml('currencies.yml')
81
+ enum = enum.merge load_yml('payment_methods.yml')
82
+ enum = enum.merge load_yml('recurrence_periods.yml')
83
+ enum = enum.merge load_yml('transaction_codes.yml')
84
+
85
+ enum = enum.it_keys_to_sym
86
+ @@enum = enum
49
87
  end
50
88
 
51
- def self.debugger=(debugger)
52
- @@debugger = debugger
89
+ def self.load_yml file_name
90
+ YAML::load_file(File.join(File.dirname(File.expand_path(__FILE__)), 'rents/config/enums/' + file_name))
53
91
  end
54
92
  end
Binary file
data/rents.gemspec CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  #================== GEMs to build it GEM, so its improve the development ==============================
22
22
  # Base GEMs to build it gem
23
- spec.add_development_dependency "bundler", "~> 1.6"
23
+ spec.add_development_dependency "bundler", "~> 1.7"
24
24
  spec.add_development_dependency "rake", "~> 10.3", '>= 10.3.2'
25
25
 
26
26
  # RSpec for tests
@@ -0,0 +1,42 @@
1
+ module Helpers
2
+ def comment_proxy_yml
3
+ process_file :comment
4
+ end
5
+
6
+ def uncomment_proxy_yml
7
+ process_file :uncomment
8
+ end
9
+
10
+ def process_file action
11
+ file_path = './lib/rents/config/proxy.yml'
12
+ file = File.open(file_path, 'r+')
13
+ old_lines = file.readlines
14
+ new_lines = []
15
+
16
+ # Create the new lines
17
+ if action == :comment
18
+ old_lines.each do |old_line|
19
+ unless old_line[0] == '#'
20
+ old_line = '#' + old_line
21
+ end
22
+
23
+ new_lines << old_line
24
+ end
25
+ elsif action == :uncomment
26
+ old_lines.each do |old_line|
27
+ new_lines << old_line.remove('#')
28
+ end
29
+ end
30
+
31
+ write_lines file_path, new_lines
32
+ end
33
+
34
+ # Write the new lines
35
+ def write_lines file_path, new_lines
36
+ File.open(file_path, 'w') do |file|
37
+ new_lines.each do |new_line|
38
+ file.puts new_line
39
+ end
40
+ end
41
+ end
42
+ end
data/spec/helpers.rb CHANGED
@@ -1,6 +1,13 @@
1
+ require 'file_helper'
1
2
  module Helpers
3
+ def http_success
4
+ 200
5
+ end
6
+
2
7
  def accessible? url
8
+ RestClient.proxy = Rents.proxy
3
9
  resp = RestClient.get url
10
+ RestClient.proxy = nil
4
11
  resp.code == 200 ? true : false
5
12
  end
6
13
 
@@ -22,4 +29,9 @@ module Helpers
22
29
 
23
30
  return sold_items
24
31
  end
32
+
33
+ def get_json url
34
+ resp = RestClient.get url
35
+ JSON.parse(resp).it_keys_to_sym
36
+ end
25
37
  end
@@ -3,6 +3,9 @@ require 'spec_helper'
3
3
  describe Rents::Status do
4
4
  describe 'API' do
5
5
  it 'should be running correctly' do
6
+ Rents.debug=true
7
+ Rents.test_env=true
8
+
6
9
  status = Rents::Status.new
7
10
  expect(status.http_code).to equal(200)
8
11
  expect(status.api_code).to equal(200)