oa_templater 0.5.5

Sign up to get free protection for your applications and to get access to all the features.
File without changes
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: UTF-8
3
+
4
+ CIT_SIMPLE = '<w:p><w:pPr><w:pStyle w:val="Paragraph" /><w:spacing w:line="360" w:lineRule="atLeast"/></w:pPr><w:r><w:t xml:space="preserve">%s. %s</w:t></w:r></w:p>'
5
+ CIT_WITH_PRIME = '<w:p><w:pPr><w:pStyle w:val="Paragraph" /><w:spacing w:line="360" w:lineRule="atLeast"/></w:pPr><w:r><w:t xml:space="preserve">%s. %s</w:t></w:r></w:p><w:p><w:pPr><w:pStyle w:val="Paragraph" /><w:spacing w:line="360" w:lineRule="atLeast"/></w:pPr><w:r><w:t xml:space="preserve">[</w:t></w:r><w:r><w:rPr><w:i /></w:rPr><w:t xml:space="preserve">%s\'. </w:t></w:r><w:r><w:t xml:space="preserve">]</w:t></w:r></w:p>'
6
+ CIT_WITH_PRIME_PCT = '<w:p><w:pPr><w:pStyle w:val="Paragraph" /><w:spacing w:line="360" w:lineRule="atLeast"/></w:pPr><w:r><w:t xml:space="preserve">%s. %s</w:t></w:r></w:p><w:p><w:pPr><w:pStyle w:val="Paragraph" /><w:spacing w:line="360" w:lineRule="atLeast"/></w:pPr><w:r><w:t xml:space="preserve">[</w:t></w:r><w:r><w:rPr><w:i /></w:rPr><w:t xml:space="preserve">%s\'. PCT International Publication No. WO X; Corresponding English language application</w:t></w:r><w:r><w:t xml:space="preserve">]</w:t></w:r></w:p>'
7
+ CIT_MISS = '<w:p><w:pPr><w:pStyle w:val="Paragraph" /><w:spacing w:line="360" w:lineRule="atLeast"/></w:pPr><w:r><w:t xml:space="preserve">%s</w:t></w:r></w:p>'
8
+ HEADERS_FMT = '<w:p><w:pPr><w:tabs><w:tab w:val="clear" w:pos="864"/><w:tab w:val="left" w:pos="567"/></w:tabs><w:kinsoku w:val="0"/><w:spacing w:line="360" w:lineRule="atLeast"/></w:pPr><w:r w:rsidR="006A661C"><w:rPr><w:b/><w:noProof/></w:rPr><w:t>%s</w:t></w:r></w:p>'
9
+ STOPSTARTTAB = '</w:t></w:r></w:p><w:p w:rsidR="001827DB" w:rsidRDefault="006B1000" w:rsidP="00C26A48"><w:pPr><w:tabs><w:tab w:val="clear" w:pos="864"/><w:tab w:val="left" w:pos="567"/></w:tabs><w:spacing w:line="360" w:lineRule="atLeast"/></w:pPr><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr><w:tab/></w:r><w:r w:rsidR="00014172"><w:t>'
10
+ STOPSTARTP = '</w:t></w:r></w:p><w:p w:rsidR="001827DB" w:rsidRDefault="00C26A48" w:rsidP="00C26A48"><w:pPr><w:tabs><w:tab w:val="clear" w:pos="864"/><w:tab w:val="left" w:pos="567"/></w:tabs><w:spacing w:line="360" w:lineRule="atLeast"/></w:pPr><w:r><w:rPr><w:rFonts w:hint="eastAsia"/></w:rPr></w:r><w:r w:rsidR="00014172"><w:t>'
11
+
12
+
13
+ FINALWML = '<w:p w:rsidR="00D6029F" w:rsidRPr="00D6029F" w:rsidRDefault="00D6029F" w:rsidP="00D6029F"><w:pPr><w:widowControl w:val="0"/><w:tabs><w:tab w:val="clear" w:pos="864"/></w:tabs><w:kinsoku w:val="0"/><w:spacing w:line="360" w:lineRule="atLeast"/><w:jc w:val="center"/><w:rPr><w:rFonts w:hint="eastAsia"/><w:b/><w:noProof/></w:rPr></w:pPr><w:r><w:rPr><w:rFonts w:hint="eastAsia"/><w:b/><w:noProof/></w:rPr><w:t>&lt;</w:t></w:r><w:r w:rsidR="00344336" w:rsidRPr="00D6029F"><w:rPr><w:b/><w:noProof/></w:rPr><w:t>Reason for Making the Notice of Reasons for Rejection Final</w:t></w:r><w:r><w:rPr><w:rFonts w:hint="eastAsia"/><w:b/><w:noProof/></w:rPr><w:t>></w:t></w:r></w:p><w:p w:rsidR="00BA3DB3" w:rsidRDefault="00BA3DB3" w:rsidP="00467FCF"><w:pPr><w:widowControl w:val="0"/><w:tabs><w:tab w:val="clear" w:pos="864"/></w:tabs><w:kinsoku w:val="0"/><w:spacing w:line="360" w:lineRule="atLeast"/><w:rPr><w:rFonts w:hint="eastAsia"/><w:noProof/></w:rPr></w:pPr></w:p><w:p w:rsidR="00693616" w:rsidRDefault="00344336" w:rsidP="00693616"><w:pPr><w:widowControl w:val="0"/><w:tabs><w:tab w:val="clear" w:pos="864"/></w:tabs><w:kinsoku w:val="0"/><w:spacing w:line="360" w:lineRule="atLeast"/><w:ind w:firstLine="567"/><w:rPr><w:rFonts w:hint="eastAsia"/><w:noProof/></w:rPr></w:pPr><w:r><w:rPr><w:noProof/></w:rPr><w:t>This Notice of Reasons for Rejection only gives notification of the existence of reasons for rejection made necessary by the amendments made in response to the previous Notice of Reasons for Rejection.</w:t></w:r></w:p><w:p w:rsidR="00693616" w:rsidRDefault="00693616" w:rsidP="00693616"><w:pPr><w:widowControl w:val="0"/><w:tabs><w:tab w:val="clear" w:pos="864"/></w:tabs><w:kinsoku w:val="0"/><w:spacing w:line="360" w:lineRule="atLeast"/><w:ind w:firstLine="567"/><w:rPr><w:rFonts w:hint="eastAsia"/><w:noProof/></w:rPr></w:pPr></w:p><w:p w:rsidR="00693616" w:rsidRDefault="00344336" w:rsidP="00693616"><w:pPr><w:widowControl w:val="0"/><w:tabs><w:tab w:val="clear" w:pos="864"/></w:tabs><w:kinsoku w:val="0"/><w:spacing w:line="360" w:lineRule="atLeast"/><w:ind w:firstLine="567"/><w:rPr><w:rFonts w:hint="eastAsia"/><w:noProof/></w:rPr></w:pPr><w:r><w:rPr><w:noProof/></w:rPr><w:t>This Notice of Reasons for Rejection only gives notification of the existence of reasons for rejection relating to slight deficiencies in the descriptions that still remain because no notification was previously given of reasons for rejection regarding such slight deficiencies in the descriptions even though these deficiencies were present.</w:t></w:r></w:p><w:p w:rsidR="00693616" w:rsidRDefault="00693616" w:rsidP="00693616"><w:pPr><w:widowControl w:val="0"/><w:tabs><w:tab w:val="clear" w:pos="864"/></w:tabs><w:kinsoku w:val="0"/><w:spacing w:line="360" w:lineRule="atLeast"/><w:ind w:firstLine="567"/><w:rPr><w:rFonts w:hint="eastAsia"/><w:noProof/></w:rPr></w:pPr></w:p><w:p w:rsidR="00256A20" w:rsidRDefault="00344336" w:rsidP="00693616"><w:pPr><w:widowControl w:val="0"/><w:tabs><w:tab w:val="clear" w:pos="864"/></w:tabs><w:kinsoku w:val="0"/><w:spacing w:line="360" w:lineRule="atLeast"/><w:ind w:firstLine="567"/></w:pPr><w:r><w:rPr><w:noProof/></w:rPr><w:t>This Notice of Reasons for Rejection only gives notification of the following reasons for rejection.</w:t></w:r><w:r><w:rPr><w:noProof/></w:rPr><w:br/></w:r><w:r><w:rPr><w:noProof/></w:rPr><w:br/><w:t xml:space="preserve">1. </w:t></w:r><w:r w:rsidR="00693616"><w:rPr><w:rFonts w:hint="eastAsia"/><w:noProof/></w:rPr><w:tab/></w:r><w:r><w:rPr><w:noProof/></w:rPr><w:t>Reasons for rejection for which notification was made necessary by the amendments made in response to the first Notice of Reasons for Rejection (corresponding to "A" among the reasons for rejection mentioned above).</w:t></w:r><w:r><w:rPr><w:noProof/></w:rPr><w:br/><w:t xml:space="preserve">2. </w:t></w:r><w:r w:rsidR="00693616"><w:rPr><w:rFonts w:hint="eastAsia"/><w:noProof/></w:rPr><w:tab/></w:r><w:r><w:rPr><w:noProof/></w:rPr><w:t>Reasons for rejection relating to the fact that, although slight deficiencies in the descriptions existed, since notification was not given of the reasons for rejection relating to those deficiencies, such slight deficiencies in the descriptions still remain (corresponding to "B" among the reasons for rejection mentioned ab</w:t></w:r><w:bookmarkStart w:id="0" w:name="_GoBack"/><w:bookmarkEnd w:id="0"/><w:r><w:rPr><w:noProof/></w:rPr><w:t>ove).</w:t></w:r><w:r><w:rPr><w:noProof/></w:rPr><w:br/></w:r></w:p>a'
@@ -0,0 +1,36 @@
1
+ module OaTemplater
2
+ R_JPL_DETECT = /理\p{Z}?由.*\p{N}?(?:(|\()[^\))\nに可サ拡引性]*(?:)|\))+?/
3
+ R_HEADER_SEPARATOR_DETECT = /\p{N}(?:(|\()*[^\))\n]*(?:)|\))*(\s*:|\s*:|\s*\/|\s*/|\s*・| | )(?:請求項|引用文献|理由|先願|実施例)/
4
+ R_ARTICLE_SECTION = /この出願は、次の理由.*?(?:(?:\p{Z}記\p{Z})|備考)/m
5
+ R_HEADER_SEPARATOR = /\s*:|\s*:|\s*・|\/|/| | /
6
+ R_HEADER_REASONS = '(?:^.{0,2}理\p{Z}*由\p{Z}*\p{N}*\p{Z}*(?:((?:特許[^\))\nに引性]*|新規性|同日出願|産業上の利用可能性|サポート要件|拡大先願|進歩性|実施可能要件|発明の単一性|明確性)))(?:(?:及び|、) .{0,2}理\p{Z}*>由\p{Z}*\p{N}+\p{Z}*(?:((?:新規性|拡大先願|同日出願|産業上の利用可能性|サポート要件|進歩性|実施可能要件|発明の単一性|明確性))))*(?:(?:及び|、) .{0,2}理\p{Z}*由\p{Z}*\p{N}+\p{Z}*(?:((?:新規性|拡大 先願|同日出願|産業上の利用可能性|サポート要件|進歩性|実施可能要件|発明の単一性|明確性))))* | (?:.{0,2}理\p{Z}*由\p{Z}*\p{N}{0,2}\p{Z}*(特許法第?\p{N}{0,2}条第?\p{N}{0,2}項))(?:について) )'
7
+ R_HEADER_TYPES = /(
8
+ #{R_HEADER_REASONS}
9
+ | (?:^\s*$)
10
+ | (?:^.{0,2}(?:本願)*(?:請\p{Z}*求\p{Z}*項|引用文献|理\p{Z}*由|備\p{Z}*考|実\p{Z}*施\p{Z}*例)(?:\p{Z}*.*\p{N}\p{Z}*)(?:[-,\p{N},、]\r*\n[-,\p{N},、].*\p{N})*(?:(?:について)*>|)|]|】)*(?::|:$)*)
11
+ | (?:(?:..)?(?:<|(|[|【)(?:本願)*(?:請\p{Z}*求\p{Z}*項|引用文献|理\p{Z}*由|備\p{Z}*考|実\p{Z}*施\p{Z}*例)(?:\p{Z}*.*\p{N},*\p{Z}*)+:*(?:(?:について)*>|)|]|】))
12
+ | (?:(?:^.{0,4})((?:<|(|[|【)(?:本願)*(?:請\p{Z}*求\p{Z}*項|引用文献|理\p{Z}*由|備\p{Z}*考|実\p{Z}*施\p{Z}*例)\p{N}.*?(?:について)?(?:)).{0,4}$))
13
+ | (?:^.{0,4}(?:本\p{Z}*願)*(?:請\p{Z}*求\p{Z}*項|引用文献|理\p{Z}*由|実\p{Z}*施\p{Z}*例):*:*.*\p{N}(?:について)*\p{Z}*$)
14
+ | (?:(?:・)*備考:*:*)
15
+ | (?:^\p{Z}*(\p{N}*\p{L}*)(?:について)*$)
16
+ | (?:(^\s*・{0,1}理由.*[A-Z]))
17
+ )/x
18
+ R_RESPONSE_PERIOD = /、この通知書の発送の日から60日以内に意見書を提出して/
19
+ R_AND_AMENDMENTS = /なお、意見書.{0,4}?手続補正書の内容を検討しました/
20
+ R_CITATIONS_START = /(?<![\p{N}・])(引用文献(?:等については.{0,3}を参照.{0,4})|引 用 文 献 等 一 覧|引用文献(等)?一覧|\p{Z}??引用文献等|\p{Z}引\p{Z}*用\p{Z}*文\p{Z}*献|引用刊行(物)?).?(?:<\/CENTER>)*\s+\p{Z}*\p{N}+?(?:\.|.|:)*\p{Z}*/m
21
+ R_CAPTURE_APP_NO = /特許出願の番号\p{Z}+特願(\p{N}+)\S\p{Z}{0,3}(\p{N}+)/
22
+ R_CAPTURE_DRAFTED = /起案日\p{Z}+\p{Z}*(?:平成)*\p{Z}*(\p{N}+)年\p{Z}*(\p{N}+)月\p{Z}*(\p{N}+)/
23
+ R_CAPTURE_MAILING_DATE = /発送日\p{Z}*平成\p{Z}*(\p{N}+)年\p{Z}*(\p{N}+)月\p{Z}*(\p{N}+)/
24
+ R_CAPTURE_PREVIOUS_OA = /この出願については、\p{Z}*平成\p{Z}*(\p{N}+)年\p{Z}*(\p{N}+)月\p{Z}*(\p{N}+)日付け拒絶理由通知書に記載/
25
+ R_SATEI_REASONS = /日付け拒絶理由通知書に記載した(.+)によって、拒絶をすべきもの/m
26
+ R_CAPTURE_AMENDMENTS_DATE = /\p{Z}*平成\p{Z}*(\p{N}+)年\p{Z}*(\p{N}+)月\p{Z}*(\p{N}+)日付け手続補正書でした/
27
+ R_CAPTURE_RETROACTIVE = /出願日(遡及日)\p{Z}*平成(\p{N}*)年\p{Z}*(\p{N}*)月\p{Z}*(\p{N}*)日/
28
+ R_CAPTURE_NO_REJECT_CLAIMS = /拒絶の理由を発見しない請求項>.{1,5}(請求項.*)に\s*係\s*る\s*発\s*明\s*に\s*つ\s*い\s*て\s*/m
29
+ R_CAPTURE_TARO = /特許庁審査官\p{Zs}+(\S+?)\p{Zs}(\S+?)\p{Zs}+(\p{N}+)\p{Zs}+(\S+)/
30
+ R_CAPTURE_APPEAL_TARO = /審判長(?:\p{Z}*)特許庁審判官\p{Z}+(\p{L}+?)\p{Z}(((\p{L}+)))/
31
+ R_CAPTURE_APPEAL_NO = /番号\p{Zs}*不服(\p{N}+)\S(\p{Zs}*\p{N}+)/
32
+ R_CAPTURE_APPEAL_DRAFTED = /作成日p{Z}+\p{Z}*(?:平成)*\p{Z}*(\p{N}+)年\p{Z}*(\p{N}+)月\p{Z}*(\p{N}+)/
33
+ R_CAPTURE_APPEAL_APP_NO = /(特許出願の番号)\p{Z}+(特願(\p{N}+)\S\p{Z}{0,3}(\p{N}+))/
34
+ R_CAPTURE_SHIREISHO_CODE = /特許庁長官\p{Zs}+(\p{N}+)\p{Zs}+(\S+).{1,20}特許出願人代理人/m
35
+ R_CAPTURE_SHIREISHO_APP = /特許庁長官\p{Zs}+.+記.+特願(\p{N}+)\S(\p{N}+)/m
36
+ end
@@ -0,0 +1,43 @@
1
+ # encoding: UTF-8
2
+
3
+ productbyprocess0a:
4
+ detect: !ruby/regexp '/<物の発明に係る請求項にそ造方法/'
5
+ full: !ruby/regexp '/求項にその物の製造方法が記載されている場合の明確性要件について/m'
6
+ text: 'OAOA_TEMPLATER_TAB&lt;Clarity requirements in the case where a claim for an invention of a product recites a process for manufacturing that product&gt;'
7
+ productbyprocess0:
8
+ detect: !ruby/regexp '/請求項[\p{N},~、-及びおよ]+に係る発明は、「?/'
9
+ full: !ruby/regexp '/(請求項[\p{N},~、-及びおよ]+に係る発明)は、「?([^」]+?)」?(?:(物の発明)|という、?物の発明)であるが、当該請求項には、「(.+?)」という、その物の製造方法が記載されているものと認められる。/m'
10
+ text: 'OAOA_TEMPLATER_TABAlthough \1 a “\2” (product invention), the claim is deemed to recite a process for manufacturing the product of “\3”.'
11
+ productbyprocess1:
12
+ detect: !ruby/regexp '/ここで、物の発明に係る請求項にその物の製造方法が/'
13
+ full: !ruby/regexp '/ここで、物の発明に係る.{150,180}相当である.{15,45}しかしながら、不可能・非実際的事情が.{25,65}は見いだせない。/m'
14
+ text: "OAOA_TEMPLATER_TABWhen a claim for an invention of a product recites a process for manufacturing that product, it is reasonable to consider that a recitation of such a claim can be said to meet the requirement of describing an “invention which is clear” as stipulated in Japanese Patent Law, Article 36, Paragraph 6, Number 2 only when there are circumstances under which it was impossible or generally not practical (“impossible/impractical circumstances”) to directly specify the product in question by means of the structure or characteristics thereof at the time of filing (Supreme Court Judgments of 2015/06/05 (year/month/day), 2012 (ju) No. 1204 and No. 2658).OAOA_TEMPLATER_TABHowever, since the specification, etc. has no disclosures regarding impossible/impractical circumstances and the applicant did not assert/prove that there are such circumstances, no reasons could be found for judging that such circumstances did exist.\n"
15
+ productbyprocess2:
16
+ detect: !ruby/regexp '/<補正等の示唆>/'
17
+ full: !ruby/regexp '/補正等の示唆.{110,150}ア.該当する.{50,100}意見書等による主張・立証/m'
18
+ text: "OAOA_TEMPLATER_TAB< Examiner’s Suggestions for Amendments >OAOA_TEMPLATER_TABThe applicant/appellant should refer to the following means which may be considered when attempting to overcome the aforementioned reason for rejection.\n A. Canceling the claim in question\n B. Making an amendment which changes the invention in the claim in question to an invention of a process for producing a product\n C. Making an amendment which changes the invention in the claim in question to an invention of a product which does not include a manufacturing process\n D. Asserting/proving that there are impossible/impractical circumstances via the submission of Remarks"
19
+ productbyprocess3:
20
+ detect: !ruby/regexp '/補正の際は、出願当初の明細書、特許請求の/'
21
+ full: !ruby/regexp '/補正の際は、出願当初の明細書、特許.*?接特定すること」が不.*?定すべきものです。/m'
22
+ text: "OAOA_TEMPLATER_TABWhen making amendments, sufficient care should be given such that the amendments are within the scope of matters disclosed in the specification, claims, or drawings as originally filed (“original specification, etc.”). In particular, when making an amendment which simply deletes a recitation of a manufacturing process in C above, it should be noted that it is easy for the claims to fall outside of the scope of matters disclosed in the original specification, etc.OAOA_TEMPLATER_TABMoreover, when asserting that there are impossible/impractical circumstances in D above, the circumstances under which it was impossible or generally impractical to “directly specify the product in question by means of the structure or characteristics thereof at the time of filing” should be concretely described.\nOAOA_TEMPLATER_TABNote that the above-suggested amendments have no legal effect and show only an example for overcoming the reason for rejection. The applicant should decide how to carry out the amendments, assertions/proof that there are impossible/impractical circumstances."
23
+ mistranslatasdf:
24
+ detect: !ruby/regexp '/(誤訳/'
25
+ full: !ruby/regexp '/.{0,30}(誤訳訂正書を提出して明細書、特許請求の範囲又は図面について補正をした場合にあっては、翻訳文等又は当該補正後の明細書、特許請求の範囲若しくは図面)/m'
26
+ text: "OAOA_TEMPLATER_TAB(in the case where the specification, claims, or drawings have be amended by filing a Correction of Mistranslation, the translation and the like, or the specification, claims, or drawings after such amendments)"
27
+ subjectsdueto:
28
+ detect: !ruby/regexp '/^(.{1,4})特別な技術的特徴に基づく審査対象の決定/'
29
+ full: !ruby/regexp '/^(.{1,4})特別な技術的特徴に基づく審査対象の決定/m'
30
+ text: "\\1 Determination of Targets of Examination based on Special Technical Features\n"
31
+ subjectsdueto2:
32
+ detect: !ruby/regexp '/^(.{1,4})審査の効率性に基づく審査対象の決定/'
33
+ full: !ruby/regexp '/^(.{1,4})審査の効率性に基づく審査対象の決定/'
34
+ text: "\\1 Determination of Targets of Examination based on Efficiency of Examination\n"
35
+ subjectsdueto3:
36
+ detect: !ruby/regexp '/そして、?請求項[\p{N},~、-及びおよ]+/'
37
+ full: !ruby/regexp '/そして、(請求項[\p{N},~、-及びおよ]+に係る発明)は、特別な技術的特徴に基づいて審査対象とされた発明を審査した結果、実質的.{40,70}まとめて審査を行うことが効率的であるといえる他の事情も無い。/'
38
+ text: "Furthermore, \\1 are not inventions for which an examination can be carried out without substantive additional prior art search and judgment, as a result of the examination of the inventions determined to be targets of the examination based on the special technical feature, and no other conditions exist wherein carrying out a collective examination of the inventions can be said to be efficient."
39
+ bis159:
40
+ detect: !ruby/regexp '/この補正は同法第17条の2第6項/'
41
+ full: !ruby/regexp '/この補正は同法第17条の2第6項において準用する同法第126条第7項.{0,20}第159条第1項.{0,20}第53条第1項の規定により却下されるべき...../'
42
+ text: "OAOA_TEMPLATER_TABTherefore, the Amendments violate the provisions of Article 126, Paragraph 7 as applied mutatis mutandis to Article 17bis, Paragraph 6. Therefore, the Amendments should be rejected under the provisions of Article 53, Paragraph 1 as applied mutatis mutandis to Article 159, Paragraph 1."
43
+
@@ -0,0 +1,69 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: UTF-8
3
+
4
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), 'oa_templater')
5
+
6
+ require 'nkf'
7
+ require 'fileutils'
8
+ require 'date'
9
+ require 'yaml'
10
+
11
+ require 'oa_templater/oa_templater' unless defined? OaTemplater::OA
12
+
13
+ module OaTemplater
14
+ CITATIONS_FILE = File.join(File.dirname(__FILE__), 'oa_templater', 'citations.yml')
15
+ end
16
+
17
+ class Bignum
18
+ def commas
19
+ to_s =~ /([^\.]*)(\..*)?/
20
+ int, dec = Regexp.last_match[1].reverse, Regexp.last_match[2] ? Regexp.last_match[2] : ''
21
+ while int.gsub!(/(,|\.|^)(\d{3})(\d)/, '\1\2,\3')
22
+ end
23
+ int.reverse + dec
24
+ end
25
+
26
+ def eurostyle
27
+ to_s =~ /([^\.]*)(\..*)?/
28
+ int, dec = Regexp.last_match[1].reverse, Regexp.last_match[2] ? Regexp.last_match[2] : ''
29
+ while int.gsub!(/( |\.|^)(\d{3})(\d)/, '\1\2 \3')
30
+ end
31
+ int.reverse + dec
32
+ end
33
+ end
34
+
35
+ class Float
36
+ def commas
37
+ to_s =~ /([^\.]*)(\..*)?/
38
+ int, dec = Regexp.last_match[1].reverse, Regexp.last_match[2] ? Regexp.last_match[2] : ''
39
+ while int.gsub!(/(,|\.|^)(\d{3})(\d)/, '\1\2,\3')
40
+ end
41
+ int.reverse + dec
42
+ end
43
+
44
+ def eurostyle
45
+ to_s =~ /([^\.]*)(\..*)?/
46
+ int, dec = Regexp.last_match[1].reverse, Regexp.last_match[2] ? Regexp.last_match[2] : ''
47
+ while int.gsub!(/( |\.|^)(\d{3})(\d)/, '\1\2 \3')
48
+ end
49
+ int.reverse + dec
50
+ end
51
+ end
52
+
53
+ class Fixnum
54
+ def commas
55
+ to_s =~ /([^\.]*)(\..*)?/
56
+ int, dec = Regexp.last_match[1].reverse, Regexp.last_match[2] ? Regexp.last_match[2] : ''
57
+ while int.gsub!(/(,|\.|^)(\d{3})(\d)/, '\1\2,\3')
58
+ end
59
+ int.reverse + dec
60
+ end
61
+
62
+ def eurostyle
63
+ to_s =~ /([^\.]*)(\..*)?/
64
+ int, dec = Regexp.last_match[1].reverse, Regexp.last_match[2] ? Regexp.last_match[2] : ''
65
+ while int.gsub!(/( |\.|^)(\d{3})(\d)/, '\1\2 \3')
66
+ end
67
+ int.reverse + dec
68
+ end
69
+ end
data/lib/version.rb ADDED
@@ -0,0 +1,3 @@
1
+ module OaTemplater
2
+ VERSION = '0.5.5'
3
+ end
metadata ADDED
@@ -0,0 +1,118 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: oa_templater
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.5
5
+ platform: ruby
6
+ authors:
7
+ - James Rubingh
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-10-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: byebug
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: charlock_holmes
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: sablon
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: kakasi
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.0'
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 1.0.0
65
+ type: :runtime
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: '1.0'
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 1.0.0
75
+ description: A gem to parse out and "translate" elements of Japanese Patent Office
76
+ Actions
77
+ email: james@wrive.com
78
+ executables: []
79
+ extensions: []
80
+ extra_rdoc_files: []
81
+ files:
82
+ - lib/oa_templater.rb
83
+ - lib/oa_templater/citations.yml
84
+ - lib/oa_templater/default_riyu.docx
85
+ - lib/oa_templater/default_satei.docx
86
+ - lib/oa_templater/default_shinnen.docx
87
+ - lib/oa_templater/examiners.txt
88
+ - lib/oa_templater/oa_templater.rb
89
+ - lib/oa_templater/reasons.yml
90
+ - lib/oa_templater/support/formats.rb
91
+ - lib/oa_templater/support/oa_regexes.rb
92
+ - lib/oa_templater/support/templatable.yml
93
+ - lib/version.rb
94
+ homepage: https://github.com/ephesus/oa_templater
95
+ licenses:
96
+ - GPLv2+
97
+ metadata: {}
98
+ post_install_message:
99
+ rdoc_options: []
100
+ require_paths:
101
+ - lib
102
+ required_ruby_version: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: '0'
107
+ required_rubygems_version: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ requirements: []
113
+ rubyforge_project:
114
+ rubygems_version: 2.4.8
115
+ signing_key:
116
+ specification_version: 4
117
+ summary: JPO OA Templater
118
+ test_files: []