dm_live_resources 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5459e3cea0ed30d8ec2ce0cee7bcd909fcc4039d
4
- data.tar.gz: 6856b05649f6a57500675a8e0636a7336e0168dc
3
+ metadata.gz: 53de0c8c7ac6abd93212dd45c314923b44e06a83
4
+ data.tar.gz: ebd24935a5b1d7cd113dc092f08637914eb89104
5
5
  SHA512:
6
- metadata.gz: e82ad5138e5e410f08f0b3b64ef0a63d66fb4ab2d370b685546d6eaa6e7a534bf59c6626e36102b6bc83dd92d48c9fbd774db3bcfbb80517ef0a07805ae18b33
7
- data.tar.gz: 49f89424749fb1455ffa3cef98835a26cb0a0eb23dc711301ff1a8766dee9101e92412d1ac0841c2bbee76f00c7f57fb3be06e14965afda2d6ce92d075ea6af7
6
+ metadata.gz: 46e37471783c233e7bdfaf5da6903ae33926751e66454ad1a9a171f577163289809b056433321a5490f7afc8ce55d860f9b75aa9a767f696f9ad266d6c7eab75
7
+ data.tar.gz: 441fd6ca459b6ff7dc306126fbc44bdd66f7487599cf8715b5a0d97e4baee586880099729ffe1f37283f27194a219e6eb9bad094b09031c6a9fb9caa6c3acb60
data/README.md CHANGED
@@ -1,28 +1,16 @@
1
1
  # DmLiveResources
2
2
 
3
- Convert Google Sheets to be used as Resources in Device Magic.
3
+ Add Google Sheets as live resources in Device Magic.
4
4
 
5
- ## Installation
6
-
7
- Add this line to your application's Gemfile:
8
-
9
- ```ruby
10
- gem 'dm_live_resources'
11
- ```
12
-
13
- And then execute:
5
+ Device Magic users can upload .xlsx files to be referenced within their mobile forms. This project is aimed at automating the same process for Google Sheets to increase the flexibility of resources.
14
6
 
15
- $ bundle
16
-
17
- Or install it yourself as:
7
+ ## Installation
18
8
 
19
9
  $ gem install dm_live_resources
20
10
 
21
11
  ## Adding a Resource
22
12
 
23
- Trollop is used to pass arguments pertaining to the Google Sheet. For more information on Trollop, see https://github.com/ManageIQ/trollop.
24
-
25
- To add a Google Sheet as a Resource, within your terminal execute:
13
+ To add a Google Sheet as a Resource, in terminal execute:
26
14
 
27
15
  $ ruby add_resource --gs-api-key="Google Drive API Key" --gs-identifier="Google Sheet Identifier" --gs-sheets="Sheets in workbook to be tracked for changes" --dm-api-key="Device Magic API Key"
28
16
 
@@ -30,8 +18,6 @@ The first time this script is ran, a 'Resources.db' file will be created in the
30
18
 
31
19
  ## Updating a Resource
32
20
 
33
- In your terminal, execute:
34
-
35
21
  $ ruby update_db
36
22
 
37
23
  This will check to see if any changes have been made within the sheets you specified previously for your resources. If there are changes, Device Magic will be updated with a new copy of the resource.
data/bin/add_resource CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'trollop'
3
- require 'dm_live_resources/resource_manager'
3
+ require 'dm_live_resources'
4
4
 
5
5
  resource_data = Trollop::options do
6
6
  opt :gs_api_key, "Google Drive API Key", type: :string
@@ -9,17 +9,16 @@ resource_data = Trollop::options do
9
9
  opt :dm_api_key, "Device Magic API Key", type: :string
10
10
  end
11
11
 
12
- g_sheet = GSheet.new(resource_data)
13
-
12
+ g_sheet = DmLiveResources::GSheet.new(resource_data)
14
13
 
15
14
  resource_data[:file] = g_sheet.exported_file
16
15
  resource_data[:description] = g_sheet.title
17
16
 
18
- dm_sheet = DMSheet.new(resource_data)
17
+ dm_sheet = DmLiveResources::DMSheet.new(resource_data)
19
18
  dm_sheet.add_resource
20
19
 
21
20
  resource_data[:dm_id] = dm_sheet.id
22
21
  resource_data[:gs_content] = g_sheet.content
23
22
  resource_data[:gs_title] = g_sheet.title
24
23
 
25
- ResourceManager.new(resource_data).create_new_table
24
+ DmLiveResources::ResourceManager.new(resource_data).create_new_table
data/bin/update_db CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- require 'dm_live_resources/resource_manager'
2
+ require 'dm_live_resources'
3
3
 
4
- ResourceManager.update_db_tables
4
+ DmLiveResources::ResourceManager.update_db_tables
@@ -9,8 +9,10 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Anthony Seliga"]
10
10
  spec.email = ["anthony.seliga@gmail.com"]
11
11
 
12
- spec.summary = %q{Convert Google Sheets to be used as Resources in Device Magic.}
13
- spec.description = %q{Convert Google Sheets to be used as Resources in Device Magic.}
12
+ spec.summary = %q{Add Google Sheets as live resources in Device Magic.}
13
+ spec.description = %q{Device Magic users can upload .xlsx files to be referenced within
14
+ their mobile forms. This project is aimed at automating the same process
15
+ for Google Sheets to increase the flexibility of resources. }
14
16
  spec.homepage = "https://github.com/aseli1/dm_live_resources"
15
17
  spec.license = "MIT"
16
18
 
@@ -30,10 +32,10 @@ Gem::Specification.new do |spec|
30
32
  spec.executables = ['add_resource', 'update_db']
31
33
  spec.require_paths = ['lib', 'lib/dm_live_resources']
32
34
 
33
- spec.add_runtime_dependency "httparty", "~> 0.15.5"
34
- spec.add_runtime_dependency "trollop", "~> 2.1.2"
35
- spec.add_runtime_dependency "sqlite3", "~> 1.3.13"
36
-
35
+ spec.add_runtime_dependency "httparty", "~> 0.15"
36
+ spec.add_runtime_dependency "trollop", "~> 2.1"
37
+ spec.add_runtime_dependency "sqlite3", "~> 1.3"
38
+
37
39
  spec.add_development_dependency "bundler", "~> 1.15"
38
40
  spec.add_development_dependency "rake", "~> 10.0"
39
41
  spec.add_development_dependency "minitest", "~> 5.0"
@@ -1,67 +1,65 @@
1
- require 'base64'
2
1
  require 'httparty'
3
- require 'sqlite3'
4
2
 
5
- class DMSheet
6
- attr_reader :api_key, :name, :file, :description, :id, :content_type, :auth,
7
- :resource_hash
8
- include HTTParty
3
+ module DmLiveResources
4
+ class DMSheet
5
+ attr_reader :api_key, :name, :file, :description, :id, :content_type, :auth, :resource_hash
6
+ include HTTParty
9
7
 
10
- def initialize(args = {})
11
- @api_key = args[:dm_api_key]
12
- @file = args[:file]
13
- @description = args[:description]
14
- @name = args[:name] ||= "#{description}.xlsx"
15
- @id = args[:dm_id] ||= find_resource_id
16
- end
8
+ def initialize(args = {})
9
+ @api_key = args[:dm_api_key]
10
+ @file = args[:file]
11
+ @description = args[:description]
12
+ @name = args[:name] ||= "#{description}.xlsx"
13
+ @id = args[:dm_id] ||= find_resource_id
14
+ end
17
15
 
18
- def auth
19
- @auth = { username: api_key, password: "p" }
20
- end
16
+ def auth
17
+ @auth = { username: api_key, password: "p" }
18
+ end
21
19
 
22
- def content_type
23
- @content_type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
24
- end
20
+ def content_type
21
+ @content_type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
22
+ end
25
23
 
26
- def resource_hash
27
- @resource_hash = { "description" => description,"file" => { "file_name" => name,
28
- "file_data" => file, "content_type" => content_type }}
29
- @resource_hash
30
- end
24
+ def resource_hash
25
+ @resource_hash = { "description" => description,"file" => { "file_name" => name,
26
+ "file_data" => file, "content_type" => content_type }}
27
+ @resource_hash
28
+ end
31
29
 
32
- def request_options
33
- @request_options = { basic_auth: auth, body: {"resource" => resource_hash }}
34
- @request_options
35
- end
30
+ def request_options
31
+ @request_options = { basic_auth: auth, body: {"resource" => resource_hash }}
32
+ @request_options
33
+ end
36
34
 
37
- def id
38
- @id = find_resource_id
39
- @id
40
- end
35
+ def id
36
+ @id = find_resource_id
37
+ @id
38
+ end
41
39
 
42
- def list_resources
43
- options = { basic_auth: auth }
44
- response = self.class.get('https://www.devicemagic.com/api/resources.json', options)
45
- resources = response['resources']
46
- return resources
47
- end
40
+ def list_resources
41
+ options = { basic_auth: auth }
42
+ response = self.class.get('https://www.devicemagic.com/api/resources.json', options)
43
+ resources = response['resources']
44
+ return resources
45
+ end
48
46
 
49
- def find_resource_id
50
- resources = list_resources
51
- resources.each do |resource|
52
- if resource['original_filename'] == name && resource['description'] == description
53
- id = resource['id']
54
- return id
55
- end
56
- end
57
- end
47
+ def find_resource_id
48
+ resources = list_resources
49
+ resources.each do |resource|
50
+ if resource['original_filename'] == name && resource['description'] == description
51
+ id = resource['id']
52
+ return id
53
+ end
54
+ end
55
+ end
58
56
 
59
- def add_resource
60
- self.class.post('https://www.devicemagic.com/api/resources.json', request_options)
61
- end
62
-
63
- def update_resource
64
- self.class.put("https://www.devicemagic.com/api/resources/#{id}.json", request_options)
65
- end
57
+ def add_resource
58
+ self.class.post('https://www.devicemagic.com/api/resources.json', request_options)
59
+ end
66
60
 
61
+ def update_resource
62
+ self.class.put("https://www.devicemagic.com/api/resources/#{id}.json", request_options)
63
+ end
64
+ end
67
65
  end
@@ -1,45 +1,46 @@
1
1
  require 'base64'
2
2
  require 'httparty'
3
- require 'sqlite3'
4
3
 
5
- class GSheet
6
- attr_reader :api_key, :identifier, :title, :sheets, :content_type, :exported_file, :content
7
- include HTTParty
4
+ module DmLiveResources
5
+ class GSheet
6
+ attr_reader :api_key, :identifier, :title, :sheets, :content_type, :exported_file, :content
7
+ include HTTParty
8
8
 
9
- def initialize(args = {})
10
- @api_key = args[:gs_api_key]
11
- @identifier = args[:gs_identifier]
12
- @title = args[:gs_title] ||= get_title
13
- @sheets = args[:gs_sheets] ||= "Sheet1"
14
- end
9
+ def initialize(args = {})
10
+ @api_key = args[:gs_api_key]
11
+ @identifier = args[:gs_identifier]
12
+ @title = args[:gs_title] ||= get_title
13
+ @sheets = args[:gs_sheets] ||= "Sheet1"
14
+ end
15
15
 
16
- def content_type
17
- @content_type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
18
- end
16
+ def content_type
17
+ @content_type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
18
+ end
19
19
 
20
- def content
21
- options = { :query => {:key => api_key} }
22
- request = self.class.get("https://sheets.googleapis.com/v4/spreadsheets/#{identifier}/values:batchGet?#{ranges}", options)
23
- @content = request.to_s
24
- end
20
+ def content
21
+ options = { :query => {:key => api_key} }
22
+ request = self.class.get("https://sheets.googleapis.com/v4/spreadsheets/#{identifier}/values:batchGet?#{ranges}", options)
23
+ @content = request.to_s
24
+ end
25
25
 
26
- def get_title
27
- params = { mimeType: content_type, key: api_key }
28
- request = self.class.get("https://www.googleapis.com/drive/v3/files/#{identifier}", query: params)
29
- @title = request["name"]
30
- end
26
+ def get_title
27
+ params = { mimeType: content_type, key: api_key }
28
+ request = self.class.get("https://www.googleapis.com/drive/v3/files/#{identifier}", query: params)
29
+ @title = request["name"]
30
+ end
31
31
 
32
- def ranges
33
- split_sheets = sheets.split(", ")
34
- range = split_sheets.map {|sheet| "ranges=#{sheet}"}
35
- range = range.join("&")
36
- return range
37
- end
32
+ def ranges
33
+ split_sheets = sheets.split(", ")
34
+ range = split_sheets.map {|sheet| "ranges=#{sheet}"}
35
+ range = range.join("&")
36
+ return range
37
+ end
38
38
 
39
- def exported_file
40
- params = { mimeType: content_type, key: api_key }
41
- request = self.class.get("https://www.googleapis.com/drive/v3/files/#{identifier}/export", query: params)
42
- contents = request.body
43
- @exported_file = Base64.encode64(contents)
39
+ def exported_file
40
+ params = { mimeType: content_type, key: api_key }
41
+ request = self.class.get("https://www.googleapis.com/drive/v3/files/#{identifier}/export", query: params)
42
+ contents = request.body
43
+ @exported_file = Base64.encode64(contents)
44
+ end
44
45
  end
45
46
  end
@@ -1,50 +1,52 @@
1
- require 'base64'
2
- require 'httparty'
3
1
  require 'sqlite3'
4
2
 
5
- class Resource
6
- class << self
7
-
8
- def db
9
- if File.exists? "Resources.db"
10
- @db = SQLite3::Database.open "Resources.db"
11
- else
12
- @db = SQLite3::Database.new "Resources.db"
13
- end
14
- end
3
+ module DmLiveResources
4
+ class Resource
5
+ class << self
6
+ def db
7
+ if File.exists? "Resources.db"
8
+ @db = SQLite3::Database.open "Resources.db"
9
+ else
10
+ @db = SQLite3::Database.new "Resources.db"
11
+ end
12
+ end
15
13
 
16
- def remove_db
17
- File.delete("Resources.db") if File.exists? "Resources.db"
18
- end
14
+ def remove_db
15
+ File.delete("Resources.db") if File.exists? "Resources.db"
16
+ end
19
17
 
20
- def update_required?(row, sheet)
21
- return row['GSheetContent'] != sheet.content
22
- end
18
+ def update_required?(row,
19
+ sheet)
20
+ return row['GSheetContent'] != sheet.content
21
+ end
23
22
 
24
- def return_tables
25
- # List of all tables in db
26
- tables = db.execute("SELECT name FROM sqlite_master WHERE type='table'").flatten
27
- return tables
28
- end
23
+ def return_tables
24
+ # List of all tables in db
25
+ tables = db.execute("SELECT name FROM sqlite_master WHERE type='table'").flatten
26
+ return tables
27
+ end
29
28
 
30
- def data_as_hash(gs_api_key, gs_identifier, gs_sheets, gs_title, dm_api_key, dm_id)
31
- data = {gs_api_key: gs_api_key,
32
- gs_identifier: gs_identifier,
33
- gs_sheets: gs_sheets,
34
- gs_title: gs_title,
35
- dm_api_key: dm_api_key,
36
- dm_id: dm_id}
37
- return data
38
- end
29
+ def data_as_hash(gs_api_key, gs_identifier, gs_sheets, gs_title, dm_api_key, dm_id)
30
+ data = { gs_api_key: gs_api_key,
31
+ gs_identifier: gs_identifier,
32
+ gs_sheets: gs_sheets,
33
+ gs_title: gs_title,
34
+ dm_api_key: dm_api_key,
35
+ dm_id: dm_id}
36
+ return data
37
+ end
39
38
 
40
- def add_gsheet_data(data_hash, file, title)
41
- data_hash[:file] = file
42
- data_hash[:description] = title
43
- return data_hash
44
- end
39
+ def add_gsheet_data(data_hash,
40
+ file,
41
+ title)
42
+ data_hash[:file] = file
43
+ data_hash[:description] = title
44
+ return data_hash
45
+ end
45
46
 
46
- def insert_query(table)
47
- return %Q{INSERT INTO '#{table}' ( GSheetApiKey, GSheetIdentifier, GSheetTitle, GSheetContent, GSheetSheets, DMagicApiKey, DMagicId ) VALUES ( ?,?,?,?,?,?,? )}
48
- end
49
- end
47
+ def insert_query(table)
48
+ return %Q{INSERT INTO '#{table}' ( GSheetApiKey, GSheetIdentifier, GSheetTitle, GSheetContent, GSheetSheets, DMagicApiKey, DMagicId ) VALUES ( ?,?,?,?,?,?,? )}
49
+ end
50
+ end
51
+ end
50
52
  end
@@ -1,64 +1,62 @@
1
- require 'base64'
2
- require 'httparty'
3
- require 'sqlite3'
4
-
5
1
  require_relative 'g_sheet.rb'
6
2
  require_relative 'dm_sheet.rb'
7
3
  require_relative 'resource.rb'
8
4
 
9
- class ResourceManager
10
- attr_reader :gsheet_api_key, :gsheet_identifier, :gsheet_title, :gsheet_content,
11
- :gsheet_sheets, :dmagic_api_key, :dmagic_id, :table_name
12
- @@db = Resource.db
5
+ module DmLiveResources
6
+ class ResourceManager
7
+ attr_reader :gsheet_api_key, :gsheet_identifier, :gsheet_title, :gsheet_content,
8
+ :gsheet_sheets, :dmagic_api_key, :dmagic_id, :table_name
9
+ @@db = Resource.db
13
10
 
14
- def initialize(args = {})
15
- @gsheet_identifier = args[:gs_identifier]
16
- @gsheet_title = args[:gs_title]
17
- @gsheet_content = args[:gs_content]
18
- @gsheet_sheets = args[:gs_sheets]
19
- @gsheet_api_key = args[:gs_api_key]
20
- @dmagic_api_key = args[:dm_api_key]
21
- @dmagic_id = args[:dm_id]
22
- end
11
+ def initialize(args = {})
12
+ @gsheet_identifier = args[:gs_identifier]
13
+ @gsheet_title = args[:gs_title]
14
+ @gsheet_content = args[:gs_content]
15
+ @gsheet_sheets = args[:gs_sheets]
16
+ @gsheet_api_key = args[:gs_api_key]
17
+ @dmagic_api_key = args[:dm_api_key]
18
+ @dmagic_id = args[:dm_id]
19
+ end
23
20
 
24
- def table_name
25
- gsheet_title
26
- end
21
+ def table_name
22
+ gsheet_title
23
+ end
27
24
 
28
- def create_new_table
29
- @@db.execute %Q{
30
- CREATE TABLE IF NOT EXISTS #{table_name} (
31
- Id INTEGER PRIMARY KEY,
32
- GSheetApiKey,
33
- GSheetIdentifier,
34
- GSheetTitle,
35
- GSheetContent,
36
- GSheetSheets,
37
- DMagicApiKey,
38
- DMagicId,
39
- DateAdded datetime default current_timestamp)
40
- }
41
- @@db.execute(Resource.insert_query(table_name), gsheet_api_key, gsheet_identifier, gsheet_title, gsheet_content, gsheet_sheets, dmagic_api_key, dmagic_id)
42
- end
25
+ def create_new_table
26
+ @@db.execute %Q{
27
+ CREATE TABLE IF NOT EXISTS #{table_name} (
28
+ Id INTEGER PRIMARY KEY,
29
+ GSheetApiKey,
30
+ GSheetIdentifier,
31
+ GSheetTitle,
32
+ GSheetContent,
33
+ GSheetSheets,
34
+ DMagicApiKey,
35
+ DMagicId,
36
+ DateAdded datetime default current_timestamp)
37
+ }
38
+ @@db.execute(Resource.insert_query(table_name), gsheet_api_key, gsheet_identifier, gsheet_title, gsheet_content, gsheet_sheets, dmagic_api_key, dmagic_id)
39
+ end
43
40
 
44
- def self.check_tables(tables)
45
- @@db.results_as_hash = true
46
- tables.each do |table|
47
- # Retrieve the last row added to the table
48
- row = @@db.get_first_row("SELECT * FROM '#{table}' ORDER BY DateAdded DESC LIMIT 1")
49
- resource_data = Resource.data_as_hash(row['GSheetApiKey'], row['GSheetIdentifier'], row['GSheetSheets'], row['GSheetTitle'], row['DMagicApiKey'], row['DMagicId'])
50
- sheet = GSheet.new(resource_data)
51
- if Resource.update_required?(row, sheet)
52
- resource_data = Resource.add_gsheet_data(resource_data, sheet.exported_file, sheet.title)
53
- dm = DMSheet.new(resource_data)
54
- dm.update_resource
55
- @@db.execute(Resource.insert_query(table), sheet.api_key, sheet.identifier, sheet.title, sheet.content, sheet.sheets, dm.api_key, dm.id)
41
+ def self.check_tables(tables)
42
+ @@db.results_as_hash = true
43
+ tables.each do |table|
44
+ # Retrieve the last row added to the table
45
+ row = @@db.get_first_row("SELECT * FROM '#{table}' ORDER BY DateAdded DESC LIMIT 1")
46
+ resource_data = Resource.data_as_hash(row['GSheetApiKey'], row['GSheetIdentifier'], row['GSheetSheets'], row['GSheetTitle'], row['DMagicApiKey'], row['DMagicId'])
47
+ sheet = GSheet.new(resource_data)
48
+ if Resource.update_required?(row, sheet)
49
+ resource_data = Resource.add_gsheet_data(resource_data, sheet.exported_file, sheet.title)
50
+ dm = DMSheet.new(resource_data)
51
+ dm.update_resource
52
+ @@db.execute(Resource.insert_query(table), sheet.api_key, sheet.identifier, sheet.title, sheet.content, sheet.sheets, dm.api_key, dm.id)
53
+ end
56
54
  end
57
55
  end
58
- end
59
56
 
60
- def self.update_db_tables
61
- tables = Resource.return_tables
62
- self.check_tables(tables)
57
+ def self.update_db_tables
58
+ tables = Resource.return_tables
59
+ self.check_tables(tables)
60
+ end
63
61
  end
64
62
  end
@@ -1,3 +1,3 @@
1
1
  module DmLiveResources
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -1,4 +1,8 @@
1
1
  require "dm_live_resources/version"
2
+ require "dm_live_resources/dm_sheet"
3
+ require "dm_live_resources/g_sheet"
4
+ require "dm_live_resources/resource_manager"
5
+
2
6
 
3
7
  module DmLiveResources
4
8
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dm_live_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Seliga
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-16 00:00:00.000000000 Z
11
+ date: 2017-11-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.15.5
19
+ version: '0.15'
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: 0.15.5
26
+ version: '0.15'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: trollop
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 2.1.2
33
+ version: '2.1'
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: 2.1.2
40
+ version: '2.1'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: sqlite3
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.3.13
47
+ version: '1.3'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.3.13
54
+ version: '1.3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -94,7 +94,10 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '5.0'
97
- description: Convert Google Sheets to be used as Resources in Device Magic.
97
+ description: "Device Magic users can upload .xlsx files to be referenced within\n
98
+ \ their mobile forms. This project is aimed at automating
99
+ the same process\n for Google Sheets to increase the flexibility
100
+ of resources. "
98
101
  email:
99
102
  - anthony.seliga@gmail.com
100
103
  executables:
@@ -141,8 +144,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
144
  version: '0'
142
145
  requirements: []
143
146
  rubyforge_project:
144
- rubygems_version: 2.6.8
147
+ rubygems_version: 2.5.1
145
148
  signing_key:
146
149
  specification_version: 4
147
- summary: Convert Google Sheets to be used as Resources in Device Magic.
150
+ summary: Add Google Sheets as live resources in Device Magic.
148
151
  test_files: []