ass_ole-app_extension 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +14 -0
- data/ass_ole-app_extension.gemspec +1 -1
- data/lib/ass_ole/app_extension.rb +2 -0
- data/lib/ass_ole/app_extension/src.rb +93 -0
- data/lib/ass_ole/app_extension/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 97cd547546dc7e68313af12ae6b24a4855ea38ee
|
4
|
+
data.tar.gz: c1ba225b2710175c649ebb5349ac940477712d3a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd427278ce77d652bb98f680640fc33380c9cb296e6878b0fc2c551ce469f5c5a2a51e19f0e29b0880303b0e0261307bb749737720fd1483d605d0a9194a83af
|
7
|
+
data.tar.gz: 8e33282e82393f9732da593c0b512424fbe8e2a24cc31310cbfae71f545c68ed75786011ce47a619fa5b408d18ff7743d0ad59dbc76933f29734ed5b709c0741
|
data/README.md
CHANGED
@@ -99,6 +99,20 @@ AssOle::AppExtension::Spy.explore(ib).each do |spy|
|
|
99
99
|
end
|
100
100
|
```
|
101
101
|
|
102
|
+
4. Convert xml extension source to `.cfe` binary file
|
103
|
+
|
104
|
+
```ruby
|
105
|
+
src = AssOle::AppExtension::Src::Xml.new('foo_ext/xml.src', '~> 8.3.9')
|
106
|
+
src.to_binary('foo_ext.cfe') #=> 'foo_ext.cfe'
|
107
|
+
```
|
108
|
+
|
109
|
+
5. Convert `.cfe` extension binary file to xml files
|
110
|
+
|
111
|
+
```ruby
|
112
|
+
src = AssOle::AppExtension::Src::Cfe.new('foo_ext.cfe', '~> 8.3.9')
|
113
|
+
src.to_xml('foo_ext/xml.src') #=> 'foo_ext/xml.src'
|
114
|
+
```
|
115
|
+
|
102
116
|
## Development
|
103
117
|
|
104
118
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
|
23
23
|
spec.add_dependency 'ass_ole'
|
24
24
|
spec.add_dependency 'ass_ole-snippets-shared', '~> 0.5'
|
25
|
-
spec.add_dependency "ass_maintainer-
|
25
|
+
spec.add_dependency "ass_maintainer-info_bases"
|
26
26
|
|
27
27
|
spec.add_development_dependency "bundler", "~> 1.15"
|
28
28
|
spec.add_development_dependency "rake", "~> 10.0"
|
@@ -0,0 +1,93 @@
|
|
1
|
+
module AssOle
|
2
|
+
module AppExtension
|
3
|
+
# Provides classes for working with application extension sources like a
|
4
|
+
# +.cfe+ file or +xml+ files
|
5
|
+
module Src
|
6
|
+
require 'ass_maintainer/info_bases/tmp_info_base'
|
7
|
+
# @abstract
|
8
|
+
class Abstract
|
9
|
+
include AssMaintainer::InfoBases::TmpInfoBase::Api
|
10
|
+
|
11
|
+
attr_reader :path, :platform_require
|
12
|
+
|
13
|
+
# @param path [String] path to extension source
|
14
|
+
# @param platform_require [String] requirement for 1C:Enterprise
|
15
|
+
# platform version
|
16
|
+
def initialize(path, platform_require = '~> 8.3.8')
|
17
|
+
path_set(path)
|
18
|
+
@platform_require = platform_require
|
19
|
+
end
|
20
|
+
|
21
|
+
def path_set(path)
|
22
|
+
@path = path
|
23
|
+
fail ArgumentError, "Path not exist: #{path}" unless File.exist? path
|
24
|
+
end
|
25
|
+
private :path_set
|
26
|
+
end
|
27
|
+
|
28
|
+
# Class for extension +xml+ files source
|
29
|
+
# @example Convert xml extension source to +.cfe+ binary file
|
30
|
+
# src = AssOle::AppExtension::Src::Xml.new('foo_ext/xml.src', '~> 8.3.9')
|
31
|
+
# src.to_binary('foo_ext.cfe') #=> 'foo_ext.cfe'
|
32
|
+
class Xml < Abstract
|
33
|
+
def path_set(path)
|
34
|
+
super
|
35
|
+
fail ArgumentError, "Invalid extension xml source: `#{path}'" unless\
|
36
|
+
File.file? root_file
|
37
|
+
end
|
38
|
+
private :path_set
|
39
|
+
|
40
|
+
# Build binary +.cfe+ file from +xml+ source
|
41
|
+
# @param dest_path [String] +.cfe+ file path
|
42
|
+
def to_binary(dest_path)
|
43
|
+
src_path = path
|
44
|
+
with_tmp_ib platform_require: platform_require do |ib|
|
45
|
+
ib.designer do
|
46
|
+
_loadConfigFromFiles src_path do
|
47
|
+
_Extension 'WTF1C'
|
48
|
+
end
|
49
|
+
end.run.wait.result.verify!
|
50
|
+
|
51
|
+
ib.designer do
|
52
|
+
_DumpCfg dest_path do
|
53
|
+
_Extension 'WTF1C'
|
54
|
+
end
|
55
|
+
end.run.wait.result.verify!
|
56
|
+
end
|
57
|
+
dest_path
|
58
|
+
end
|
59
|
+
|
60
|
+
# @return [String] path to +Configuration.xml+ root file
|
61
|
+
def root_file
|
62
|
+
File.join(path, 'Configuration.xml')
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
# Class for extension +.cfe+ binary file
|
67
|
+
# @example Convert +.cfe+ extension binary file to xml files
|
68
|
+
# src = AssOle::AppExtension::Src::Cfe.new('foo_ext.cfe', '~> 8.3.9')
|
69
|
+
# src.to_xml('foo_ext/xml.src') #=> 'foo_ext/xml.src'
|
70
|
+
class Cfe < Abstract
|
71
|
+
# Disassemble binary +.cfe+ to +xml+ source
|
72
|
+
# @param dest_path [String] +xml+ sorce dir
|
73
|
+
def to_xml(dest_path)
|
74
|
+
src_path = path
|
75
|
+
with_tmp_ib platform_require: platform_require do |ib|
|
76
|
+
ib.designer do
|
77
|
+
_loadCfg src_path do
|
78
|
+
_Extension 'WTF1C'
|
79
|
+
end
|
80
|
+
end.run.wait.result.verify!
|
81
|
+
|
82
|
+
ib.designer do
|
83
|
+
_DumpConfigToFiles dest_path do
|
84
|
+
_Extension 'WTF1C'
|
85
|
+
end
|
86
|
+
end.run.wait.result.verify!
|
87
|
+
end
|
88
|
+
dest_path
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ass_ole-app_extension
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leonid Vlasov
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0.5'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name: ass_maintainer-
|
42
|
+
name: ass_maintainer-info_bases
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -154,6 +154,7 @@ files:
|
|
154
154
|
- bin/console
|
155
155
|
- bin/setup
|
156
156
|
- lib/ass_ole/app_extension.rb
|
157
|
+
- lib/ass_ole/app_extension/src.rb
|
157
158
|
- lib/ass_ole/app_extension/version.rb
|
158
159
|
homepage: https://github.com/leoniv/ass_ole-app_extension
|
159
160
|
licenses: []
|