revit 0.10.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,164 @@
1
+ # rubocop: disable Metrics/AbcSize, Metrics/ModuleLength
2
+
3
+ require 'rugged'
4
+ require 'tempfile'
5
+ require 'paint'
6
+
7
+ module Revit
8
+ # A collection of utility functions for use with Revit
9
+ #
10
+ # @author [brwnrclse]
11
+ module Util
12
+ RevitDoc = Struct.new(:blob, :syntax, :doc_name, :has_diff)
13
+ REVITSYNTAX = {
14
+ '.rb' => 'RUBY',
15
+ '.gemspec' => 'RUBY',
16
+ '.py' => 'PYTHON',
17
+ '.pyw' => 'PYTHON',
18
+ '.pyd' => 'PYTHON',
19
+ '.py3' => 'PYTHON',
20
+ '.c' => 'C',
21
+ '.cpp' => 'C',
22
+ '.h' => 'C',
23
+ '.hpp' => 'C',
24
+ '.js' => 'JAVASCRIPT',
25
+ '.jsx' => 'JAVASCRIPT',
26
+ '.java' => 'JAVA',
27
+ '.class' => 'JAVA',
28
+ '.go' => 'GO',
29
+ '.m' => 'OBJC',
30
+ '.swift' => 'SWIFT',
31
+ '.ps1' => 'POWERSHELL',
32
+ '.lisp' => 'LISP',
33
+ '.lsp' => 'LISP',
34
+ '.json' => 'JSON',
35
+ '.sbt' => 'SCALA',
36
+ '.scala' => 'SCALA',
37
+ '.yml' => 'YAML',
38
+ '.yaml' => 'YAML',
39
+ '.xml' => 'XML',
40
+ '.sh' => 'SHELL',
41
+ '.zsh' => 'SHELL',
42
+ '.bash' => 'SHELL',
43
+ '.md' => 'MARKDOWN',
44
+ '.markdown' => 'MARKDOWN',
45
+ '.fountain' => 'FOUNTAIN',
46
+ '.diff' => 'DIFF'
47
+ }.freeze
48
+
49
+ #
50
+ # Grabs all possible docs from the given paths
51
+ #
52
+ # @param paths The paths
53
+ # @param spinner The spinner
54
+ #
55
+ # @return [Array]
56
+ #
57
+ def self.collect_docs(paths, spinner)
58
+ docs = []
59
+
60
+ paths.each do |x|
61
+ type = File.exist?(x) ? File.ftype(x) : 'other'
62
+
63
+ if type == 'file' && File.zero?(x)
64
+ spinner.update(msg: "#{Paint['Adding', nil, '#e3b505']} #{x}")
65
+ spinner.run do
66
+ docs.push(doc_from_path(x))
67
+ spinner.success(Paint['document created', :green])
68
+ end
69
+ elsif type == 'directory'
70
+ spinner.update(msg: "#{Paint['Adding', nil, '#e3b505']} docs from " \
71
+ "#{Paint[path, '#2de1fc']}")
72
+
73
+ if Dir.entries(x).include?('.git') && !options[:no_vc]
74
+ spinner.run do
75
+ docs ||= docs_from_repo(x, spinner)
76
+ spinner.success(Paint['repo docs created', :green])
77
+ end
78
+ else
79
+ spinner.run do
80
+ docs ||= docs_from_dir(x)
81
+ spinner.success(Paint['dir docs created', :green])
82
+ end
83
+ end
84
+ else
85
+ spinner.update(msg: "#{Paint['Unsupported file:']} #{path}")
86
+ end
87
+ end
88
+
89
+ docs
90
+ end
91
+
92
+ # Wrapper for creating a Document object from a file path
93
+ #
94
+ # @param path [String]
95
+ #
96
+ # @param has_diff [Boolean]
97
+ #
98
+ # @return [Revit::Util::RevDoc]
99
+ #
100
+ def self.doc_from_path(path, has_diff = false)
101
+ ext = File.extname(path).downcase
102
+ content_type = REVITSYNTAX[ext] ? REVITSYNTAX[ext] : 'PLAIN'
103
+
104
+ RevitDoc.new(File.read(path).gsub("\r\n", "\n"), content_type,
105
+ File.basename(path), has_diff)
106
+ end
107
+
108
+ # Creates a list of documents from files in the passed directory
109
+ #
110
+ # @param path [String]
111
+ #
112
+ # @return [Array<Revit::Util::RevDoc>]
113
+ #
114
+ def self.docs_from_dir(path)
115
+ docs = []
116
+ paths = Dir.glob("#{path}/**/*").reject { |entry| Dir.exist?(entry) }
117
+
118
+ paths.each do |entry|
119
+ unless '..'.include?(entry) || File.zero?(entry)
120
+ docs.push(doc_from_path(entry))
121
+ end
122
+ end
123
+
124
+ docs
125
+ end
126
+
127
+ # Creates a list of documents from repo changelist
128
+ #
129
+ # @param path [String]
130
+ #
131
+ # @return [Array<Revit::Util:RevDoc>]
132
+ #
133
+ def self.docs_from_repo(path)
134
+ docs = []
135
+ repo = Rugged::Repository.discover(path)
136
+
137
+ if repo.bare? || repo.empty?
138
+ raise Revit::BaemptyException, "Bad repo: #{path}"
139
+ end
140
+
141
+ commit = repo.head.target
142
+ diff = commit.parents.first.diff(commit)
143
+
144
+ diff.find_similar!
145
+ diff.each_delta do |d|
146
+ file_path = d.new_file[:path]
147
+ docs.push(doc_from_path("#{path}/#{file_path}", true))
148
+
149
+ ofile = repo.lookup(d.old_file[:oid])
150
+ nfile = repo.lookup(d.new_file[:oid])
151
+ diff_file = Tempfile.new([File.basename(file_path).to_s, '.diff'])
152
+
153
+ diff_file.write(ofile.diff(nfile).to_s)
154
+ docs.push(doc_from_path(diff_file.path))
155
+ diff_file.close
156
+ diff_file.unlink
157
+ end
158
+
159
+ docs
160
+ end
161
+ end
162
+ end
163
+
164
+ # rubocop: enable Metrics/AbcSize, Metrics/ModuleLength
@@ -0,0 +1,3 @@
1
+ module Revit
2
+ VERSION = '0.10.9'.freeze
3
+ end
@@ -0,0 +1,40 @@
1
+ # rubocop disable Metrics/BlockLength
2
+ # coding: utf-8
3
+
4
+ lib = File.expand_path('../lib', __FILE__)
5
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
6
+ require 'revit/version'
7
+
8
+ Gem::Specification.new do |spec|
9
+ spec.name = 'revit'
10
+ spec.version = Revit::VERSION
11
+ spec.authors = ['']
12
+ spec.email = ['brwnrclse@gmail.com']
13
+ spec.summary = 'This gem has moved to wver https://rubygems.org/gems/wver'
14
+ spec.homepage = ''
15
+ spec.license = 'MIT'
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
+ f.match(%r{^(test|spec|features)/})
19
+ end
20
+
21
+ spec.bindir = 'exe'
22
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
24
+ spec.require_paths = ['lib']
25
+ spec.required_ruby_version = '>= 2.3.0'
26
+
27
+ spec.add_dependency 'graphlient'
28
+ spec.add_dependency 'paint'
29
+ spec.add_dependency 'svn', '~> 0.2.0'
30
+ spec.add_dependency 'sysrandom'
31
+ spec.add_dependency 'thor'
32
+ spec.add_dependency 'tty-spinner'
33
+
34
+ spec.add_development_dependency 'bundler', '~> 1.13'
35
+ spec.add_development_dependency 'pry', '~> 0.10.4'
36
+ spec.add_development_dependency 'rake', '~> 10.0'
37
+ spec.add_development_dependency 'rspec', '~> 3.5', '>= 3.5.0'
38
+ spec.add_development_dependency 'rubocop'
39
+ spec.add_development_dependency 'webmock'
40
+ end
@@ -0,0 +1,20 @@
1
+ {
2
+ "folders": [
3
+ {
4
+ "path": ".",
5
+ "folder_exclude_patterns": ["coverage", "rdoc", ".bundle", "_yardoc", "doc", "pkg", "spec/reports", "vendor/ruby", "vendor/bundle", "lib/bundler/man", "tmp", "InstalledFiles"],
6
+ "file_exclude_patterns": ["*.gem", "*.rbc", ".config", "Gemfile.lock", ".ruby-gemset", ".rvmrc"],
7
+ "name":"revit - rev's uploader cli (ruby)"
8
+ }
9
+ ],
10
+ "SublimeLinter": {
11
+ "linters": {
12
+ "rubocop": {
13
+ "@disable": false,
14
+ "args": ["--config", "${project}/.rubocop.yml"],
15
+ "excludes": [],
16
+ "use_bundle_exec": true
17
+ }
18
+ }
19
+ }
20
+ }
metadata ADDED
@@ -0,0 +1,248 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: revit
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.10.9
5
+ platform: ruby
6
+ authors:
7
+ - ''
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2018-04-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: graphlient
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: paint
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: svn
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.2.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.2.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: sysrandom
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: thor
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: tty-spinner
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
+ - !ruby/object:Gem::Dependency
98
+ name: bundler
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.13'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.13'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 0.10.4
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 0.10.4
125
+ - !ruby/object:Gem::Dependency
126
+ name: rake
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '10.0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '10.0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rspec
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '3.5'
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: 3.5.0
149
+ type: :development
150
+ prerelease: false
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: '3.5'
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: 3.5.0
159
+ - !ruby/object:Gem::Dependency
160
+ name: rubocop
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ - !ruby/object:Gem::Dependency
174
+ name: webmock
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ description:
188
+ email:
189
+ - brwnrclse@gmail.com
190
+ executables:
191
+ - revit
192
+ extensions: []
193
+ extra_rdoc_files: []
194
+ files:
195
+ - ".codeclimate.yml"
196
+ - ".gemrc"
197
+ - ".gitignore"
198
+ - ".rubocop.yml"
199
+ - ".ruby-version"
200
+ - ".test-unit.yml"
201
+ - Gemfile
202
+ - LICENSE.txt
203
+ - README.md
204
+ - Rakefile
205
+ - bin/console
206
+ - bin/setup
207
+ - bitbucket-pipelines.yml
208
+ - exe/revit
209
+ - guides/BaemptyError.md
210
+ - guides/CreatingRevs.md
211
+ - guides/GraphQLDataIssue.md
212
+ - guides/GraphQLValidationError.md
213
+ - guides/LoggingIn.md
214
+ - lib/revit.rb
215
+ - lib/revit/api.rb
216
+ - lib/revit/auth.rb
217
+ - lib/revit/cli.rb
218
+ - lib/revit/exception.rb
219
+ - lib/revit/schema/schema.json
220
+ - lib/revit/util.rb
221
+ - lib/revit/version.rb
222
+ - revit.gemspec
223
+ - revit.sublime-project
224
+ homepage: ''
225
+ licenses:
226
+ - MIT
227
+ metadata: {}
228
+ post_install_message:
229
+ rdoc_options: []
230
+ require_paths:
231
+ - lib
232
+ required_ruby_version: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: 2.3.0
237
+ required_rubygems_version: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - ">="
240
+ - !ruby/object:Gem::Version
241
+ version: '0'
242
+ requirements: []
243
+ rubyforge_project:
244
+ rubygems_version: 2.5.2
245
+ signing_key:
246
+ specification_version: 4
247
+ summary: This gem has moved to wver https://rubygems.org/gems/wver
248
+ test_files: []