okei 0.0.2 → 1.0.0.pre.rc
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 +4 -4
- data/.rubocop.yml +4 -0
- data/README.rdoc +6 -7
- data/Rakefile +4 -13
- data/app/controllers/okei/api/v1/responder.rb +15 -2
- data/app/controllers/okei/api/v1/units_controller.rb +4 -0
- data/app/models/okei/unit.rb +32 -5
- data/app/use_cases/okei/find_unit.rb +2 -12
- data/app/use_cases/okei/get_unit.rb +1 -1
- data/app/views/okei/api/v1/units/_unit.json.jbuilder +2 -4
- data/db/migrate/{20141004212500_create_okei_units.rb → 20141019072900_create_okei_units.rb} +0 -2
- data/db/migrate/20141019072901_populate_okei_units.rb +60 -0
- data/db/migrate/20141019072902_populate_okei_correctors.rb +50 -0
- data/db/seeds/phrases.json +199 -0
- data/db/seeds/prefixes.json +12 -0
- data/db/seeds/words.json +10 -216
- data/lib/okei.rb +2 -0
- data/lib/okei/version.rb +4 -2
- data/lib/tasks/okei_tasks.rake +47 -28
- data/spec/dummy/db/migrate/20141018085223_create_corrector_bases.corrector.rb +14 -0
- data/spec/dummy/db/migrate/20141018085226_create_uuids_uuids.uuids.rb +10 -0
- data/spec/dummy/db/schema.rb +22 -12
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +20296 -0
- data/spec/dummy/log/test.log +183148 -0
- data/spec/examples/json_schemas/unit.json +7 -2
- data/spec/factories/units.rb +0 -1
- data/spec/models/okei/unit_spec.rb +7 -26
- data/spec/requests/okei/api/v1/find_unit_spec.rb +8 -11
- data/spec/requests/okei/api/v1/get_unit_spec.rb +2 -3
- data/spec/requests/okei/api/v1/get_units_spec.rb +2 -2
- data/spec/support/initializers/factory_girl_rails.rb +4 -0
- data/spec/use_cases/okei/find_unit_spec.rb +7 -10
- metadata +43 -21
- data/app/models/okei/line.rb +0 -63
- data/app/models/okei/word.rb +0 -26
- data/app/models/okei/words.rb +0 -40
- data/db/migrate/20141004212501_populate_okei_units.rb +0 -14
- data/db/migrate/20141004212502_create_okei_words.rb +0 -11
- data/db/migrate/20141004212503_populate_okei_words.rb +0 -15
- data/spec/factories/words.rb +0 -7
- data/spec/models/okei/line_spec.rb +0 -61
- data/spec/models/okei/word_spec.rb +0 -75
- data/spec/models/okei/words_spec.rb +0 -64
- data/spec/support/initializers/factory_girl.rb +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ddd375964fa07cfe8f6450efd1aa2220c7e1bb01
|
4
|
+
data.tar.gz: 5444557de9af279b0e68abce30fb2d5caa287f76
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9fa4897fc4012bea96202bcf27035135708d9665628ad9d137dfe4db7660e63c537aa6ef00ed2a7f88f8b0dcbfc1990cef8715302b30dd34f1678019b5aad4fa
|
7
|
+
data.tar.gz: 4a15da1279d9741fd99cf34fbab901cbf59ac744a16221d67d7b032c9da503159b40a1fabe4a05ab6e45a9d22812f6079f889dd4276a2647c1202feb9943a77c
|
data/.rubocop.yml
CHANGED
data/README.rdoc
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
= Единицы измерения
|
2
2
|
|
3
|
+
{<img src="http://img.shields.io/gem/v/okei.svg?style=flat" alt="Gem Version" />}[https://rubygems.org/gems/okei]
|
3
4
|
{<img src="http://img.shields.io/travis/nepalez/okei.svg?style=flat" alt="Bild Status" />}[https://travis-ci.org/nepalez/okei]
|
4
5
|
{<img src="http://img.shields.io/codeclimate/github/nepalez/okei.svg?style=flat" alt="Code Metrics" />}[https://codeclimate.com/github/nepalez/okei]
|
5
6
|
{<img src="http://img.shields.io/gemnasium/nepalez/okei.svg?style=flat" alt="Dependency Status" />}[https://gemnasium.com/nepalez/okei]
|
@@ -62,15 +63,13 @@ API содержит следующие маршруты для доступа
|
|
62
63
|
|
63
64
|
После установки выполните в командной строке:
|
64
65
|
|
65
|
-
|
66
|
+
=== При включении модуля в модуль Rails
|
67
|
+
|
68
|
+
$ rake app:okei:install
|
66
69
|
|
67
|
-
При
|
68
|
-
добавляющая адреса RESTful public API модуля. По умолчанию адреса добавляются
|
69
|
-
в поле имен <tt>/okei</tt>, т.ч. API становится доступен по адресам:
|
70
|
+
=== При включении модуля в приложение Rails
|
70
71
|
|
71
|
-
|
72
|
-
* <tt>GET {адрес вашего проекта}/okei/api/v1/units/{uuid}</tt>
|
73
|
-
* <tt>GET {адрес вашего проекта}/okei/api/v1/units/search</tt>
|
72
|
+
$ rake okei:install
|
74
73
|
|
75
74
|
== Contributing (en)
|
76
75
|
|
data/Rakefile
CHANGED
@@ -30,23 +30,14 @@ require "rspec/core/rake_task"
|
|
30
30
|
|
31
31
|
RSpec::Core::RakeTask.new :spec
|
32
32
|
|
33
|
-
task :
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
task default: [:migrate] do
|
38
|
-
sh "mkdir spec/dummy/tmp" do |*|
|
39
|
-
nunitSuccessFlag = false
|
40
|
-
end
|
41
|
-
sh "mkdir spec/dummy/tmp/cache" do |*|
|
42
|
-
nunitSuccessFlag = false
|
43
|
-
end
|
44
|
-
sh "bundle exec rspec spec"
|
33
|
+
task default: %w(app:okei:test:prepare) do
|
34
|
+
system "bundle exec rspec spec"
|
45
35
|
end
|
46
36
|
|
47
37
|
task :full do
|
48
38
|
sh "coveralls report"
|
49
39
|
sh "rubocop"
|
50
40
|
sh "metric_fu"
|
51
|
-
sh "inch"
|
41
|
+
sh "inch --pedantic"
|
42
|
+
sh "rails_best_practices"
|
52
43
|
end
|
@@ -7,19 +7,32 @@ module Okei
|
|
7
7
|
# Responds to client depending on use case results
|
8
8
|
class Responder < ::ApplicationController
|
9
9
|
|
10
|
-
# Renders list of units of measure.
|
10
|
+
# Renders a list of units of measure.
|
11
|
+
#
|
12
|
+
# Params:
|
13
|
+
# +units+:: a list of units found by use case
|
14
|
+
#
|
11
15
|
def on_success(units)
|
12
16
|
@units = units
|
13
17
|
render "index"
|
14
18
|
end
|
15
19
|
|
16
20
|
# Renders a unit of measure.
|
21
|
+
#
|
22
|
+
# Params:
|
23
|
+
# +unit+:: a unit of measure to be rendered and sent to a client.
|
24
|
+
#
|
17
25
|
def on_found(unit)
|
18
26
|
@unit = unit
|
19
27
|
render "show"
|
20
28
|
end
|
21
29
|
|
22
|
-
# Renders an error
|
30
|
+
# Renders an error messages.
|
31
|
+
#
|
32
|
+
# Params:
|
33
|
+
# +messages+:: a list of messages (<tt>Hexx::Message</tt> objects)
|
34
|
+
# to be shown to a client.
|
35
|
+
#
|
23
36
|
def on_not_found(messages)
|
24
37
|
@messages = messages
|
25
38
|
render "errors", status: 404
|
data/app/models/okei/unit.rb
CHANGED
@@ -2,16 +2,43 @@
|
|
2
2
|
|
3
3
|
module Okei
|
4
4
|
|
5
|
-
# Stores and validates units of measure
|
5
|
+
# Stores and validates units of measure.
|
6
|
+
#
|
7
|
+
# Attributes:
|
8
|
+
# +uuids+:: list of Units::Uuid objects assigned (referred to) the unit.
|
9
|
+
# +code+:: literal cyrillic code ("КМ/Ч").
|
10
|
+
# +name+:: name of the unit ("Километры в час").
|
11
|
+
# +num+:: numeric code of the unit following the OKEI ("007").
|
12
|
+
# +int_code+:: a literal international code of the unit ("KMH").
|
13
|
+
# +base+:: literal cyrillic code of the basic unit of measure ("М/С").
|
14
|
+
# +factor+:: float number of basic units in a current unit (0.28).
|
15
|
+
# +measure+:: the name of measurement ("СКОРОСТЬ") used for filtering units.
|
16
|
+
#
|
17
|
+
# Methods:
|
18
|
+
# <tt>#uuid</tt>:: returns value of the first +uuids+ assigned to the unit.
|
19
|
+
# <tt>.by_uuid(value)</tt>:: selects units by a given UUID.
|
20
|
+
#
|
21
|
+
# The first UUID can be set manually if necessary (when db populated from the
|
22
|
+
# outer list). Otherwise it will be assigned by default on the unit creation.
|
23
|
+
#
|
24
|
+
# @example
|
25
|
+
# unit = Unit.new(
|
26
|
+
# name: "Километры в час", code: "КМ/Ч", num: "007", int_code: "KMH",
|
27
|
+
# base: "М/С", factor: 0.28, measure: "СКОРОСТЬ"
|
28
|
+
# )
|
29
|
+
# # this can be skipped:
|
30
|
+
# unit.uuids.new value: "9ac7e74a-d51a-424c-8fcd-71b0b55f6658"
|
31
|
+
#
|
6
32
|
class Unit < ActiveRecord::Base
|
33
|
+
include Uuids::Base
|
7
34
|
|
8
|
-
|
35
|
+
# Format of OKEI numeric codes (three digits).
|
9
36
|
NUM_FORMAT = /\A\d{3}\z/
|
10
37
|
|
11
|
-
|
12
|
-
validates :
|
38
|
+
has_uuids
|
39
|
+
validates :code, :name, :base, :factor, :measure, presence: true
|
40
|
+
validates :code, :name, uniqueness: true, allow_nil: true
|
13
41
|
validates :factor, allow_nil: true, numericality: { greater_than: 0.0 }
|
14
42
|
validates :num, allow_nil: true, format: { with: NUM_FORMAT }
|
15
|
-
validates :uuid, allow_nil: true, format: { with: UUID_FORMAT }
|
16
43
|
end
|
17
44
|
end
|
@@ -38,22 +38,12 @@ module Okei
|
|
38
38
|
@text ||= params["text"]
|
39
39
|
end
|
40
40
|
|
41
|
-
def line
|
42
|
-
@line ||= Line.new text
|
43
|
-
end
|
44
|
-
|
45
|
-
def words
|
46
|
-
@words ||= Words.new(line).map { |word| Word.translate word }
|
47
|
-
end
|
48
|
-
|
49
41
|
def code
|
50
|
-
@code ||=
|
42
|
+
@code ||= Corrector::Parse.new text, scope: "okei"
|
51
43
|
end
|
52
44
|
|
53
45
|
def unit
|
54
|
-
@unit ||=
|
55
|
-
Unit.find_by_code(code)
|
56
|
-
end
|
46
|
+
@unit ||= Unit.where(code: code).first
|
57
47
|
end
|
58
48
|
|
59
49
|
def unit_found?
|
@@ -2,7 +2,6 @@
|
|
2
2
|
class CreateOkeiUnits < ActiveRecord::Migration
|
3
3
|
def change
|
4
4
|
create_table :okei_units do |t|
|
5
|
-
t.string :uuid, null: false, limit: 36
|
6
5
|
t.string :name, null: false
|
7
6
|
t.string :code, null: false
|
8
7
|
t.string :num, limit: 3
|
@@ -12,7 +11,6 @@ class CreateOkeiUnits < ActiveRecord::Migration
|
|
12
11
|
t.float :factor, null: false
|
13
12
|
end
|
14
13
|
|
15
|
-
add_index :okei_units, :uuid, unique: true
|
16
14
|
add_index :okei_units, :code, unique: true
|
17
15
|
add_index :okei_units, :base
|
18
16
|
add_index :okei_units, :measure
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# Populates db with units of measure.
|
2
|
+
class PopulateOkeiUnits < ActiveRecord::Migration
|
3
|
+
|
4
|
+
# reloads units and their uuids from db/seed/units.json
|
5
|
+
def up
|
6
|
+
return if Rails.env.test?
|
7
|
+
down
|
8
|
+
populate_units_from seed
|
9
|
+
end
|
10
|
+
|
11
|
+
# deletes all units with their uuids.
|
12
|
+
def down
|
13
|
+
return if Rails.env.test?
|
14
|
+
clear_uuids
|
15
|
+
clear_units
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
# Parses JSON from db/seed/units.json
|
21
|
+
def seed
|
22
|
+
@seed ||= begin
|
23
|
+
root = File.dirname File.dirname(Okei::Engine.called_from)
|
24
|
+
file = File.join(root, "db", "seeds", "units.json")
|
25
|
+
JSON.parse(File.read file)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
# Deletes units' uuids.
|
30
|
+
def clear_uuids
|
31
|
+
list = Uuids::Uuid.where(record_type: "Okei::Unit")
|
32
|
+
say_with_time "Removing #{ list.count } uuids" do
|
33
|
+
list.delete_all
|
34
|
+
left = list.count
|
35
|
+
fail "#{ left } uuids left undeleted" if left > 0
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
# Deletes units objects.
|
40
|
+
def clear_units
|
41
|
+
list = Okei::Unit.all
|
42
|
+
say_with_time "Removing #{ list.count } units" do
|
43
|
+
list.delete_all
|
44
|
+
left = list.count
|
45
|
+
fail "#{ left } units left undeleted" if left > 0
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
# Populates units and their uuids from given JSON
|
50
|
+
def populate_units_from(json)
|
51
|
+
say_with_time "Adding #{ json.count } units" do
|
52
|
+
json.each do |item|
|
53
|
+
unit = Okei::Unit.new
|
54
|
+
unit.uuids.new value: item.delete("uuid")
|
55
|
+
unit.attributes = item
|
56
|
+
unit.save!
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# Populates db with units of measure.
|
2
|
+
class PopulateOkeiCorrectors < ActiveRecord::Migration
|
3
|
+
|
4
|
+
# reloads units and their uuids from db/seed/units.json
|
5
|
+
def up
|
6
|
+
return if Rails.env.test?
|
7
|
+
down
|
8
|
+
bases.each { |name, klass| populate name, klass }
|
9
|
+
end
|
10
|
+
|
11
|
+
# deletes all units with their uuids.
|
12
|
+
def down
|
13
|
+
return if Rails.env.test?
|
14
|
+
bases.each { |name, klass| clear name, klass }
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def clear(name, klass)
|
20
|
+
list = klass.by_scope("okei")
|
21
|
+
say_with_time "Removing #{ list.count } #{ name }" do
|
22
|
+
list.delete_all
|
23
|
+
left = list.count
|
24
|
+
fail "#{ left } #{ name } left undeleted" if left > 0
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def populate(name, klass)
|
29
|
+
list = JSON.parse(File.read File.join(seeds, "#{ name }.json"))
|
30
|
+
say_with_time "Adding #{ list.count } #{ name }" do
|
31
|
+
list.each { |from, to| klass.create! scope: "okei", from: from, to: to }
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def bases
|
36
|
+
@bases ||= {
|
37
|
+
words: Corrector::Word,
|
38
|
+
phrases: Corrector::Phrase,
|
39
|
+
prefixes: Corrector::Prefix
|
40
|
+
}
|
41
|
+
end
|
42
|
+
|
43
|
+
# Returns json seeds folder
|
44
|
+
def seeds
|
45
|
+
@seeds ||= begin
|
46
|
+
root = File.dirname File.dirname(Okei::Engine.called_from)
|
47
|
+
File.join(root, "db", "seeds")
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,199 @@
|
|
1
|
+
{
|
2
|
+
"АВТО ДН МЕСТ": "АВТ МЕСТ ДН",
|
3
|
+
"АВТО ДН Т": "АВТ Т ДН",
|
4
|
+
"В А Р": "В-А Р",
|
5
|
+
"В А": "В-А",
|
6
|
+
"ВТ ЧАС": "ВТ-Ч",
|
7
|
+
"Г НА КВТ ЧАС": "Г/КВТ-Ч",
|
8
|
+
"Г/КВТ ЧАС": "Г/КВТ-Ч",
|
9
|
+
"ГИГАВТ ЧАС": "ГИГАВТ-Ч",
|
10
|
+
"ГИГАКАЛ В ЧАС": "ГИГАКАЛ/Ч",
|
11
|
+
"ГИГАКАЛ/ЧАС": "ГИГАКАЛ/Ч",
|
12
|
+
"ДМ КВ": "ДМ2",
|
13
|
+
"ДМ КУБ": "ДМ3",
|
14
|
+
"ДОМ ХОЗ": "ДОМХОЗ",
|
15
|
+
"ДЮЙМ КВ": "ДЮЙМ2",
|
16
|
+
"ДЮЙМ КУБ": "ДЮЙМ3",
|
17
|
+
"КАЛ В ЧАС": "КАЛ/Ч",
|
18
|
+
"КАЛ/ЧАС": "КАЛ/Ч",
|
19
|
+
"КВ А Р": "КВ-А Р",
|
20
|
+
"КВ А": "КВ-А",
|
21
|
+
"КВ А": "КВ-А",
|
22
|
+
"КВ ДМ": "ДМ2",
|
23
|
+
"КВ ДЮЙМ": "ДЮЙМ2",
|
24
|
+
"КВ КМ": "КМ2",
|
25
|
+
"КВ М ЖИЛ ПЛ": "М2 ЖИЛ ПЛ",
|
26
|
+
"КВ М ОБЩ ПЛ": "М2 ОБЩ ПЛ",
|
27
|
+
"КВ М УЧ ЛАБ ЗДАН": "М2 УЧ ЛАБ ЗДАН",
|
28
|
+
"КВ М": "М2",
|
29
|
+
"КВ МИЛЬ": "МИЛЬ2",
|
30
|
+
"КВ ММ": "ММ2",
|
31
|
+
"КВ ФУТ": "ФУТ2",
|
32
|
+
"КВТ ЧАС": "КВТ-Ч",
|
33
|
+
"КГ В С": "КГ/С",
|
34
|
+
"КГ НА ГИГАКАЛ": "КГ/ГИГАКАЛ",
|
35
|
+
"КГ НА КВ СМ": "КГ/СМ2",
|
36
|
+
"КГ НА КУБ М": "КГ/М3",
|
37
|
+
"КГ НА М КУБ": "КГ/М3",
|
38
|
+
"КГ НА М3": "КГ/М3",
|
39
|
+
"КГ НА СМ КВ": "КГ/СМ2",
|
40
|
+
"КГ НА СМ2": "КГ/СМ2",
|
41
|
+
"КГ/КВ СМ": "КГ/СМ2",
|
42
|
+
"КГ/КУБ М": "КГ/М3",
|
43
|
+
"КГ/М КУБ": "КГ/М3",
|
44
|
+
"КГ/СМ КВ": "КГ/СМ2",
|
45
|
+
"ККАЛ В ЧАС": "ККАЛ/Ч",
|
46
|
+
"ККАЛ/ЧАС": "ККАЛ/Ч",
|
47
|
+
"КЛ НА КГ": "КЛ/КГ",
|
48
|
+
"КМ В ЧАС": "КМ/Ч",
|
49
|
+
"КМ КВ": "КМ2",
|
50
|
+
"КМ/ЧАС": "КМ/Ч",
|
51
|
+
"КУБ ДМ": "ДМ3",
|
52
|
+
"КУБ ДЮЙМ": "ДЮЙМ3",
|
53
|
+
"КУБ М В С": "М3/С",
|
54
|
+
"КУБ М": "М3",
|
55
|
+
"КУБ ММ": "ММ3",
|
56
|
+
"КУБ ФУТ": "ФУТ3",
|
57
|
+
"ЛОШ СИЛ": "ЛС",
|
58
|
+
"М В КВ С": "М/С2",
|
59
|
+
"М В С КВ": "М/С2",
|
60
|
+
"М В С": "М/С",
|
61
|
+
"М В С2": "М/С2",
|
62
|
+
"М В ЧАС": "М/Ч",
|
63
|
+
"М КВ ЖИЛ ПЛ": "М2 ЖИЛ ПЛ",
|
64
|
+
"М КВ ОБЩ ПЛ": "М2 ОБЩ ПЛ",
|
65
|
+
"М КВ УЧ ЛАБ ЗДАН": "М2 УЧ ЛАБ ЗДАН",
|
66
|
+
"М КВ": "М2",
|
67
|
+
"М КУБ В С": "М3/С",
|
68
|
+
"М КУБ": "М3",
|
69
|
+
"М/КВ С": "М/С2",
|
70
|
+
"М/С КВ": "М/С2",
|
71
|
+
"М/ЧАС": "М/Ч",
|
72
|
+
"М2 В ЧАС": "М2/Ч",
|
73
|
+
"М2 УЧ ЛАБ ЗДАН": "М2 УЧ-ЛАБ ЗДАН",
|
74
|
+
"М2/ЧАС": "М2/Ч",
|
75
|
+
"М3 В С": "М3/С",
|
76
|
+
"М3 В ЧАС": "М3/Ч",
|
77
|
+
"М3/ЧАС": "М3/Ч",
|
78
|
+
"МЕГАБАЙТ": "МБАЙТ",
|
79
|
+
"МЕГАВ А": "МЕГАВ-А",
|
80
|
+
"МЕГАВТ ЧАС": "МЕГАВТ-Ч",
|
81
|
+
"МИЛЬ КВ": "МИЛЬ2",
|
82
|
+
"МЛН А ЧАС": "МЛН А-Ч",
|
83
|
+
"МЛН ГОЛ В ГОД": "МЛН ГОЛ/ГОД",
|
84
|
+
"МЛН ДМ КВ": "МЛН ДМ2",
|
85
|
+
"МЛН ЕД В ГОД": "МЛН ЕД/ГОД",
|
86
|
+
"МЛН КВ А": "МЛН КВ-А",
|
87
|
+
"МЛН КВ ДМ": "МЛН ДМ2",
|
88
|
+
"МЛН КВ М В2 ММ ИСЧ": "МЛН М2 2ММ ИСЧ",
|
89
|
+
"МЛН КВ М ЖИЛ ПЛ": "МЛН М2 ЖИЛ ПЛ",
|
90
|
+
"МЛН КВ М ОБЩ ПЛ": "МЛН М2 ОБЩ ПЛ",
|
91
|
+
"МЛН КВ М": "МЛН М2",
|
92
|
+
"МЛН КВ М2 ММ ИСЧ": "МЛН М2 2ММ ИСЧ",
|
93
|
+
"МЛН КВТ ЧАС": "МЛН КВТ-Ч",
|
94
|
+
"МЛН КУБ М ПЕРЕРАБ ГАЗА": "МЛН М3 ПЕРЕРАБ ГАЗА",
|
95
|
+
"МЛН КУБ М": "МЛН М3",
|
96
|
+
"МЛН ЛОШ СИЛ": "МЛН ЛС",
|
97
|
+
"МЛН М КВ В2 ММ ИСЧ": "МЛН М2 2ММ ИСЧ",
|
98
|
+
"МЛН М КВ ЖИЛ ПЛ": "МЛН М2 ЖИЛ ПЛ",
|
99
|
+
"МЛН М КВ ОБЩ ПЛ": "МЛН М2 ОБЩ ПЛ",
|
100
|
+
"МЛН М КВ": "МЛН М2",
|
101
|
+
"МЛН М КВ2 ММ ИСЧ": "МЛН М2 2ММ ИСЧ",
|
102
|
+
"МЛН М КУБ ПЕРЕРАБ ГАЗА": "МЛН М3 ПЕРЕРАБ ГАЗА",
|
103
|
+
"МЛН М КУБ": "МЛН М3",
|
104
|
+
"МЛН М2 2 ММ ИСЧ": "МЛН М2 2ММ ИСЧ",
|
105
|
+
"МЛН ПОЛЛ": "МЛН ПОЛ Л",
|
106
|
+
"МЛН ПТИЦЕ МЕСТ": "МЛН ПТИЦЕМЕСТ",
|
107
|
+
"МЛН Т В ГОД": "МЛН Т/ГОД",
|
108
|
+
"МЛН УСЛ КВ М": "МЛН УСЛ М2",
|
109
|
+
"МЛН УСЛ М КВ": "МЛН УСЛ М2",
|
110
|
+
"МЛРД КВТ ЧАС": "МЛРД КВТ-Ч",
|
111
|
+
"МЛРД КВТ ЧАС": "МЛРД КВТ-Ч",
|
112
|
+
"МЛРД КУБ М": "МЛРД М3",
|
113
|
+
"МЛРД М КУБ": "МЛРД М3",
|
114
|
+
"ММ КВ": "ММ2",
|
115
|
+
"ММ КУБ": "ММ3",
|
116
|
+
"МОЩН ЭФФ": "ЭФФ МОЩН",
|
117
|
+
"ОБ В МИН": "ОБ/МИН",
|
118
|
+
"ОБ В С": "ОБ/С",
|
119
|
+
"ОПЛАТ ТР": "ЗАРАБОТН ПЛАТ",
|
120
|
+
"ОПЛАТ ТРУДА": "ЗАРАБОТН ПЛАТ",
|
121
|
+
"ПАР В СМЕТ": "ПАР/СМЕН",
|
122
|
+
"ПАР В ЧАС": "ПАР/Ч",
|
123
|
+
"ПАР/ЧАС": "ПАР/Ч",
|
124
|
+
"ПЛОТН КУБ М": "ПЛОТН М3",
|
125
|
+
"ПЛОТН М КУБ": "ПЛОТН М3",
|
126
|
+
"ПОСЕЩ В СМЕН": "ПОСЕЩ/СМЕН",
|
127
|
+
"ПТИЦЕ МЕСТ": "ПТИЦЕМЕСТ",
|
128
|
+
"РЕГИСТР Т": "НЕТТ РЕГИСТР Т",
|
129
|
+
"РЕМ В ГОД": "РЕМ/ГОД",
|
130
|
+
"Т В СМЕН": "Т/СМЕН",
|
131
|
+
"Т В СУТ": "Т/СУТ",
|
132
|
+
"Т В ЧАС": "Т/Ч",
|
133
|
+
"Т ПЕРЕРАБ В СУТ": "Т ПЕРЕРАБ/СУТ",
|
134
|
+
"Т/ЧАС": "Т/Ч",
|
135
|
+
"ТЕХН АТМ": "АТТ",
|
136
|
+
"ТЫС А ЧАС": "ТЫС А-Ч",
|
137
|
+
"ТЫС ГИГАКАЛ В ЧАС": "ТЫС ГИГАКАЛ/Ч",
|
138
|
+
"ТЫС ГИГАКАЛ/ЧАС": "ТЫС ГИГАКАЛ/Ч",
|
139
|
+
"ТЫС ГОЛ В ГОД": "ТЫС ГОЛ/ГОД",
|
140
|
+
"ТЫС ДМ КВ": "ТЫС ДМ2",
|
141
|
+
"ТЫС КВ А Р": "ТЫС КВ-А Р",
|
142
|
+
"ТЫС КВ ДМ": "ТЫС ДМ2",
|
143
|
+
"ТЫС КВ М ЖИЛ ПЛ": "ТЫС М2 ЖИЛ ПЛ",
|
144
|
+
"ТЫС КВ М ОБЩ ПЛ": "ТЫС М2 ОБЩ ПЛ",
|
145
|
+
"ТЫС КВ М УЧ ЛАБ ЗДАН": "ТЫС М2 УЧ ЛАБ ЗДАН",
|
146
|
+
"ТЫС КВ М": "ТЫС М2",
|
147
|
+
"ТЫС КВТ ЧАС": "ТЫС КВТ-Ч",
|
148
|
+
"ТЫС КУБ М В СУТ": "ТЫС М3/СУТ",
|
149
|
+
"ТЫС КУБ М": "ТЫС М3",
|
150
|
+
"ТЫС КУБ М/СУТ": "ТЫС М3/СУТ",
|
151
|
+
"ТЫС ЛОШ СИЛ": "ТЫС ЛС",
|
152
|
+
"ТЫС М КВ ЖИЛ ПЛ": "ТЫС М2 ЖИЛ ПЛ",
|
153
|
+
"ТЫС М КВ ОБЩ ПЛ": "ТЫС М2 ОБЩ ПЛ",
|
154
|
+
"ТЫС М КВ УЧ ЛАБ ЗДАН": "ТЫС М2 УЧ ЛАБ ЗДАН",
|
155
|
+
"ТЫС М КВ": "ТЫС М2",
|
156
|
+
"ТЫС М КУБ В СУТ": "ТЫС М3/СУТ",
|
157
|
+
"ТЫС М КУБ": "ТЫС М3",
|
158
|
+
"ТЫС М КУБ/СУТ": "ТЫС М3/СУТ",
|
159
|
+
"ТЫС М": "КМ",
|
160
|
+
"ТЫС М3 В СУТ": "ТЫС М3/СУТ",
|
161
|
+
"ТЫС ПАР В СМЕН": "ТЫС ПАР/СМЕН",
|
162
|
+
"ТЫС ПЛОТН КУБ М": "ТЫС ПЛОТН М3",
|
163
|
+
"ТЫС ПЛОТН М КУБ": "ТЫС ПЛОТН М3",
|
164
|
+
"ТЫС ПОЛЛ": "ТЫС ПОЛ Л",
|
165
|
+
"ТЫС ПОСЕЩ В СМЕН": "ТЫС ПОСЕЩ/СМЕН",
|
166
|
+
"ТЫС ПОСЕЩ В СМЕН": "ТЫС ПОСЕЩ/СМЕН",
|
167
|
+
"ТЫС ПТИЦЕ МЕСТ": "ТЫС ПТИЦЕМЕСТ",
|
168
|
+
"ТЫС СТД УСЛ КИРП": "ТЫС СТАНД УСЛ КИРП",
|
169
|
+
"ТЫС Т В ГОД": "ТЫС Т/ГОД",
|
170
|
+
"ТЫС Т В СЕЗ": "ТЫС Т/СЕЗ",
|
171
|
+
"ТЫС Т ПАР В ЧАС": "ТЫС Т ПАР/Ч",
|
172
|
+
"ТЫС Т ПАР/ЧАС": "ТЫС Т ПАР/Ч",
|
173
|
+
"ТЫС Т ПЕРЕРАБ В СУТ": "ТЫС Т ПЕРЕРАБ/СУТ",
|
174
|
+
"ТЫС Т ПЕРЕРАБ В СУТ": "ТЫС Т ПЕРЕРАБ/СУТ",
|
175
|
+
"ТЫС УСЛ БАНК В СМЕН": "ТЫС УСЛ БАНК/СМЕН",
|
176
|
+
"ТЫС УСЛ КВ М": "ТЫС УСЛ М2",
|
177
|
+
"ТЫС УСЛ КУБ М": "ТЫС УСЛ М3",
|
178
|
+
"ТЫС УСЛ М КВ": "ТЫС УСЛ М2",
|
179
|
+
"ТЫС УСЛ М КУБ": "ТЫС УСЛ М3",
|
180
|
+
"ТЫС Ц ПЕРЕРАБ В СУТ": "ТЫС Ц ПЕРЕРАБ/СУТ",
|
181
|
+
"ТЫС ЧЕЛ ДН": "ТЫС ЧЕЛ-ДН",
|
182
|
+
"ТЫС ЧЕЛ ЧАС": "ТЫС ЧЕЛ-Ч",
|
183
|
+
"ФУТ КВ": "ФУТ2",
|
184
|
+
"ФУТ КУБ": "ФУТ3",
|
185
|
+
"Ц И": "Ц США",
|
186
|
+
"Ц ПЕРЕРАБ В СУТ": "Ц ПЕРЕРАБ/СУТ",
|
187
|
+
"ЧЕЛ ДН": "ЧЕЛ-ДН",
|
188
|
+
"ЧЕЛ НА КВ КМ": "ЧЕЛ/КМ2",
|
189
|
+
"ЧЕЛ НА КВ М": "ЧЕЛ/М2",
|
190
|
+
"ЧЕЛ НА КМ КВ": "ЧЕЛ/КМ2",
|
191
|
+
"ЧЕЛ НА КМ2": "ЧЕЛ/КМ2",
|
192
|
+
"ЧЕЛ НА М КВ": "ЧЕЛ/М2",
|
193
|
+
"ЧЕЛ НА М2": "ЧЕЛ/М2",
|
194
|
+
"ЧЕЛ ЧАС": "ЧЕЛ-ЧАС",
|
195
|
+
"ЧЕЛ/КВ КМ": "ЧЕЛ/КМ2",
|
196
|
+
"ЧЕЛ/КВ М": "ЧЕЛ/М2",
|
197
|
+
"ЧЕЛ/КМ КВ": "ЧЕЛ/КМ2",
|
198
|
+
"ЧЕЛ/М КВ": "ЧЕЛ/М2"
|
199
|
+
}
|