lucidMachines 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,54 @@
1
+ require 'google/apis/sheets_v4'
2
+ require 'googleauth'
3
+ require 'googleauth/stores/file_token_store'
4
+ require 'fileutils'
5
+
6
+ OOB_URI = 'urn:ietf:wg:oauth:2.0:oob'.freeze
7
+ APPLICATION_NAME = 'Google Sheets API Ruby Quickstart'.freeze
8
+ CREDENTIALS_PATH = 'credentials.json'.freeze
9
+ # The file token.yaml stores the user's access and refresh tokens, and is
10
+ # created automatically when the authorization flow completes for the first
11
+ # time.
12
+ TOKEN_PATH = 'token.yaml'.freeze
13
+ SCOPE = Google::Apis::SheetsV4::AUTH_SPREADSHEETS_READONLY
14
+
15
+ ##
16
+ # Ensure valid credentials, either by restoring from the saved credentials
17
+ # files or intitiating an OAuth2 authorization. If authorization is required,
18
+ # the user's default browser will be launched to approve the request.
19
+ #
20
+ # @return [Google::Auth::UserRefreshCredentials] OAuth2 credentials
21
+ def authorize
22
+ client_id = Google::Auth::ClientId.from_file(CREDENTIALS_PATH)
23
+ token_store = Google::Auth::Stores::FileTokenStore.new(file: TOKEN_PATH)
24
+ authorizer = Google::Auth::UserAuthorizer.new(client_id, SCOPE, token_store)
25
+ user_id = 'default'
26
+ credentials = authorizer.get_credentials(user_id)
27
+ if credentials.nil?
28
+ url = authorizer.get_authorization_url(base_url: OOB_URI)
29
+ puts 'Open the following URL in the browser and enter the ' \
30
+ "resulting code after authorization:\n" + url
31
+ code = gets
32
+ credentials = authorizer.get_and_store_credentials_from_code(
33
+ user_id: user_id, code: code, base_url: OOB_URI
34
+ )
35
+ end
36
+ credentials
37
+ end
38
+
39
+ # Initialize the API
40
+ service = Google::Apis::SheetsV4::SheetsService.new
41
+ service.client_options.application_name = APPLICATION_NAME
42
+ service.authorization = authorize
43
+
44
+ # Prints the names and majors of students in a sample spreadsheet:
45
+ # https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit
46
+ spreadsheet_id = '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms'
47
+ range = 'Class Data!A2:E'
48
+ response = service.get_spreadsheet_values(spreadsheet_id, range)
49
+ puts 'Name, Major:'
50
+ puts 'No data found.' if response.values.empty?
51
+ response.values.each do |row|
52
+ # Print columns A and E, which correspond to indices 0 and 4.
53
+ puts "#{row[0]}, #{row[4]}"
54
+ end
@@ -0,0 +1,2 @@
1
+ ---
2
+ default: '{"client_id":"811549868817-3u056164jo9hm1k0kka52ddu66f5ulmj.apps.googleusercontent.com","access_token":"ya29.GluJBgp6QMn3BnH1qOcSdQtGAo6LR2NTHjL-MzlxjyU9jvxTAwR6oohZS0Pri2edESo7Ml9Kb0MjDcQrsqpJWkUsCnPApYEY-0CY_8welbzDaZXbkEsy78RP76Px","refresh_token":"1/BeBU9UOVvh_VLnoNfn30ro-xZrxXmuv1RH4y2feWyTQ","scope":["https://www.googleapis.com/auth/spreadsheets.readonly"],"expiration_time_millis":1546802181000}'
metadata ADDED
@@ -0,0 +1,167 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: lucidMachines
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
+ platform: ruby
6
+ authors:
7
+ - Jeremy Laviole
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2019-09-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: aasm
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: aasm-diagram
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: ruby-graphviz
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: thor
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: This gem converts diagrams exported from LucidChard in CSV format to
98
+ AASM code in ruby. It can also convert to other formats such as in GraphViz.
99
+ email:
100
+ - poqudrof@gmail.com
101
+ executables:
102
+ - lucidMachines
103
+ extensions: []
104
+ extra_rdoc_files: []
105
+ files:
106
+ - ".gitignore"
107
+ - ".~lock.integration.csv#"
108
+ - CODE_OF_CONDUCT.md
109
+ - Gemfile
110
+ - Gemfile.lock
111
+ - README.md
112
+ - Rakefile
113
+ - aasm_export.rb
114
+ - bin/console
115
+ - bin/setup
116
+ - chart.rb
117
+ - comptes/#comptes.rb#
118
+ - comptes/comptes.rb
119
+ - comptes/comptes.rb~
120
+ - comptes/credentials.json
121
+ - comptes/token.yaml
122
+ - credentials.json
123
+ - elements.rb
124
+ - exe/lucidMachines
125
+ - exporter.rb
126
+ - graphviz_export.rb
127
+ - integration.csv
128
+ - lib/lucidMachines.rb
129
+ - lib/lucidMachines/aasm_export.rb
130
+ - lib/lucidMachines/chart.rb
131
+ - lib/lucidMachines/cli.rb
132
+ - lib/lucidMachines/elements.rb
133
+ - lib/lucidMachines/exporter.rb
134
+ - lib/lucidMachines/graphviz_export.rb
135
+ - lib/lucidMachines/loader.rb
136
+ - lib/lucidMachines/version.rb
137
+ - loader.rb
138
+ - lucidMachines.gemspec
139
+ - quickstart/quickstart/credentials.json
140
+ - quickstart/quickstart/quickstart.rb
141
+ - quickstart/quickstart/token.yaml
142
+ homepage: https://forge.pole-aquinetic.net/RealityTech/lucid-machines
143
+ licenses: []
144
+ metadata:
145
+ homepage_uri: https://forge.pole-aquinetic.net/RealityTech/lucid-machines
146
+ source_code_uri: https://forge.pole-aquinetic.net/RealityTech/lucid-machines
147
+ changelog_uri: https://forge.pole-aquinetic.net/RealityTech/lucid-machines
148
+ post_install_message:
149
+ rdoc_options: []
150
+ require_paths:
151
+ - lib
152
+ required_ruby_version: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: '0'
157
+ required_rubygems_version: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: '0'
162
+ requirements: []
163
+ rubygems_version: 3.0.3
164
+ signing_key:
165
+ specification_version: 4
166
+ summary: Creates AASM state machines from LucidChart diagrams.
167
+ test_files: []