pleme 0.0.1 → 0.0.7
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/.github/workflows/publish.yml +6 -31
- data/.rubocop.yml +9 -0
- data/.ruby-version +1 -1
- data/Gemfile.lock +3 -1
- data/Rakefile +4 -1
- data/bin/pleme +6 -0
- data/lib/pleme.rb +5 -0
- data/lib/pleme/abstract_translator.rb +82 -0
- data/lib/pleme/cli.rb +27 -0
- data/lib/pleme/gem/version.rb +1 -1
- data/lib/pleme/resource_translator.rb +25 -0
- data/lib/pleme/runner.rb +21 -0
- data/pleme.gemspec +2 -1
- metadata +25 -5
- data/dependencies.sh +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48d370a0da0fd00af864f52d45f27360035ae5e49e41474966419f4f3f20d77e
|
4
|
+
data.tar.gz: afed466bd87ca0e2dce72521765535ae8cc4ef8cf9d5dcfdf706bd24d4bd1bdf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49bf95a014a49a0eaaad4ef314879d04003ca8feb1a925bef9d950340c2a4b4eade954c0428ff256d0de664dfd8d31240272c9548d5eb1c167c55e588917e739
|
7
|
+
data.tar.gz: c2d2fc1f1dcd55e56181fb71ece8dbed245de1f38c3468bae553e563602d37bb730b07612251cc495955ac44cb5957f9dae2c1f039ca9c5fb01b9c9c3f98cbdd
|
@@ -15,34 +15,9 @@ jobs:
|
|
15
15
|
with:
|
16
16
|
ruby_version: '2.6'
|
17
17
|
|
18
|
-
- name:
|
19
|
-
run:
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
- name: install_bundle
|
25
|
-
run: gem install bundle
|
26
|
-
|
27
|
-
- name: install_dependencies
|
28
|
-
run: ./dependencies.sh
|
29
|
-
env:
|
30
|
-
GITHUB_TOKEN: ${{ secrets.LTK_GITHUB_TOKEN }}
|
31
|
-
|
32
|
-
- name: rake_test
|
33
|
-
run: rake test
|
34
|
-
|
35
|
-
- name: rake_build
|
36
|
-
run: rake build
|
37
|
-
|
38
|
-
- name: make gem directory
|
39
|
-
run: 'mkdir -p ~/.gem'
|
40
|
-
|
41
|
-
- name: credentials
|
42
|
-
run: 'echo ":github: Bearer ${{ secrets.LTK_GITHUB_TOKEN }}" >> ~/.gem/credentials'
|
43
|
-
|
44
|
-
- name: correct_permissions
|
45
|
-
run: 'chmod 600 ~/.gem/credentials'
|
46
|
-
|
47
|
-
- name: push package
|
48
|
-
run: gem push --key github --host https://rubygems.pkg.github.com/luisfelipemourapereira pkg/ltk-gem-*.gem
|
18
|
+
- name: release
|
19
|
+
run: |
|
20
|
+
set -e
|
21
|
+
gem install bundler
|
22
|
+
bundle
|
23
|
+
rake test
|
data/.rubocop.yml
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
AllCops:
|
2
|
+
NewCops: enable
|
3
|
+
|
1
4
|
Style/Documentation:
|
2
5
|
Enabled: false
|
3
6
|
|
@@ -51,3 +54,9 @@ Metrics/AbcSize:
|
|
51
54
|
|
52
55
|
Metrics/PerceivedComplexity:
|
53
56
|
Enabled: false
|
57
|
+
|
58
|
+
Style/SoleNestedConditional:
|
59
|
+
Enabled: false
|
60
|
+
|
61
|
+
Lint/MissingSuper:
|
62
|
+
Enabled: false
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.6.
|
1
|
+
2.6.3
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
pleme (0.0.
|
4
|
+
pleme (0.0.3)
|
5
|
+
docopt
|
5
6
|
|
6
7
|
GEM
|
7
8
|
remote: https://rubygems.org/
|
@@ -10,6 +11,7 @@ GEM
|
|
10
11
|
backport (1.1.2)
|
11
12
|
benchmark (0.1.0)
|
12
13
|
diff-lcs (1.4.4)
|
14
|
+
docopt (0.6.1)
|
13
15
|
e2mmap (0.1.0)
|
14
16
|
jaro_winkler (1.5.4)
|
15
17
|
maruku (0.7.3)
|
data/Rakefile
CHANGED
data/bin/pleme
ADDED
data/lib/pleme.rb
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
def add_bury_to_hash
|
4
|
+
Hash.send(:define_method, :bury) do |*args|
|
5
|
+
if args.count < 2
|
6
|
+
raise ArgumentError, '2 or more arguments required'
|
7
|
+
elsif args.count == 2
|
8
|
+
self[args[0]] = args[1]
|
9
|
+
else
|
10
|
+
arg = args.shift
|
11
|
+
self[arg] = {} unless self[arg]
|
12
|
+
self[arg].bury(*args) unless args.empty?
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class AbstractTranslation
|
18
|
+
attr_accessor :template,
|
19
|
+
:context,
|
20
|
+
:data,
|
21
|
+
:ancestors
|
22
|
+
|
23
|
+
def initialize
|
24
|
+
add_bury_to_hash
|
25
|
+
|
26
|
+
@ancestors = []
|
27
|
+
@template = {}
|
28
|
+
@context = nil
|
29
|
+
@data = {}
|
30
|
+
end
|
31
|
+
|
32
|
+
def inspect
|
33
|
+
@template
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
class AbstractTranslator
|
38
|
+
def abstract_method_missing(translation, method_name, keys, *args)
|
39
|
+
if translation.context.nil?
|
40
|
+
unless keys.include?(method_name.to_sym) ||
|
41
|
+
keys.include?(method_name.to_s)
|
42
|
+
raise ArgumentError.new(
|
43
|
+
method_name: method_name,
|
44
|
+
keys: keys
|
45
|
+
)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
keys.each do |key|
|
50
|
+
case translation.context
|
51
|
+
when key
|
52
|
+
translation.ancestors.push(method_name)
|
53
|
+
yield if block_given?
|
54
|
+
if args.length == 1
|
55
|
+
translation.template.bury(*translation.ancestors, args[0])
|
56
|
+
translation.ancestors.pop
|
57
|
+
elsif args.empty?
|
58
|
+
translation.ancestors.pop
|
59
|
+
else
|
60
|
+
raise ArgumentError,
|
61
|
+
"field: #{
|
62
|
+
method_name
|
63
|
+
} must have exactly one argument, had #{
|
64
|
+
args.length
|
65
|
+
}, which were #{args}"
|
66
|
+
end
|
67
|
+
end
|
68
|
+
next unless [key.to_s, key.to_sym].include?(method_name)
|
69
|
+
|
70
|
+
translation.ancestors.push(method_name.to_sym)
|
71
|
+
translation.ancestors.push(*args)
|
72
|
+
translation.context = method_name.to_sym
|
73
|
+
yield if block_given?
|
74
|
+
translation.ancestors = []
|
75
|
+
translation.context = nil
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def eval_in_context(content)
|
80
|
+
instance_eval(content)
|
81
|
+
end
|
82
|
+
end
|
data/lib/pleme/cli.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
###############################################################################
|
4
|
+
# cli
|
5
|
+
###############################################################################
|
6
|
+
|
7
|
+
require 'docopt'
|
8
|
+
require 'json'
|
9
|
+
require 'pleme/runner'
|
10
|
+
|
11
|
+
class Cli
|
12
|
+
def initialize
|
13
|
+
@doc = <<~DOCOPT
|
14
|
+
pleme.
|
15
|
+
|
16
|
+
Usage:
|
17
|
+
pleme
|
18
|
+
pleme dotfiles
|
19
|
+
DOCOPT
|
20
|
+
end
|
21
|
+
|
22
|
+
def run
|
23
|
+
Runner.new.run(**JSON.parse(JSON[Docopt.docopt(@doc)], symbolize_names: true))
|
24
|
+
rescue Docopt::Exit => e
|
25
|
+
puts e.message
|
26
|
+
end
|
27
|
+
end
|
data/lib/pleme/gem/version.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'pleme/abstract_translator'
|
4
|
+
|
5
|
+
class ResourceTranslation < AbstractTranslation
|
6
|
+
end
|
7
|
+
class ResourceTranslator < AbstractTranslator
|
8
|
+
attr_accessor :translation
|
9
|
+
attr_reader :resource_symbols
|
10
|
+
|
11
|
+
def initialize
|
12
|
+
@translation = ResourceTranslation.new
|
13
|
+
@resource_symbols = %i[resource]
|
14
|
+
end
|
15
|
+
|
16
|
+
def method_missing(method_name, *args, &block)
|
17
|
+
abstract_method_missing(
|
18
|
+
@translation,
|
19
|
+
method_name,
|
20
|
+
@resource_symbols,
|
21
|
+
*args,
|
22
|
+
&block
|
23
|
+
)
|
24
|
+
end
|
25
|
+
end
|
data/lib/pleme/runner.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
###############################################################################
|
4
|
+
# define a run interface that takes a dict
|
5
|
+
# then dispatch accordingly
|
6
|
+
###############################################################################
|
7
|
+
|
8
|
+
class Runner
|
9
|
+
def dotfiles(_spec)
|
10
|
+
hax_portal
|
11
|
+
end
|
12
|
+
|
13
|
+
def run(spec)
|
14
|
+
dotfiles(spec) unless spec[:dotfiles].nil?
|
15
|
+
end
|
16
|
+
|
17
|
+
# enter the world of hax
|
18
|
+
def hax_portal
|
19
|
+
instance_eval(File.read('hax.rb')) if File.exist?('hax.rb')
|
20
|
+
end
|
21
|
+
end
|
data/pleme.gemspec
CHANGED
@@ -19,7 +19,8 @@ Gem::Specification.new do |spec|
|
|
19
19
|
end
|
20
20
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
21
21
|
spec.require_paths = ['lib']
|
22
|
-
spec.required_ruby_version = '>= 2.6.
|
22
|
+
spec.required_ruby_version = '>= 2.6.3'
|
23
|
+
spec.add_dependency('docopt')
|
23
24
|
spec.add_development_dependency('rake')
|
24
25
|
spec.add_development_dependency('rspec')
|
25
26
|
spec.add_development_dependency('rubocop')
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pleme
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ''
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-09-
|
11
|
+
date: 2020-09-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: docopt
|
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'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: rake
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -69,7 +83,8 @@ dependencies:
|
|
69
83
|
description: Pleme
|
70
84
|
email:
|
71
85
|
- " luis AT pleme DOT com"
|
72
|
-
executables:
|
86
|
+
executables:
|
87
|
+
- pleme
|
73
88
|
extensions: []
|
74
89
|
extra_rdoc_files: []
|
75
90
|
files:
|
@@ -83,9 +98,14 @@ files:
|
|
83
98
|
- Gemfile.lock
|
84
99
|
- README.md
|
85
100
|
- Rakefile
|
86
|
-
-
|
101
|
+
- bin/pleme
|
87
102
|
- init.sh
|
103
|
+
- lib/pleme.rb
|
104
|
+
- lib/pleme/abstract_translator.rb
|
105
|
+
- lib/pleme/cli.rb
|
88
106
|
- lib/pleme/gem/version.rb
|
107
|
+
- lib/pleme/resource_translator.rb
|
108
|
+
- lib/pleme/runner.rb
|
89
109
|
- pkg/ltk-gem-0.0.1.gem
|
90
110
|
- pleme.gemspec
|
91
111
|
- scripts/init.sh
|
@@ -102,7 +122,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
102
122
|
requirements:
|
103
123
|
- - ">="
|
104
124
|
- !ruby/object:Gem::Version
|
105
|
-
version: 2.6.
|
125
|
+
version: 2.6.3
|
106
126
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
127
|
requirements:
|
108
128
|
- - ">="
|
data/dependencies.sh
DELETED