conflux 1.0.1 → 1.0.2

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: 1f67875c84e257fe44a6ed4174eb7634184f3b4b
4
- data.tar.gz: b856d38da6d97155b9e86b8e31117240c1b1307f
3
+ metadata.gz: 4533ef01b7d5dc2cc743aaa716445df8de04c613
4
+ data.tar.gz: ce5771a9a3bf263fb77218b04f77d82331b63e5b
5
5
  SHA512:
6
- metadata.gz: 020df88471311d0569fa8b04532dc1bc1e313c9464f0f082172eca02bedfacd77f3cad015f43544a53a6776d17706cf790ec3c6980fb667a7bcdc3aa664ea206
7
- data.tar.gz: 77e632c1244039970938c13504316975c86f891c4b6cf86b6380338482821d2fb961aad4b07176765147b010ed8f7102770c1aa24a5d4bd8d178f924d2ac964d
6
+ metadata.gz: a60d89dcf5de27b4f7d806a5e72dd32e8e163b02ff7d29280305d27f5bb02b2e856710f049c0cc745b047a553e8d8312951a18c68c442b5b2edc653af96c1910
7
+ data.tar.gz: 8c97aa0bf79dbce7a395daf30a05400bb4659692d3b0f492dec62a8e24accf36cee6fa765a1b5a42c0114dbb8be9625c21d0c6e4dc196eb06a3693288b08b0a1
data/conflux.gemspec CHANGED
@@ -17,8 +17,6 @@ Gem::Specification.new do |spec|
17
17
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
18
  spec.require_paths = ["lib"]
19
19
 
20
- spec.add_dependency "rest-client", "1.6.8"
21
-
22
20
  spec.add_development_dependency "rails", "~> 4.0"
23
21
  spec.add_development_dependency "bundler", "~> 1.11"
24
22
  spec.add_development_dependency "rake", "~> 10.0"
@@ -1,3 +1,8 @@
1
+ require 'net/http'
2
+ require 'net/https'
3
+ require 'uri'
4
+ require 'json'
5
+
1
6
  module Conflux
2
7
  module Helpers
3
8
  extend self
@@ -80,14 +85,6 @@ module Conflux
80
85
  RUBY_PLATFORM =~ /mswin32|mingw32/
81
86
  end
82
87
 
83
- def url(route)
84
- "#{host_url}/api#{route}"
85
- end
86
-
87
- def host_url
88
- ENV['CONFLUX_HOST'] || 'http://api.goconflux.com'
89
- end
90
-
91
88
  def prompt_user_to_select_app(apps_map)
92
89
  answer = nil
93
90
  question = "\nWhich Conflux app does this project belong to?\n"
@@ -134,8 +131,43 @@ module Conflux
134
131
  exit(1)
135
132
  end
136
133
 
134
+ def host_url
135
+ ENV['CONFLUX_HOST'] || 'http://api.goconflux.com'
136
+ end
137
+
138
+ def http
139
+ uri = URI.parse(host_url)
140
+ Net::HTTP.new(uri.host, uri.port)
141
+ end
142
+
143
+ def form_request(net_obj, route, data, headers, error_message)
144
+ data ||= {}
145
+ headers ||= {}
146
+ route = data.empty? ? route : "#{route}?#{URI.encode_www_form(data)}"
147
+ request = net_obj.new("/api#{route}")
148
+ request.add_field('Content-Type', 'application/x-www-form-urlencoded')
149
+ add_headers(request, headers)
150
+ response = http.request(request)
151
+ handle_json_response(response, error_message)
152
+ end
153
+
154
+ def json_request(net_obj, route, data, headers, error_message)
155
+ data ||= {}
156
+ headers ||= {}
157
+ request = net_obj.new("/api#{route}")
158
+ request.add_field('Content-Type', 'application/json')
159
+ add_headers(request, headers)
160
+ request.body = data.to_json
161
+ response = http.request(request)
162
+ handle_json_response(response, error_message)
163
+ end
164
+
165
+ def add_headers(request, headers)
166
+ headers.each { |key, val| request.add_field(key, val) }
167
+ end
168
+
137
169
  def handle_json_response(response, error_message)
138
- if response.code == 200
170
+ if response.code.to_i == 200
139
171
  JSON.parse(response.body) rescue {}
140
172
  else
141
173
  error(error_message)
@@ -1,3 +1,3 @@
1
1
  module Conflux
2
- VERSION = '1.0.1'
2
+ VERSION = '1.0.2'
3
3
  end
data/lib/conflux.rb CHANGED
@@ -1,17 +1,15 @@
1
1
  require 'conflux/version'
2
- require 'rest-client'
2
+ require 'conflux/helpers'
3
3
  require 'json'
4
4
 
5
5
  module Conflux
6
6
  require 'conflux/railtie' if defined?(Rails)
7
7
  extend self
8
8
 
9
- config_vars_path = File.join(Dir.pwd, 'configs.yml')
10
-
11
- if File.exists?(config_vars_path)
9
+ if File.exists?('../configs.yml')
12
10
  require 'yaml'
13
- configs = YAML::load_file(config_vars_path) rescue {}
14
- configs.each { |key, val|
11
+ configs = YAML::load_file('../configs.yml') rescue {}
12
+ (configs || {}).each { |key, val|
15
13
  ENV[key] = val if !ENV.key?(key)
16
14
  }
17
15
  end
@@ -54,12 +52,8 @@ module Conflux
54
52
  end
55
53
 
56
54
  def fetch_configs
57
- RestClient.get("#{conflux_url}/api/keys", headers) do |response|
58
- if response.code == 200
59
- configs = JSON.parse(response.body) rescue []
60
- set_configs(configs, !@creds_preset)
61
- end
62
- end
55
+ configs = Conflux::Helpers.form_request(Net::HTTP::Get, '/keys', {}, headers, 'Error fetching Conflux configs')
56
+ set_configs(configs, !@creds_preset)
63
57
  end
64
58
 
65
59
  def set_configs(configs_map, add_to_yml)
@@ -10,31 +10,39 @@ namespace :conflux do
10
10
  helpers = Conflux::Helpers
11
11
  creds = helpers.ask_for_basic_creds
12
12
 
13
- RestClient.post(helpers.url('/users/apps_basic_auth'), creds) do |response|
14
- body = helpers.handle_json_response(response, 'Authentication failed.')
15
-
16
- # Ask which app user wants to use:
17
- app_slug = helpers.prompt_user_to_select_app(body['apps_map'])
18
-
19
- RestClient.get(helpers.url("/apps/manifest?app_slug=#{app_slug}"), { 'Conflux-User' => body['token'] }) do |response|
20
- resp = helpers.handle_json_response(response, 'Request failed.')
21
- manifest_json = resp['manifest']
22
-
23
- # Create .conflux/ folder if doesn't already exist
24
- FileUtils.mkdir_p(helpers.conflux_folder_path) if !File.exists?(helpers.conflux_folder_path)
25
-
26
- puts 'Configuring manifest.json...'
27
-
28
- # Write this app info to a new manifest.json file for the user
29
- File.open(helpers.conflux_manifest_path, 'w+') do |f|
30
- f.write(JSON.pretty_generate(manifest_json))
31
- end
32
-
33
- puts "Successfully connected project to conflux app: #{app_slug}"
34
- puts "The 'conflux' ruby gem wasn't automatically installed...Make sure it's installed if you haven't already done so."
35
- end
13
+ auth_response_body = helpers.json_request(
14
+ Net::HTTP::Post,
15
+ '/users/apps_basic_auth',
16
+ creds,
17
+ nil,
18
+ 'Authentication failed.'
19
+ )
20
+
21
+ # Ask which app the user wants to use:
22
+ app_slug = helpers.prompt_user_to_select_app(auth_response_body['apps_map'])
23
+
24
+ manifest_response_body = helpers.form_request(
25
+ Net::HTTP::Get,
26
+ '/apps/manifest',
27
+ { app_slug: app_slug },
28
+ { 'Conflux-User' => auth_response_body['token'] },
29
+ 'Connecting to Conflux app failed.'
30
+ )
31
+
32
+ manifest_json = manifest_response_body['manifest']
33
+
34
+ # Create .conflux/ folder if doesn't already exist
35
+ FileUtils.mkdir_p(helpers.conflux_folder_path) if !File.exists?(helpers.conflux_folder_path)
36
+
37
+ puts 'Configuring manifest.json...'
38
+
39
+ # Write this app info to a new manifest.json file for the user
40
+ File.open(helpers.conflux_manifest_path, 'w+') do |f|
41
+ f.write(JSON.pretty_generate(manifest_json))
36
42
  end
37
43
 
44
+ puts "Successfully connected project to conflux app: #{app_slug}"
45
+ puts "The 'conflux' ruby gem wasn't automatically installed...Make sure it's installed if it's not already."
38
46
  end
39
47
 
40
48
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: conflux
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Whittle
@@ -10,20 +10,6 @@ bindir: exe
10
10
  cert_chain: []
11
11
  date: 2016-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: rest-client
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - '='
18
- - !ruby/object:Gem::Version
19
- version: 1.6.8
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - '='
25
- - !ruby/object:Gem::Version
26
- version: 1.6.8
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: rails
29
15
  requirement: !ruby/object:Gem::Requirement