middleman-ya_lorem_ja 0.0.2 → 0.0.3

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
  SHA1:
3
- metadata.gz: cd215f63eb865660c549565c3d067b4a48107892
4
- data.tar.gz: 516ba19d25390f9e6be45dedbc171fa254b58d98
3
+ metadata.gz: fc24b3fba7ae575aea5f5bd676730f1eadba19cb
4
+ data.tar.gz: 6e10933c024dc696b9bf22a25ded771a78d0d6da
5
5
  SHA512:
6
- metadata.gz: fc2cbea03212230f243aa91b85a9f06a665910aa09fb99a03a8e59c7fa16ebfa9b1106c34523b741001be52d96a487e6c9373a3821bab4c10c67b77926b5509c
7
- data.tar.gz: 1d771a2d103c506a5996af31663f2b8de32a02c3d0f1f3a640cd18ef69f28a73d6cfb7c1a9bcc5a584953760615910b6900ef30ebfe03a1490e9d42d755f109e
6
+ metadata.gz: f3f10ef94327ae8fa57f3e5d8f47c66de3d08934034e64111a969f03e31faa860a9b9469029ab5b453b4bd49bd5133e0c8bcdf8463cd0d4cdafefa8f8e6bbad9
7
+ data.tar.gz: 4d3466fc13266d841a830fac40738b6e28ad436de6a45037a8ddd2e6aed1235bd6311ea000034232e1c68f519913417c309f34c17b18a888f6794b236267df19
data/README.md CHANGED
@@ -2,13 +2,20 @@
2
2
 
3
3
  Middleman 用の日本語 lorem 拡張です。
4
4
 
5
- ## インストール方法 ##
5
+ ## Installation
6
6
 
7
- Gemfile に以下を追加し、"bundle install"してください。
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'middleman-ya_lorem_ja'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install middleman-ya_lorem_ja
8
18
 
9
- ```
10
- gem "middleman-ya_lorem_ja" , :git => 'git://github.com/tanalab2/middleman-ya_lorem_ja'
11
- ```
12
19
 
13
20
  あとは、 middleman の config.rb に以下を追加し、 ya_lorem_ja を有効化してください。
14
21
 
@@ -16,12 +23,21 @@ gem "middleman-ya_lorem_ja" , :git => 'git://github.com/tanalab2/middleman-ya_lo
16
23
  activate :ya_lorem_ja
17
24
  ```
18
25
 
26
+ また、以下により、文章リソースを変更できます。(:resource_nameを指定しない場合は、坂口安吾「風博士」が使用されます。)
27
+
28
+ ```ruby
29
+ # 宮沢賢治「注文の多い料理店」を使用する場合
30
+ activate :ya_lorem_ja, :resource_name => :chuumon_no_ooi_ryouriten
31
+ ```
32
+
19
33
  ya_lorem_ja が有効になり、 erb ファイルなどで、
20
34
  lorem_ja オブジェクトが使用できるようになります。
21
35
 
22
36
  erb に以下を記載した場合は、
23
37
 
24
38
  ``` ruby
39
+ <h1><%= lorem_ja.date%></h1>
40
+ <img src="<%= lorem_ja.image('200x200')%>"/>
25
41
  <h1><%= lorem_ja.word %></h1>
26
42
  <h2><%= lorem_ja.words(5) %></h2>
27
43
  <p><%= lorem_ja.sentence %></p>
@@ -35,6 +51,8 @@ erb に以下を記載した場合は、
35
51
  以下のように出力されます。
36
52
 
37
53
  ``` html
54
+ <h1>2001年03月19日</h1>
55
+ <img src="http://placehold.it/200x200"/>
38
56
  <h1>風博士の遺書</h1>
39
57
  <h2>諸氏よ、誰人かよく蛸を懲す勇士なきや</h2>
40
58
  <p>余の妻は麗わしきこと高山植物の如く、実に単なる植物ではなかったのである!</p>
@@ -87,13 +105,6 @@ erb に以下を記載した場合は、
87
105
 
88
106
  * [lorem.rb](https://github.com/middleman/middleman/middleman-core/lib/middleman-more/extensions/lorem.rb )
89
107
 
90
- * [坂口安吾「風博士」](http://www.aozora.gr.jp/cards/001095/card42616.html)
91
-
92
- 文の配列は、青空文庫から拝借しました。
93
-
94
- * [middleman-ya_lorem_ja を使用したサンプルページ](http://discountinnovations.com/articles/middleman/lorem_ja.html)
95
-
96
-
97
108
  ## License
98
109
  * MIT
99
110
 
@@ -13,7 +13,5 @@ Feature: Lorem generating helper
13
13
  Then I should see "#paragraphs3" contents have "3" paragraphs
14
14
  Then I should see "#date" contents match "\d{4}年\d{2}月\d{2}日"
15
15
  Then I should see "#image" contents match "^http://placehold.it/20x20"
16
-
17
-
18
-
16
+ Then I should see "#resource_name" contents match "kazehakase"
19
17
 
@@ -0,0 +1,21 @@
1
+ Feature: Lorem generating helper
2
+
3
+ Scenario: Lorem Helper
4
+ Given the Server is running at "chuumon_no_ooi_ryouriten"
5
+ Then going to "/word.html" should not raise an exception
6
+ Then I should see "#word" contents have over "2" chars
7
+ Then I should see "#words5" contents have over "10" chars
8
+ Then I should see "#sentence" contents have over "#{2*6}" chars
9
+ Then I should see "#sentence" contents have "1" sentences
10
+ Then I should see "#sentences3" contents have over "6" chars
11
+ Then I should see "#sentences3" contents have "3" sentences
12
+ Then I should see "#paragraph" contents have "1" paragraphs
13
+ Then I should see "#paragraphs3" contents have "3" paragraphs
14
+ Then I should see "#date" contents match "\d{4}年\d{2}月\d{2}日"
15
+ Then I should see "#image" contents match "^http://placehold.it/20x20"
16
+ Then I should see "#resource_name" contents match "chuumon_no_ooi_ryouriten"
17
+
18
+
19
+
20
+
21
+
@@ -0,0 +1,8 @@
1
+ After do |scenario|
2
+ # Do something after each scenario.
3
+ # The +scenario+ argument is optional, but
4
+ # if you use it, you can inspect status with
5
+ # the #failed?, #passed? and #exception methods.
6
+
7
+ ::Middleman::YaLoremJa::Extension::YaLoremJaObj.reset_instance
8
+ end
@@ -0,0 +1 @@
1
+ activate :ya_lorem_ja, :resource_name => :chuumon_no_ooi_ryouriten
@@ -0,0 +1,10 @@
1
+ <div id="#resource_name"><%= lorem_ja.resource_name %></div>
2
+ <div id="#word"><%= lorem_ja.word %></div>
3
+ <div id="#words5"><%= lorem_ja.words(5) %></div>
4
+ <div id="#sentence"><%= lorem_ja.sentence %></div>
5
+ <div id="#sentences3"><%= lorem_ja.sentences(3) %></div>
6
+ <div id="#paragraph"><%= lorem_ja.paragraph %></div>
7
+ <div id="#paragraphs3"><%= lorem_ja.paragraphs(3) %></div>
8
+ <div id="#date"><%= lorem_ja.date %></div>
9
+ <div id="#image"><%= lorem_ja.image("20x20") %></div>
10
+
@@ -1,3 +1,4 @@
1
+ <div id="#resource_name"><%= lorem_ja.resource_name %></div>
1
2
  <div id="#word"><%= lorem_ja.word %></div>
2
3
  <div id="#words5"><%= lorem_ja.words(5) %></div>
3
4
  <div id="#sentence"><%= lorem_ja.sentence %></div>
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  require 'ya_lorem_ja'
3
- require 'singleton'
3
+ require 'thread'
4
4
 
5
5
  # -*- coding: utf-8 -*-
6
6
  # https://github.com/middleman/middleman/blob/v3-stable/middleman-core/lib/middleman-more/extensions/lorem.rb
@@ -8,7 +8,12 @@ require 'singleton'
8
8
  module Middleman
9
9
  module YaLoremJa
10
10
  class Extension < ::Middleman::Extension
11
- option :my_option, 'default', 'An example option'
11
+
12
+ EXTENSION_NAME = :ya_lorem_ja
13
+ option :resource_name, ::YaLoremJa::Lorem::DEFAULT_RESOURCE_NAME, 'resource name'
14
+ option :char_count_range, ::YaLoremJa::Lorem::DEFAULT_CHAR_COUNT_RANGE_IN_WORD, 'character count range in a word'
15
+ option :word_count_range, ::YaLoremJa::Lorem::DEFAULT_WORD_COUNT_RANGE_IN_SENTENCE, 'word count range in a sentence'
16
+ option :sentence_count_range, ::YaLoremJa::Lorem::DEFAULT_SENTENCE_COUNT_RANGE_IN_PARAGRAPH, 'sentence count range in a paragraph'
12
17
 
13
18
  def initialize(app, options_hash={}, &block)
14
19
  # Call super to build options from the options_hash
@@ -18,7 +23,8 @@ module Middleman
18
23
  # require 'necessary/library'
19
24
 
20
25
  # set up your extension
21
- # puts options.my_option
26
+ # puts options.my_option
27
+ app.set EXTENSION_NAME, options
22
28
  end
23
29
 
24
30
  def after_configuration
@@ -35,12 +41,37 @@ module Middleman
35
41
  # end
36
42
 
37
43
  class YaLoremJaObj < ::YaLoremJa::Lorem
38
- include Singleton
44
+ @@singleton__instance__ = nil
45
+ @@singleton__mutex__ = Mutex.new
46
+ def self.instance(resource_name=DEFAULT_RESOURCE_NAME, char_count_range=DEFAULT_CHAR_COUNT_RANGE_IN_WORD, word_count_range=DEFAULT_WORD_COUNT_RANGE_IN_SENTENCE, sentence_count_range=DEFAULT_SENTENCE_COUNT_RANGE_IN_PARAGRAPH)
47
+ return @@singleton__instance__ if @@singleton__instance__
48
+ @@singleton__mutex__.synchronize {
49
+ return @@singleton__instance__ if @@singleton__instance__
50
+ @@singleton__instance__ = new(resource_name, char_count_range, word_count_range, sentence_count_range)
51
+ }
52
+ @@singleton__instance__
53
+ end
54
+
55
+ def self.reset_instance
56
+ @@singleton__mutex__.synchronize {
57
+ @@singleton__instance__ = nil if @@singleton__instance__
58
+ }
59
+ end
60
+
61
+ private
62
+ def initialize(resource_name, char_count_range, word_count_range, sentence_count_range)
63
+ super(resource_name, char_count_range, word_count_range, sentence_count_range)
64
+ end
65
+ private_class_method :new
39
66
  end
40
67
 
41
68
  helpers do
42
69
  def lorem_ja
43
- return YaLoremJaObj.instance
70
+ ext_settings = config[::Middleman::YaLoremJa::Extension::EXTENSION_NAME]
71
+ return YaLoremJaObj.instance(ext_settings.resource_name,
72
+ ext_settings.char_count_range,
73
+ ext_settings.word_count_range,
74
+ ext_settings.sentence_count_range)
44
75
  end
45
76
  end
46
77
  end
@@ -52,4 +83,4 @@ end
52
83
  # version of class name
53
84
 
54
85
  # MyExtension.register(:my_extension)
55
- ::Middleman::YaLoremJa::Extension.register(:ya_lorem_ja)
86
+ ::Middleman::YaLoremJa::Extension.register(::Middleman::YaLoremJa::Extension::EXTENSION_NAME)
@@ -1,6 +1,6 @@
1
1
  module Middleman
2
2
  # GeoPattern
3
3
  module YaLoremJa
4
- VERSION = '0.0.2'
4
+ VERSION = '0.0.3'
5
5
  end
6
6
  end
@@ -20,5 +20,5 @@ Gem::Specification.new do |s|
20
20
  s.add_runtime_dependency("middleman-core", [">= 3.3.12"])
21
21
 
22
22
  # Additional dependencies
23
- s.add_runtime_dependency("ya_lorem_ja", ">= 0.0.2")
23
+ s.add_runtime_dependency("ya_lorem_ja", ">= 0.0.3")
24
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-ya_lorem_ja
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - kenji tanaka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-06 00:00:00.000000000 Z
11
+ date: 2015-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: middleman-core
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.0.2
33
+ version: 0.0.3
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.0.2
40
+ version: 0.0.3
41
41
  description: Yet Another Japanese Lorem Ipsum generator For Middleman
42
42
  email:
43
43
  executables: []
@@ -49,7 +49,11 @@ files:
49
49
  - README.md
50
50
  - Rakefile
51
51
  - features/helpers_ya_lorem_ja.feature
52
+ - features/helpers_ya_lorem_ja_change_resource.feature
52
53
  - features/support/env.rb
54
+ - features/support/hook.rb
55
+ - fixtures/chuumon_no_ooi_ryouriten/config.rb
56
+ - fixtures/chuumon_no_ooi_ryouriten/source/word.html.erb
53
57
  - fixtures/test-app/config.rb
54
58
  - fixtures/test-app/source/word.html.erb
55
59
  - lib/middleman-ya_lorem_ja.rb
@@ -79,11 +83,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
83
  version: '0'
80
84
  requirements: []
81
85
  rubyforge_project:
82
- rubygems_version: 2.2.2
86
+ rubygems_version: 2.4.5
83
87
  signing_key:
84
88
  specification_version: 4
85
89
  summary: Yet Another Japanese Lorem Ipsum generator For Middleman
86
90
  test_files:
87
91
  - features/helpers_ya_lorem_ja.feature
92
+ - features/helpers_ya_lorem_ja_change_resource.feature
88
93
  - features/support/env.rb
94
+ - features/support/hook.rb
89
95
  has_rdoc: