codeless_code 0.1.3 → 0.1.4

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 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