codeless_code 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: afee543f50db04012a4db1f18ed371f6690178efce9b96a14b57f25154c68ce6
4
- data.tar.gz: 2cfab8aa161a6f82e181deadfa3e76866742401f35f577a003e06405e27f1b45
3
+ metadata.gz: bc18a71aa3e43895db1c702116523d456e8f583efcb341e4c8eb74d7a764a22e
4
+ data.tar.gz: '05595e53a98c72b33a7d776bdd4f5795ba608d7c6b333b6d6cc6b67308e57828'
5
5
  SHA512:
6
- metadata.gz: ac74ffd3d88ff3e9e50114e8f0e288e6ebefe95f94e644325326d57bb5c09914df561b94f26143d7e07a63f14433c8dfb03e8863b6fb5627d00ade0efc8fe3fe
7
- data.tar.gz: 3e727a22af1ab6f3f7b2eae59ff708016e32673c07de96a7445feafea214e5c0ae28fc1463b50e4b16f8c6e758d54e439321b95679aa0bc05d2766c8ff59d973
6
+ metadata.gz: a884f539c917ad7d2c9e1a1aac1b11a29abd8f28c4a9cb0d5418cc3a7f9c7602e11ff2d962b796557dce82a4e85e84d350224f18ecefc3e07f87d0c55317c37b
7
+ data.tar.gz: 4000cd5a1e2613e04c0525fdd382b4c779e4b381b6c90d5b06a805935d545529793358d47794ae58851b215a4412983f6fa4894554ccf02f2c8731d2a0b99527
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.1.4
@@ -2,11 +2,11 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: codeless_code 0.1.3 ruby lib
5
+ # stub: codeless_code 0.1.4 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "codeless_code".freeze
9
- s.version = "0.1.3"
9
+ s.version = "0.1.4"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
@@ -18,19 +18,17 @@ module CodelessCode
18
18
  # extend Forwardable
19
19
  include Enumerable
20
20
 
21
- attr_accessor :root_dir
22
-
23
- def initialize(root_dir: DEFAULT_DATA)
24
- self.root_dir = root_dir
21
+ def initialize(root_dir)
22
+ @root_dir = root_dir
25
23
  end
26
24
 
27
25
  def languages
28
- @languages ||= root_dir.glob('*-*')
29
- .select(&:directory?)
30
- .map { |dir| dir.basename.to_s.split('-').first }
31
- .uniq
32
- .map(&:to_sym)
33
- .sort
26
+ @languages ||= @root_dir.glob('*-*')
27
+ .select(&:directory?)
28
+ .map { |dir| dir.basename.to_s.split('-').first }
29
+ .uniq
30
+ .map(&:to_sym)
31
+ .sort
34
32
  end
35
33
 
36
34
  # @return [LanguageSet]
@@ -44,7 +42,7 @@ module CodelessCode
44
42
  end
45
43
 
46
44
  def language_sets
47
- languages.map { |lang| LanguageSet.new(lang) }
45
+ languages.map { |lang| LanguageSet.new(lang, root_dir: @root_dir) }
48
46
  end
49
47
 
50
48
  def fable_sets
@@ -31,7 +31,7 @@ module CodelessCode
31
31
  elsif options.key?(:version)
32
32
  (io || $stdout).puts version_str
33
33
  elsif options.key?(:list_translations)
34
- Commands::ListTranslations.new(io: io).call
34
+ Commands::ListTranslations.new(catalog, io: io).call
35
35
  else
36
36
  filter_fables(io)
37
37
  end
@@ -49,15 +49,19 @@ module CodelessCode
49
49
  filter = Filters::FromOptions.new(options)
50
50
  fallback = options[:trace] ? nil : Formats::Raw
51
51
 
52
- Commands::FilterFables.new(filter, output_format, io: io,
53
- fallback_filter: fallback)
54
- .call(&method(:select))
52
+ cmd = Commands::FilterFables.new(filter, output_format, io: io,
53
+ fallback_filter: fallback)
54
+ cmd.call(catalog, &method(:select))
55
55
  end
56
56
 
57
57
  def options
58
58
  @options ||= Options.new(@command_name, @args)
59
59
  end
60
60
 
61
+ def catalog
62
+ @catalog ||= Catalog.new(options.data_dir)
63
+ end
64
+
61
65
  def io_open
62
66
  if (path = options[:output])
63
67
  path == '-' ? $stdout.dup : File.open(path, 'w')
@@ -25,8 +25,8 @@ module CodelessCode
25
25
  @fallback_filter = fallback_filter
26
26
  end
27
27
 
28
- def call
29
- fables = filtered_fables
28
+ def call(catalog)
29
+ fables = catalog.select(@filter)
30
30
  fables = yield fables if block_given?
31
31
 
32
32
  case fables.size
@@ -41,11 +41,6 @@ module CodelessCode
41
41
 
42
42
  private
43
43
 
44
- # @return [Enumerable<Fable>]
45
- def filtered_fables
46
- Catalog.new.select(@filter)
47
- end
48
-
49
44
  def show(fable)
50
45
  if @io.nil? && ENV.key?('PAGER')
51
46
  pager(ENV['PAGER'], fable)
@@ -18,12 +18,13 @@ module CodelessCode
18
18
  class ListTranslations
19
19
  # @param io [IO] if given, the output will be written to this stream,
20
20
  # otherwise STDOUT will be used
21
- def initialize(io: nil)
21
+ def initialize(catalog, io: nil)
22
+ @catalog = catalog
22
23
  @io = io
23
24
  end
24
25
 
25
26
  def call
26
- Catalog.new.language_sets.each do |set|
27
+ @catalog.language_sets.each do |set|
27
28
  translators = set.fable_sets.map(&:translator).sort
28
29
  puts format('%s %s', set.lang, translators.join(', '))
29
30
  end
@@ -60,7 +60,7 @@ module CodelessCode
60
60
 
61
61
  def fallback_lang
62
62
  lang = ENV['LANG']&.split(/_|\./)&.first&.downcase&.to_sym
63
- Catalog.new.languages.include?(lang) ? lang : :en
63
+ Catalog.new(@opts.data_dir).languages.include?(lang) ? lang : :en
64
64
  end
65
65
 
66
66
  def non_defaults_enabled?
@@ -25,7 +25,7 @@ module CodelessCode
25
25
  attr_accessor :lang, :root_dir
26
26
  def_delegator :fable_sets, :each
27
27
 
28
- def initialize(lang, root_dir: DEFAULT_DATA)
28
+ def initialize(lang, root_dir:)
29
29
  self.lang = lang
30
30
  self.root_dir = root_dir
31
31
  end
@@ -47,6 +47,10 @@ module CodelessCode
47
47
  !!self[key]
48
48
  end
49
49
 
50
+ def data_dir
51
+ @data_dir ||= self[:path] ? Pathname.new(self[:path]) : DEFAULT_DATA
52
+ end
53
+
50
54
  def help
51
55
  opts(suppress: true).to_s
52
56
  end
@@ -13,6 +13,8 @@
13
13
  #
14
14
  # You should have received a copy of the GNU General Public License along with
15
15
  # this program. If not, see <https://www.gnu.org/licenses/>.
16
+ require 'colorized_string'
17
+
16
18
  module CodelessCode
17
19
  module Renderers
18
20
  class Page
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codeless_code
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Sangster